summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/Dumpexts/Dumpexts.vcxproj228
-rwxr-xr-xtools/Dumpexts/Dumpexts.vcxproj.filters22
-rwxr-xr-xtools/Dumpexts/winDumpExts.c578
-rwxr-xr-xtools/Perl/Readme.txt2
-rwxr-xr-xtools/SetupAtlas/FileExist.c27
-rwxr-xr-xtools/SetupAtlas/FileExist.h26
-rwxr-xr-xtools/SetupAtlas/SetupAtlas.c296
-rwxr-xr-xtools/SetupAtlas/SetupAtlas.vcxproj180
-rwxr-xr-xtools/SetupAtlas/SetupAtlas.vcxproj.filters66
-rwxr-xr-xtools/SetupAtlas/copyBlasFile.c112
-rwxr-xr-xtools/SetupAtlas/copyBlasFile.h30
-rwxr-xr-xtools/SetupAtlas/getCpuInfos.c263
-rwxr-xr-xtools/SetupAtlas/getCpuInfos.h88
-rwxr-xr-xtools/SetupAtlas/getPathOfThisExe.c32
-rwxr-xr-xtools/SetupAtlas/getPathOfThisExe.h25
-rwxr-xr-xtools/SetupAtlas/readBlasSpec.c217
-rwxr-xr-xtools/SetupAtlas/readBlasSpec.h31
-rwxr-xr-xtools/SetupAtlas/writeLog.c49
-rwxr-xr-xtools/SetupAtlas/writeLog.h34
-rwxr-xr-xtools/SetupAtlas/xmlEncoding.c55
-rwxr-xr-xtools/SetupAtlas/xmlEncoding.h35
-rwxr-xr-xtools/api_scilab_trad/Bool_Matrix_Alloc.txt10
-rwxr-xr-xtools/api_scilab_trad/Bool_Matrix_Create.txt8
-rwxr-xr-xtools/api_scilab_trad/Bool_Matrix_Get.txt19
-rwxr-xr-xtools/api_scilab_trad/DoubleComplex_Matrix_Alloc.txt11
-rwxr-xr-xtools/api_scilab_trad/DoubleComplex_Matrix_AllocAsInteger.txt11
-rwxr-xr-xtools/api_scilab_trad/DoubleComplex_Matrix_Create.txt8
-rwxr-xr-xtools/api_scilab_trad/DoubleComplex_Matrix_CreateAsInteger.txt8
-rwxr-xr-xtools/api_scilab_trad/DoubleComplex_Matrix_Get.txt33
-rwxr-xr-xtools/api_scilab_trad/DoubleComplex_Matrix_GetAsInteger.txt20
-rwxr-xr-xtools/api_scilab_trad/Double_Matrix_Alloc.txt10
-rwxr-xr-xtools/api_scilab_trad/Double_Matrix_AllocAsInteger.txt10
-rwxr-xr-xtools/api_scilab_trad/Double_Matrix_Create.txt8
-rwxr-xr-xtools/api_scilab_trad/Double_Matrix_CreateAsInteger.txt8
-rwxr-xr-xtools/api_scilab_trad/Double_Matrix_Get.txt19
-rwxr-xr-xtools/api_scilab_trad/Double_Matrix_GetAsInteger.txt19
-rwxr-xr-xtools/api_scilab_trad/Handle_Matrix_Alloc.txt10
-rwxr-xr-xtools/api_scilab_trad/Handle_Matrix_Create.txt8
-rwxr-xr-xtools/api_scilab_trad/Handle_Matrix_Get.txt19
-rwxr-xr-xtools/api_scilab_trad/Pointer_Alloc.txt10
-rwxr-xr-xtools/api_scilab_trad/Pointer_Create.txt8
-rwxr-xr-xtools/api_scilab_trad/Pointer_Get.txt19
-rwxr-xr-xtools/api_scilab_trad/String_Matrix_Create.txt8
-rwxr-xr-xtools/api_scilab_trad/String_Matrix_Get.txt16
-rwxr-xr-xtools/api_scilab_trad/String_Single_Alloc.txt8
-rwxr-xr-xtools/api_scilab_trad/String_Single_Create.txt6
-rwxr-xr-xtools/api_scilab_trad/String_Single_Get.txt18
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_Column.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_DimProp.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_Dims.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_Length.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_OneDim.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_Row.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_SameDims.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_Scalar.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_Square.txt7
-rwxr-xr-xtools/api_scilab_trad/Tools_Check_Vector.txt7
-rwxr-xr-xtools/api_scilab_trad/trad.sce702
-rwxr-xr-xtools/innosetup/Create_ISS.sce280
-rwxr-xr-xtools/innosetup/Create_ISS_nojre.sce10
-rwxr-xr-xtools/innosetup/Scilab.iss87
-rwxr-xr-xtools/innosetup/atlas.iss24
-rwxr-xr-xtools/innosetup/base.iss73
-rwxr-xr-xtools/innosetup/ca_ES_scilab.isl138
-rwxr-xr-xtools/innosetup/code.iss363
-rwxr-xr-xtools/innosetup/code_download.iss203
-rwxr-xr-xtools/innosetup/code_modules.iss163
-rwxr-xr-xtools/innosetup/code_offline_installation.iss105
-rwxr-xr-xtools/innosetup/code_unzip.iss35
-rwxr-xr-xtools/innosetup/components.iss65
-rwxr-xr-xtools/innosetup/cs_CZ_scilab.isl138
-rwxr-xr-xtools/innosetup/custommessages.iss32
-rwxr-xr-xtools/innosetup/de_DE_scilab.isl137
-rwxr-xr-xtools/innosetup/en_US_scilab.isl112
-rwxr-xr-xtools/innosetup/es_ES_scilab.isl138
-rwxr-xr-xtools/innosetup/files.iss101
-rwxr-xr-xtools/innosetup/fr_FR_scilab.isl111
-rwxr-xr-xtools/innosetup/icons.iss29
-rwxr-xr-xtools/innosetup/ini.iss17
-rwxr-xr-xtools/innosetup/it_IT_scilab.isl138
-rwxr-xr-xtools/innosetup/ja_JP.isl312
-rwxr-xr-xtools/innosetup/ja_JP_scilab.isl138
-rwxr-xr-xtools/innosetup/languages.iss30
-rwxr-xr-xtools/innosetup/pl_PL.isl309
-rwxr-xr-xtools/innosetup/pl_PL_scilab.isl138
-rwxr-xr-xtools/innosetup/pt_BR_scilab.isl137
-rwxr-xr-xtools/innosetup/registry.iss185
-rwxr-xr-xtools/innosetup/ru_RU_scilab.isl138
-rwxr-xr-xtools/innosetup/run.iss22
-rwxr-xr-xtools/innosetup/setup.iss60
-rwxr-xr-xtools/innosetup/tasks.iss25
-rwxr-xr-xtools/innosetup/types.iss18
-rwxr-xr-xtools/innosetup/uk_UA.isl319
-rwxr-xr-xtools/innosetup/uk_UA_scilab.isl138
-rwxr-xr-xtools/innosetup/uninstalldelete.iss25
-rwxr-xr-xtools/innosetup/zh_CN.isl320
-rwxr-xr-xtools/innosetup/zh_CN_scilab.isl137
-rwxr-xr-xtools/innosetup/zh_TW.isl317
-rwxr-xr-xtools/innosetup/zh_TW_scilab.isl138
-rwxr-xr-xtools/localization/dispatchLocalizationFile.sh93
-rwxr-xr-xtools/localization/generatePoFile.sce100
-rwxr-xr-xtools/localization/generatePoFile.vcxproj140
-rwxr-xr-xtools/localization/generatePoFile.vcxproj.filters20
-rwxr-xr-xtools/localization/pocheck.pl333
-rwxr-xr-xtools/localization/revcheck.php1159
-rwxr-xr-xtools/localization/translation-fr_FR.xml26
-rwxr-xr-xtools/localization/translation-ja_JP.xml20
-rwxr-xr-xtools/localization/updateLocalizationModule.sh239
-rwxr-xr-xtools/profiling/valgrind.supp71
-rwxr-xr-xtools/tools.iss15
110 files changed, 11121 insertions, 0 deletions
diff --git a/tools/Dumpexts/Dumpexts.vcxproj b/tools/Dumpexts/Dumpexts.vcxproj
new file mode 100755
index 000000000..9791ecc1d
--- /dev/null
+++ b/tools/Dumpexts/Dumpexts.vcxproj
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{3170E4C2-1173-4264-A222-7EE8CCB3DDF7}</ProjectGuid>
+ <RootNamespace>Dumpexts</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>$(Configuration)/Dumpexts.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AssemblerListingLocation>$(Configuration)/</AssemblerListingLocation>
+ <ObjectFileName>$(Configuration)/</ObjectFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(Configuration)/Dumpexts.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ </Link>
+ <PostBuildEvent>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(Configuration)/Dumpexts.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <AssemblerListingLocation>$(Configuration)/</AssemblerListingLocation>
+ <ObjectFileName>$(Configuration)/</ObjectFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(Configuration)/Dumpexts.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ </Link>
+ <PostBuildEvent>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>$(Configuration)/Dumpexts.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <AssemblerListingLocation>$(Configuration)/</AssemblerListingLocation>
+ <ObjectFileName>$(Configuration)/</ObjectFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <ProgramDatabaseFile>$(Configuration)/Dumpexts.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ </Link>
+ <PostBuildEvent>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>$(Configuration)/Dumpexts.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <AssemblerListingLocation>$(Configuration)/</AssemblerListingLocation>
+ <ObjectFileName>$(Configuration)/</ObjectFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x040c</Culture>
+ </ResourceCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <ProgramDatabaseFile>$(Configuration)/Dumpexts.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ </Link>
+ <PostBuildEvent>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="winDumpExts.c">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\Visual-Studio-settings\rename-vc-files\rename-vc-files.vcxproj">
+ <Project>{dd8a0506-8d31-4cf8-856a-c10ece9c13a4}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/tools/Dumpexts/Dumpexts.vcxproj.filters b/tools/Dumpexts/Dumpexts.vcxproj.filters
new file mode 100755
index 000000000..31aecbc86
--- /dev/null
+++ b/tools/Dumpexts/Dumpexts.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{9917b9c9-dee9-4122-9042-65e8172353f5}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{472d216c-981d-4e87-99f8-68310f3ed718}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{6c0df247-9df4-4937-b3c6-d85374be7189}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="winDumpExts.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/tools/Dumpexts/winDumpExts.c b/tools/Dumpexts/winDumpExts.c
new file mode 100755
index 000000000..4ff4aa981
--- /dev/null
+++ b/tools/Dumpexts/winDumpExts.c
@@ -0,0 +1,578 @@
+/*-----------------------------------------------------------------------------------*/
+/*
+* winDumpExts.c --
+* Author: Gordon Chaffee, Scott Stanton
+*
+* History: The real functionality of this file was written by
+* Matt Pietrek in 1993 in his pedump utility. I've
+* modified it to dump the externals in a bunch of object
+* files to create a .def file.
+*
+* 10/12/95 Modified by Scott Stanton to support Relocatable Object Module
+* Format files for Borland C++ 4.5.
+*
+* Notes: Visual C++ puts an underscore before each exported symbol.
+* This file removes them. I don't know if this is a problem
+* this other compilers. If _MSC_VER is defined,
+* the underscore is removed. If not, it isn't. To get a
+* full dump of an object file, use the -f option. This can
+* help determine the something that may be different with a
+* compiler other than Visual C++.
+*/
+/*-----------------------------------------------------------------------------------*/
+/* Updated 2007 Win64 support (A.C) */
+/* it will be interesting to use PEDUMP http://www.wheaty.net */
+/* this tools is used to extract symbols from .obj */
+/* used to build Scilab on Windows and dynamic link */
+/*-----------------------------------------------------------------------------------*/
+#include <windows.h>
+#include <stdio.h>
+#include <string.h>
+#include <process.h>
+/*-----------------------------------------------------------------------------------*/
+#ifdef _ALPHA_
+#define e_magic_number IMAGE_FILE_MACHINE_ALPHA
+#else
+#ifdef _WIN64
+#define e_magic_number IMAGE_FILE_MACHINE_AMD64
+#else
+#define e_magic_number IMAGE_FILE_MACHINE_I386
+#endif
+#endif
+
+#ifdef _WIN64
+#define MakePtr(cast, ptr, addValue) (cast)( (DWORD64)(ptr) + (DWORD64)(addValue))
+#else
+#define MakePtr(cast, ptr, addValue) (cast)( (DWORD)(ptr) + (DWORD)(addValue))
+#endif
+
+#define stricmp _stricmp
+/*-----------------------------------------------------------------------------------*/
+/*
+* The names of the first group of possible symbol table storage classes
+*/
+/*-----------------------------------------------------------------------------------*/
+char * SzStorageClass1[] =
+{
+ "NULL", "AUTOMATIC", "EXTERNAL", "STATIC", "REGISTER", "EXTERNAL_DEF", "LABEL",
+ "UNDEFINED_LABEL", "MEMBER_OF_STRUCT", "ARGUMENT", "STRUCT_TAG",
+ "MEMBER_OF_UNION", "UNION_TAG", "TYPE_DEFINITION", "UNDEFINED_STATIC",
+ "ENUM_TAG", "MEMBER_OF_ENUM", "REGISTER_PARAM", "BIT_FIELD"
+};
+/*-----------------------------------------------------------------------------------*/
+/*
+* The names of the second group of possible symbol table storage classes
+*/
+/*-----------------------------------------------------------------------------------*/
+char * SzStorageClass2[] =
+{
+ "BLOCK", "FUNCTION", "END_OF_STRUCT", "FILE", "SECTION", "WEAK_EXTERNAL"
+};
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* GetArgcArgv --
+*
+* Break up a line into argc argv
+*----------------------------------------------------------------------
+*/
+int GetArgcArgv(char *s, char **argv)
+{
+ int quote = 0;
+ int argc = 0;
+ char *bp = NULL;
+
+ bp = s;
+ while (1)
+ {
+ while (isspace(*bp))
+ {
+ bp++;
+ }
+ if (*bp == '\n' || *bp == '\0')
+ {
+ *bp = '\0';
+ return argc;
+ }
+ if (*bp == '\"')
+ {
+ quote = 1;
+ bp++;
+ }
+ argv[argc++] = bp;
+
+ while (*bp != '\0')
+ {
+ if (quote)
+ {
+ if (*bp == '\"')
+ {
+ quote = 0;
+ *bp = '\0';
+ bp++;
+ break;
+ }
+ bp++;
+ continue;
+ }
+ if (isspace(*bp))
+ {
+ *bp = '\0';
+ bp++;
+ break;
+ }
+ bp++;
+ }
+ }
+}
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* GetSZStorageClass --
+*
+* Given a symbol storage class value, return a descriptive
+* ASCII string
+*----------------------------------------------------------------------
+*/
+PSTR GetSZStorageClass(BYTE storageClass)
+{
+ if ( storageClass <= IMAGE_SYM_CLASS_BIT_FIELD )
+ {
+ return SzStorageClass1[storageClass];
+ }
+ else if ( (storageClass >= IMAGE_SYM_CLASS_BLOCK)
+ && (storageClass <= IMAGE_SYM_CLASS_WEAK_EXTERNAL) )
+ {
+ return SzStorageClass2[storageClass - IMAGE_SYM_CLASS_BLOCK];
+ }
+ else
+ {
+ return "???";
+ }
+}
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* GetSectionName --
+*
+* Used by DumpSymbolTable, it gives meaningful names to
+* the non-normal section number.
+*
+* Results:
+* A name is returned in buffer
+*----------------------------------------------------------------------
+*/
+void GetSectionName(WORD section, PSTR buffer, unsigned cbBuffer)
+{
+ char tempbuffer[10];
+
+ switch ( (SHORT)section )
+ {
+ case IMAGE_SYM_UNDEFINED:
+ strcpy(tempbuffer, "UNDEF");
+ break;
+ case IMAGE_SYM_ABSOLUTE:
+ strcpy(tempbuffer, "ABS ");
+ break;
+ case IMAGE_SYM_DEBUG:
+ strcpy(tempbuffer, "DEBUG");
+ break;
+ default:
+ wsprintf(tempbuffer, "%-5X", section);
+ }
+
+ strncpy(buffer, tempbuffer, cbBuffer - 1);
+}
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* DumpSymbolTable --
+*
+* Dumps a COFF symbol table from an EXE or OBJ. We only use
+* it to dump tables from OBJs.
+*----------------------------------------------------------------------
+*/
+void DumpSymbolTable(PIMAGE_SYMBOL pSymbolTable, FILE *fout, unsigned cSymbols)
+{
+ unsigned i = 0;
+ PSTR stringTable = NULL;
+ char sectionName[10];
+
+ fprintf(fout, "Symbol Table - %X entries (* = auxillary symbol)\n", cSymbols);
+
+ fprintf(fout,
+ "Indx Name Value Section cAux Type Storage\n"
+ "---- -------------------- -------- ---------- ----- ------- --------\n");
+
+ /*
+ * The string table apparently starts right after the symbol table
+ */
+ stringTable = (PSTR)&pSymbolTable[cSymbols];
+ for ( i = 0; i < cSymbols; i++ )
+ {
+ fprintf(fout, "%04X ", i);
+ if ( pSymbolTable->N.Name.Short != 0 )
+ {
+ fprintf(fout, "%-20.8s", pSymbolTable->N.ShortName);
+ }
+ else
+ {
+ fprintf(fout, "%-20s", stringTable + pSymbolTable->N.Name.Long);
+ }
+ fprintf(fout, " %08X", (unsigned int)pSymbolTable->Value);
+
+ GetSectionName(pSymbolTable->SectionNumber, sectionName, sizeof(sectionName));
+ fprintf(fout, " sect:%s aux:%X type:%02X st:%s\n",
+ sectionName,
+ pSymbolTable->NumberOfAuxSymbols,
+ pSymbolTable->Type,
+ GetSZStorageClass(pSymbolTable->StorageClass) );
+ /*
+ * Take into account any aux symbols
+ */
+ i += pSymbolTable->NumberOfAuxSymbols;
+ pSymbolTable += pSymbolTable->NumberOfAuxSymbols;
+ pSymbolTable++;
+ }
+}
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* DumpExternals --
+*
+* Dumps a COFF symbol table from an EXE or OBJ. We only use
+* it to dump tables from OBJs.
+*----------------------------------------------------------------------
+*/
+void DumpExternals(PIMAGE_SYMBOL pSymbolTable, FILE *fout, unsigned cSymbols)
+{
+ unsigned i = 0;
+ PSTR stringTable = NULL;
+ char *s = NULL, *f = NULL;
+ char symbol[4096];
+
+ /*
+ * The string table apparently starts right after the symbol table
+ */
+ stringTable = (PSTR)&pSymbolTable[cSymbols];
+
+ for ( i = 0; i < cSymbols; i++ )
+ {
+ if (pSymbolTable->SectionNumber > 0 && pSymbolTable->Type == 0x20)
+ {
+ if (pSymbolTable->StorageClass == IMAGE_SYM_CLASS_EXTERNAL)
+ {
+ if (pSymbolTable->N.Name.Short != 0)
+ {
+ strncpy(symbol, (const char*)pSymbolTable->N.ShortName, 8);
+ symbol[8] = 0;
+ }
+ else
+ {
+ s = stringTable + pSymbolTable->N.Name.Long;
+ strcpy(symbol, s);
+ }
+ s = symbol;
+ f = strchr(s, '@');
+ if (f)
+ {
+ *f = 0;
+ }
+#if defined(_MSC_VER) && ( defined(_X86_) )
+ if (symbol[0] == '_')
+ {
+ s = &symbol[1];
+ }
+#endif
+ if (( stricmp(s, "DllEntryPoint") != 0)
+ && (stricmp(s, "DllMain") != 0))
+ {
+ //remove Intel C++ 14 added symbols
+ if ( s[0] != '?' && strncmp(s, "__sti__?", 8) != 0)
+ {
+ fprintf(fout, "\t%s\n", s);
+ }
+ }
+ }
+ }
+ /*
+ * Take into account any aux symbols
+ */
+ i += pSymbolTable->NumberOfAuxSymbols;
+ pSymbolTable += pSymbolTable->NumberOfAuxSymbols;
+ pSymbolTable++;
+ }
+}
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* DumpObjFile --
+*
+* Dump an object file--either a full listing or just the exported
+* symbols.
+*----------------------------------------------------------------------
+*/
+void DumpObjFile(PIMAGE_FILE_HEADER pImageFileHeader, FILE *fout, int full)
+{
+ PIMAGE_SYMBOL PCOFFSymbolTable;
+ DWORD COFFSymbolCount;
+
+ //PCOFFSymbolTable = (PIMAGE_SYMBOL)LongToPtr(
+ //((DWORD)PtrToLong( pImageFileHeader ) + pImageFileHeader->PointerToSymbolTable) );
+ PCOFFSymbolTable = MakePtr(PIMAGE_SYMBOL, pImageFileHeader, pImageFileHeader->PointerToSymbolTable);
+ COFFSymbolCount = pImageFileHeader->NumberOfSymbols;
+
+ if (full)
+ {
+ DumpSymbolTable(PCOFFSymbolTable, fout, COFFSymbolCount);
+ }
+ else
+ {
+ DumpExternals(PCOFFSymbolTable, fout, COFFSymbolCount);
+ }
+}
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* SkipToNextRecord --
+*
+* Skip over the current ROMF record and return the type of the
+* next record.
+*----------------------------------------------------------------------
+*/
+BYTE SkipToNextRecord(BYTE **ppBuffer)
+{
+ int length = 0;
+ (*ppBuffer)++; /* Skip over the type.*/
+ length = *((WORD*)(*ppBuffer))++; /* Retrieve the length. */
+ *ppBuffer += length; /* Skip over the rest. */
+ return **ppBuffer; /* Return the type. */
+}
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* DumpROMFObjFile --
+*
+* Dump a Relocatable Object Module Format file, displaying only
+* the exported symbols.
+*----------------------------------------------------------------------
+*/
+void DumpROMFObjFile(LPVOID pBuffer, FILE *fout)
+{
+ BYTE type = 0, length = 0 ;
+ char symbol[1024], *s = NULL;
+
+ while (1)
+ {
+ BYTE *loc = (BYTE*)pBuffer;
+ type = SkipToNextRecord(&loc);
+ if (type == 0x90)
+ {
+ /* PUBDEF */
+ if (((BYTE*)pBuffer)[4] != 0)
+ {
+ length = ((BYTE*)pBuffer)[5];
+ strncpy(symbol, ((char*)pBuffer) + 6, length);
+ symbol[length] = '\0';
+ s = symbol;
+ if ((stricmp(s, "DllEntryPoint") != 0)
+ && (stricmp(s, "DllMain") != 0))
+ {
+ if (s[0] == '_')
+ {
+ s++;
+ fprintf(fout, "\t_%s\n\t%s=_%s\n", s, s, s);
+ }
+ else if (s[0] != '?' )
+ {
+ fprintf(fout, "\t%s\n", s);
+ }
+ }
+ }
+ }
+ else if (type == 0x8B || type == 0x8A)
+ {
+ /* MODEND */
+ break;
+ }
+ }
+}
+/*-----------------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------
+* DumpFile --
+*
+* Open up a file, memory map it, and call the appropriate
+* dumping routine
+*----------------------------------------------------------------------
+*/
+void DumpFile(LPSTR filename, FILE *fout, int full)
+{
+ HANDLE hFile;
+ HANDLE hFileMapping;
+ LPVOID lpFileBase;
+ PIMAGE_DOS_HEADER dosHeader;
+
+ hFile = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL,
+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
+
+ if (hFile == INVALID_HANDLE_VALUE)
+ {
+ fprintf(stderr, "Couldn't open file with CreateFile()\n");
+ return;
+ }
+
+ hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL);
+ if (hFileMapping == 0)
+ {
+ CloseHandle(hFile);
+ fprintf(stderr, "Couldn't open file mapping with CreateFileMapping()\n");
+ return;
+ }
+
+ lpFileBase = MapViewOfFile(hFileMapping, FILE_MAP_READ, 0, 0, 0);
+ if (lpFileBase == 0)
+ {
+ CloseHandle(hFileMapping);
+ CloseHandle(hFile);
+ fprintf(stderr, "Couldn't map view of file with MapViewOfFile()\n");
+ return;
+ }
+
+ dosHeader = (PIMAGE_DOS_HEADER)lpFileBase;
+ if (dosHeader->e_magic == IMAGE_DOS_SIGNATURE)
+ {
+ fprintf(stderr, "File is an executable. I don't dump those.\n");
+ return;
+ }
+ /* Does it look like a i386 COFF OBJ file??? */
+ else if ((dosHeader->e_magic == e_magic_number)
+ && (dosHeader->e_sp == 0))
+ {
+ /*
+ * The two tests above aren't what they look like. They're
+ * really checking for IMAGE_FILE_HEADER.Machine == i386 (0x14C)
+ * and IMAGE_FILE_HEADER.SizeOfOptionalHeader == 0;
+ */
+ DumpObjFile((PIMAGE_FILE_HEADER) lpFileBase, fout, full);
+ }
+ else if (*((BYTE *)lpFileBase) == 0x80)
+ {
+ /*
+ * This file looks like it might be a ROMF file.
+ */
+ DumpROMFObjFile(lpFileBase, fout);
+ }
+ else
+ {
+ printf("unrecognized file format\n");
+ }
+ UnmapViewOfFile(lpFileBase);
+ CloseHandle(hFileMapping);
+ CloseHandle(hFile);
+}
+/*-----------------------------------------------------------------------------------*/
+int main(int argc, char **argv)
+{
+ int noheader = 0;
+ char *fargv[1000];
+ char cmdline[10000];
+ int i = 0, arg = 0;
+ FILE *fout = NULL;
+ int pos = 0;
+ int full = 0;
+ char *outfile = NULL;
+
+ if (argc < 3)
+ {
+Usage:
+ fprintf(stderr, "Usage: %s ?-o outfile? ?-n? ?-f(ull)? <dllname> <object filenames> ..\n", argv[0]);
+ exit(1);
+ }
+
+ arg = 1;
+ while (argv[arg][0] == '-')
+ {
+ if (strcmp(argv[arg], "--") == 0)
+ {
+ arg++;
+ break;
+ }
+ else if (strcmp(argv[arg], "-f") == 0)
+ {
+ full = 1;
+ }
+ else if (strcmp(argv[arg], "-n") == 0)
+ {
+ noheader = 1;
+ }
+ else if (strcmp(argv[arg], "-o") == 0)
+ {
+ arg++;
+ if (arg == argc)
+ {
+ goto Usage;
+ }
+ outfile = argv[arg];
+ }
+ arg++;
+ }
+ if (arg == argc)
+ {
+ goto Usage;
+ }
+
+ if (outfile)
+ {
+ fout = fopen(outfile, "w+");
+ if (fout == NULL)
+ {
+ fprintf(stderr, "Unable to open \'%s\' for writing:\n", argv[arg]);
+ perror("");
+ exit(1);
+ }
+ }
+ else
+ {
+ fout = stdout;
+ }
+
+ if (! full)
+ {
+ char *dllname = argv[arg];
+ arg++;
+ if (arg == argc)
+ {
+ goto Usage;
+ }
+
+ if (noheader != 1)
+ {
+ fprintf(fout, "LIBRARY %s\n", dllname);
+ fprintf(fout, "EXPORTS\n");
+ }
+ }
+
+ for (; arg < argc; arg++)
+ {
+ if (argv[arg][0] == '@')
+ {
+ FILE *fargs = fopen(&argv[arg][1], "r");
+ if (fargs == NULL)
+ {
+ fprintf(stderr, "Unable to open \'%s\' for reading:\n",
+ argv[arg]);
+ perror("");
+ exit(1);
+ }
+ pos = 0;
+ for (i = 0; i < arg; i++)
+ {
+ strcpy(&cmdline[pos], argv[i]);
+ pos += (int)strlen(&cmdline[pos]) + 1;
+ fargv[i] = argv[i];
+ }
+ fgets(&cmdline[pos], sizeof(cmdline), fargs);
+ fprintf(stderr, "%s\n", &cmdline[pos]);
+ fclose(fargs);
+ i += GetArgcArgv(&cmdline[pos], &fargv[i]);
+ argc = i;
+ argv = fargv;
+ }
+ DumpFile(argv[arg], fout, full);
+ }
+ exit(0);
+ return 0;
+}
+/*-----------------------------------------------------------------------------------*/
diff --git a/tools/Perl/Readme.txt b/tools/Perl/Readme.txt
new file mode 100755
index 000000000..41f6165a8
--- /dev/null
+++ b/tools/Perl/Readme.txt
@@ -0,0 +1,2 @@
+Only for Windows.
+Copy bin,lib and site directories of Perl in this directory. \ No newline at end of file
diff --git a/tools/SetupAtlas/FileExist.c b/tools/SetupAtlas/FileExist.c
new file mode 100755
index 000000000..8e0f82a4b
--- /dev/null
+++ b/tools/SetupAtlas/FileExist.c
@@ -0,0 +1,27 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#include <windows.h>
+#include "FileExist.h"
+/*--------------------------------------------------------------------------*/
+BOOL FileExist(wchar_t *wcfilename)
+{
+ WIN32_FIND_DATAW FindFileData;
+ HANDLE handle = FindFirstFileW (wcfilename, &FindFileData);
+ if (handle != INVALID_HANDLE_VALUE)
+ {
+ FindClose (handle);
+ return TRUE;
+ }
+ return FALSE;
+}
+/*--------------------------------------------------------------------------*/ \ No newline at end of file
diff --git a/tools/SetupAtlas/FileExist.h b/tools/SetupAtlas/FileExist.h
new file mode 100755
index 000000000..792fd1e8b
--- /dev/null
+++ b/tools/SetupAtlas/FileExist.h
@@ -0,0 +1,26 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#ifndef __FILEEXIST_H__
+#define __FILEEXIST_H__
+
+#include <wchar.h>
+
+/**
+* checks if a file exists
+* @param[in] filename
+* @return TRUE if exist
+*/
+BOOL FileExist(wchar_t *wcfilename);
+
+#endif /* __FILEEXIST_H__ */
+/*--------------------------------------------------------------------------*/
diff --git a/tools/SetupAtlas/SetupAtlas.c b/tools/SetupAtlas/SetupAtlas.c
new file mode 100755
index 000000000..17e9dae39
--- /dev/null
+++ b/tools/SetupAtlas/SetupAtlas.c
@@ -0,0 +1,296 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#include <Windows.h>
+#include "writeLog.h"
+#include "getCpuInfos.h"
+#include "readBlasSpec.h"
+#include "copyBlasFile.h"
+#include "GetPathOfThisExe.h"
+/*--------------------------------------------------------------------------*/
+#pragma comment(lib,"../../bin/libxml2.lib")
+/*--------------------------------------------------------------------------*/
+#define LOG_FILENAME L"SetupAtlas.log"
+#define ATLASSPEC_FILENAME L"Atlas.spec"
+/*--------------------------------------------------------------------------*/
+static wchar_t *LogFilename = NULL;
+static wchar_t msgtolog[512];
+static wchar_t *buildFilename(wchar_t *destpath, wchar_t *filename);
+static wchar_t *getCpuDllFilename(struct cpu_struct**CPUS_SPEC, int sizeCPUS_SPEC);
+static BOOL freeCpuStruct(struct cpu_struct**CPUS_SPEC, int sizeCPUS_SPEC);
+/*--------------------------------------------------------------------------*/
+int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow)
+{
+ int ierr = 1;
+ wchar_t *pathThisExe = GetPathOfThisExe();
+ if (pathThisExe)
+ {
+ LogFilename = buildFilename(pathThisExe, LOG_FILENAME);
+ if (LogFilename)
+ {
+#ifdef _WIN64
+ {
+ wchar_t* strtime = getTimeString();
+ AppendMessageToLog(strtime, LogFilename);
+ free(strtime);
+ strtime = NULL;
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ AppendMessageToLog(L"* ONLY WITH X86 VERSION *", LogFilename);
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ free(LogFilename);
+ LogFilename = NULL;
+ free(pathThisExe);
+ pathThisExe = NULL;
+ return ierr;
+ }
+#else
+
+ wchar_t* AtlasSpecFilename = buildFilename(pathThisExe, ATLASSPEC_FILENAME);
+
+ if (AtlasSpecFilename)
+ {
+ int sizeArray = 0;
+ struct cpu_struct **CPUS_SPEC = readBlasSpec(AtlasSpecFilename, &sizeArray);
+
+ if (CPUS_SPEC)
+ {
+ wchar_t * blasdllname = getCpuDllFilename(CPUS_SPEC, sizeArray);
+ if (blasdllname)
+ {
+ int err = copyBlasFile(blasdllname);
+
+ wchar_t* strtime = getTimeString();
+ AppendMessageToLog(strtime, LogFilename);
+ free(strtime);
+ strtime = NULL;
+
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ switch (err)
+ {
+ case COPY_NO_RIGHT_TO_WRITE:
+ wcscpy(msgtolog, L"NO RIGHT TO WRITE: ");
+ wcscat(msgtolog, blasdllname);
+ AppendMessageToLog(msgtolog, LogFilename);
+ ierr = 1;
+ break;
+ case COPY_OK:
+ wcscpy(msgtolog, L"COPY OK OF: ");
+ wcscat(msgtolog, blasdllname);
+ AppendMessageToLog(msgtolog, LogFilename);
+ ierr = 0;
+ break;
+ case COPY_FILE_SRC_NOT_EXISTS:
+ wcscpy(msgtolog, L"FILE NOT EXIST: ");
+ wcscat(msgtolog, blasdllname);
+ AppendMessageToLog(msgtolog, LogFilename);
+ ierr = 1;
+ break;
+ case COPY_DESTINATION_NOT_EXISTS:
+ wcscpy(msgtolog, L"DESTINATION NOT EXIST");
+ AppendMessageToLog(msgtolog, LogFilename);
+ ierr = 1;
+ break;
+ case COPY_FILE_FAILED:
+ wcscpy(msgtolog, L"COPY FAILED");
+ AppendMessageToLog(msgtolog, LogFilename);
+ ierr = 1;
+ break;
+ default:
+ wcscpy(msgtolog, L"UNKNOW ERROR");
+ AppendMessageToLog(msgtolog, LogFilename);
+ ierr = 1;
+ break;
+ }
+ AppendMessageToLog(L"**************************************************", LogFilename);
+
+ free(blasdllname);
+ blasdllname = NULL;
+ }
+ else
+ {
+ wchar_t* strtime = getTimeString();
+ AppendMessageToLog(strtime, LogFilename);
+ free(strtime);
+ strtime = NULL;
+
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ wcscpy(msgtolog, L"IMPOSSIBLE TO FIND A OPTIMIZED DLL");
+ AppendMessageToLog(msgtolog, LogFilename);
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ ierr = 1;
+ }
+
+ freeCpuStruct(CPUS_SPEC, sizeArray);
+ }
+ else
+ {
+ wchar_t* strtime = getTimeString();
+ AppendMessageToLog(strtime, LogFilename);
+ free(strtime);
+ strtime = NULL;
+
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ wcscpy(msgtolog, L"IMPOSSIBLE TO READ ATLAS.SPEC");
+ AppendMessageToLog(msgtolog, LogFilename);
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ ierr = 1;
+ }
+ free(AtlasSpecFilename);
+ AtlasSpecFilename = NULL;
+ }
+ else
+ {
+ wchar_t* strtime = getTimeString();
+ AppendMessageToLog(strtime, LogFilename);
+ free(strtime);
+ strtime = NULL;
+
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ wcscpy(msgtolog, L"INCORRECT FILENAME ATLAS.SPEC");
+ AppendMessageToLog(msgtolog, LogFilename);
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ ierr = 1;
+ }
+
+ free(LogFilename);
+ LogFilename = NULL;
+#endif /* _WIN64 */
+ }
+ else
+ {
+ wchar_t* strtime = getTimeString();
+ AppendMessageToLog(strtime, LogFilename);
+ free(strtime);
+ strtime = NULL;
+
+ AppendMessageToLog(L"**************************************************", LOG_FILENAME);
+ AppendMessageToLog(L"* ERROR CREATES LOG FILENAME *", LOG_FILENAME);
+ AppendMessageToLog(L"**************************************************", LOG_FILENAME);
+ ierr = 1;
+ }
+
+ free(pathThisExe);
+ pathThisExe = NULL;
+ }
+ else
+ {
+ wchar_t* strtime = getTimeString();
+ AppendMessageToLog(strtime, LogFilename);
+ free(strtime);
+ strtime = NULL;
+
+ AppendMessageToLog(L"**************************************************", LOG_FILENAME);
+ AppendMessageToLog(L"* ERROR CURRENT PATH NOT FOUND *", LOG_FILENAME);
+ AppendMessageToLog(L"**************************************************", LOG_FILENAME);
+ ierr = 1;
+ }
+
+ return ierr;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t *buildFilename(wchar_t *destpath, wchar_t *filename)
+{
+ wchar_t *fullfilename = NULL;
+ if (destpath && filename)
+ {
+ int len = (int)(wcslen(destpath) + wcslen(filename) + wcslen(L"\\") + 1);
+ fullfilename = (wchar_t *) calloc(len, sizeof(wchar_t));
+ if (fullfilename)
+ {
+ wcscpy(fullfilename, destpath);
+ wcscat(fullfilename, L"\\");
+ wcscat(fullfilename, filename);
+ }
+ }
+ return fullfilename;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t *getCpuDllFilename(struct cpu_struct **CPUS_SPEC, int sizeCPUS_SPEC)
+{
+ int i = 0;
+
+ wchar_t *CurrentCpuManufacturer = getCpuVendor();
+ int CurrentCpuFamily = getCpuFamily();
+ int CurrentCpuModel = getCpuModel();
+
+ wchar_t* strtime = getTimeString();
+ AppendMessageToLog(strtime, LogFilename);
+ free(strtime);
+ strtime = NULL;
+
+ wsprintfW(msgtolog, L"Vendor %s Family %d Model %d",
+ CurrentCpuManufacturer,
+ CurrentCpuFamily,
+ CurrentCpuModel);
+ AppendMessageToLog(L"**************************************************", LogFilename);
+ AppendMessageToLog(L"CPU DETECTION:", LogFilename);
+ AppendMessageToLog(msgtolog, LogFilename);
+ AppendMessageToLog(L"**************************************************", LogFilename);
+
+ for (i = 0; i < sizeCPUS_SPEC; i++)
+ {
+ if (wcscmp(CPUS_SPEC[i]->cpu_vendor, CurrentCpuManufacturer) == 0)
+ {
+ if (CPUS_SPEC[i]->cpu_family == CurrentCpuFamily)
+ {
+ if (CPUS_SPEC[i]->cpu_model == CurrentCpuModel)
+ {
+ return _wcsdup(CPUS_SPEC[i]->dll_filename);
+ }
+ else
+ {
+ if (CPUS_SPEC[i]->cpu_model == 0)
+ {
+ return _wcsdup(CPUS_SPEC[i]->dll_filename);
+ }
+ }
+ }
+ }
+ }
+ return NULL;
+}
+/*--------------------------------------------------------------------------*/
+static BOOL freeCpuStruct(struct cpu_struct** CPUS_SPEC, int sizeCPUS_SPEC)
+{
+ int i = 0;
+ if (CPUS_SPEC)
+ {
+ for (i = 0; i < sizeCPUS_SPEC; i++)
+ {
+ if (CPUS_SPEC[i])
+ {
+ if (CPUS_SPEC[i]->comments)
+ {
+ free(CPUS_SPEC[i]->comments);
+ CPUS_SPEC[i]->comments = NULL;
+ }
+ if (CPUS_SPEC[i]->cpu_vendor)
+ {
+ free(CPUS_SPEC[i]->cpu_vendor);
+ CPUS_SPEC[i]->cpu_vendor = NULL;
+ }
+ if (CPUS_SPEC[i]->dll_filename)
+ {
+ free(CPUS_SPEC[i]->dll_filename);
+ CPUS_SPEC[i]->dll_filename = NULL;
+ }
+ free(CPUS_SPEC[i]);
+ CPUS_SPEC[i] = NULL;
+ }
+ }
+ free(CPUS_SPEC);
+ CPUS_SPEC = NULL;
+ return TRUE;
+ }
+ return FALSE;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/tools/SetupAtlas/SetupAtlas.vcxproj b/tools/SetupAtlas/SetupAtlas.vcxproj
new file mode 100755
index 000000000..3488b5948
--- /dev/null
+++ b/tools/SetupAtlas/SetupAtlas.vcxproj
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{AAFF2053-3F1E-4B8B-B174-4407A6B98FA5}</ProjectGuid>
+ <RootNamespace>SetupAtlas</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../libs/libxml2/libxml;../../libs/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)SetupAtlas.pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../libs/libxml2/libxml;../../libs/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(IntDir)SetupAtlas.pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../libs/libxml2/libxml;../../libs/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../libs/libxml2/libxml;../../libs/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ </ClCompile>
+ <Link>
+ <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX64</TargetMachine>
+ <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="copyBlasFile.c" />
+ <ClCompile Include="FileExist.c" />
+ <ClCompile Include="getCpuInfos.c" />
+ <ClCompile Include="getPathOfThisExe.c" />
+ <ClCompile Include="readBlasSpec.c" />
+ <ClCompile Include="SetupAtlas.c" />
+ <ClCompile Include="writeLog.c" />
+ <ClCompile Include="xmlEncoding.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="copyBlasFile.h" />
+ <ClInclude Include="FileExist.h" />
+ <ClInclude Include="getCpuInfos.h" />
+ <ClInclude Include="getPathOfThisExe.h" />
+ <ClInclude Include="readBlasSpec.h" />
+ <ClInclude Include="writeLog.h" />
+ <ClInclude Include="xmlEncoding.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/tools/SetupAtlas/SetupAtlas.vcxproj.filters b/tools/SetupAtlas/SetupAtlas.vcxproj.filters
new file mode 100755
index 000000000..9d518df4b
--- /dev/null
+++ b/tools/SetupAtlas/SetupAtlas.vcxproj.filters
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="copyBlasFile.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="FileExist.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="getCpuInfos.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="getPathOfThisExe.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="readBlasSpec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="SetupAtlas.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="writeLog.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="xmlEncoding.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="copyBlasFile.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="FileExist.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="getCpuInfos.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="getPathOfThisExe.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="readBlasSpec.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="writeLog.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="xmlEncoding.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/tools/SetupAtlas/copyBlasFile.c b/tools/SetupAtlas/copyBlasFile.c
new file mode 100755
index 000000000..36a3492e6
--- /dev/null
+++ b/tools/SetupAtlas/copyBlasFile.c
@@ -0,0 +1,112 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#include <windows.h>
+#include <stdlib.h>
+#include "copyBlasFile.h"
+#include "GetPathOfThisExe.h"
+#include "FileExist.h"
+/*--------------------------------------------------------------------------*/
+#define BLAS_FILENAME_DEST L"blasplus.dll"
+#define ATLAS_DIRECTORY L"Atlas"
+#define FILE_SEPARATOR L"\\"
+#define FORMAT_DESTINATION_FILENAME L"%s\\%s"
+#define FORMAT_SOURCE_FILENAME L"%s\\%s\\%s"
+/*--------------------------------------------------------------------------*/
+static wchar_t* buildDestinationFilename(wchar_t* execpath);
+static wchar_t* buildSourceFilename(wchar_t* execpath, wchar_t* blasDllName);
+/*--------------------------------------------------------------------------*/
+copy_blas_error copyBlasFile(wchar_t *blasDllName)
+{
+ copy_blas_error err = COPY_OK;
+ wchar_t *currentexecpath = GetPathOfThisExe();
+ if (currentexecpath)
+ {
+ wchar_t *destFilename = buildDestinationFilename(currentexecpath);
+ wchar_t *srcFilename = buildSourceFilename(currentexecpath, blasDllName);
+ if (destFilename && srcFilename)
+ {
+ if (FileExist(srcFilename))
+ {
+ if (!CopyFileW(srcFilename, destFilename, FALSE))
+ {
+ err = COPY_FILE_FAILED;
+ }
+ else
+ {
+ err = COPY_OK;
+ }
+ }
+ else
+ {
+ err = COPY_FILE_SRC_NOT_EXISTS;
+ }
+ }
+
+ if (destFilename)
+ {
+ free(destFilename);
+ destFilename = NULL;
+ }
+ if (srcFilename)
+ {
+ free(srcFilename);
+ srcFilename = NULL;
+ }
+
+ free(currentexecpath);
+ currentexecpath = NULL;
+ }
+ else
+ {
+ err = COPY_DESTINATION_NOT_EXISTS;
+ }
+ return err;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t* buildDestinationFilename(wchar_t* execpath)
+{
+ wchar_t* DestinationFilename = NULL;
+ if (execpath)
+ {
+ int len = (int)(wcslen(FORMAT_DESTINATION_FILENAME) +
+ wcslen(execpath) + wcslen(BLAS_FILENAME_DEST) + 1);
+
+ DestinationFilename = (wchar_t *) calloc(len, sizeof(wchar_t));
+ if (DestinationFilename)
+ {
+ wsprintfW(DestinationFilename, FORMAT_DESTINATION_FILENAME,
+ execpath, BLAS_FILENAME_DEST);
+ }
+ }
+ return DestinationFilename;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t* buildSourceFilename(wchar_t* execpath, wchar_t* blasDllName)
+{
+ wchar_t* SourceFilename = NULL;
+ if (execpath && blasDllName)
+ {
+ int len = (int)(wcslen(FORMAT_SOURCE_FILENAME) +
+ wcslen(execpath) + wcslen(ATLAS_DIRECTORY) +
+ wcslen(blasDllName) + 1);
+
+ SourceFilename = (wchar_t *) calloc(len, sizeof(wchar_t));
+ if (SourceFilename)
+ {
+ wsprintfW(SourceFilename, FORMAT_SOURCE_FILENAME,
+ execpath, ATLAS_DIRECTORY, blasDllName);
+ }
+ }
+ return SourceFilename;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/tools/SetupAtlas/copyBlasFile.h b/tools/SetupAtlas/copyBlasFile.h
new file mode 100755
index 000000000..abe5c114b
--- /dev/null
+++ b/tools/SetupAtlas/copyBlasFile.h
@@ -0,0 +1,30 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+
+#ifndef __COPYBLASFILE_H__
+#define __COPYBLASFILE_H__
+
+#include <wchar.h>
+
+typedef enum
+{
+ COPY_NO_RIGHT_TO_WRITE = 0,
+ COPY_OK = 1,
+ COPY_FILE_SRC_NOT_EXISTS = 2,
+ COPY_DESTINATION_NOT_EXISTS = 3,
+ COPY_FILE_FAILED = 4
+} copy_blas_error;
+
+copy_blas_error copyBlasFile(wchar_t *blasDllName);
+#endif /* __COPYBLASFILE_H__ */
+/*--------------------------------------------------------------------------*/ \ No newline at end of file
diff --git a/tools/SetupAtlas/getCpuInfos.c b/tools/SetupAtlas/getCpuInfos.c
new file mode 100755
index 000000000..208c06c8c
--- /dev/null
+++ b/tools/SetupAtlas/getCpuInfos.c
@@ -0,0 +1,263 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#include <Windows.h>
+#include <stdio.h>
+#include "getCpuInfos.h"
+/*--------------------------------------------------------------------------*/
+#define KeyCentralProcessor L"HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"
+#define KeyVendorIdentifier L"VendorIdentifier"
+#define KeyProcessorNameString L"ProcessorNameString"
+#define KeyPlatformID L"Platform ID"
+#define KeyCpuIdentifier L"Identifier"
+#define KeyFrequency L"~Mhz"
+#define LenMaxLine MAX_PATH * 2
+/*--------------------------------------------------------------------------*/
+wchar_t *getCpuVendor(void)
+{
+ wchar_t *CpuManufacturer = NULL;
+ HKEY key;
+ DWORD result;
+ ULONG length = LenMaxLine;
+ ULONG Type = 0;
+
+ result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, KeyCentralProcessor, 0, KEY_QUERY_VALUE , &key);
+ if (result == ERROR_SUCCESS)
+ {
+ wchar_t LineResult[LenMaxLine];
+
+ if ( RegQueryValueExW(key, KeyVendorIdentifier,
+ 0, &Type, (LPBYTE)LineResult, &length) == ERROR_SUCCESS )
+ {
+ if ( Type == REG_SZ )
+ {
+ CpuManufacturer = _wcsdup(LineResult);
+ }
+ }
+ RegCloseKey(key);
+ }
+ return CpuManufacturer;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t *getProcessorNameString(void)
+{
+ wchar_t *ProcessorNameString = NULL;
+ HKEY key;
+ DWORD result;
+ ULONG length = LenMaxLine;
+ ULONG Type = 0;
+
+ result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, KeyCentralProcessor, 0, KEY_QUERY_VALUE , &key);
+ if (result == ERROR_SUCCESS)
+ {
+ wchar_t LineResult[LenMaxLine];
+
+ if ( RegQueryValueExW(key, KeyProcessorNameString,
+ 0, &Type, (LPBYTE)LineResult, &length) == ERROR_SUCCESS )
+ {
+ if ( Type == REG_SZ )
+ {
+ ProcessorNameString = _wcsdup(LineResult);
+ }
+ }
+ RegCloseKey(key);
+ }
+ return ProcessorNameString;
+}
+/*--------------------------------------------------------------------------*/
+int getCpuPlatformID(void)
+{
+ int CpuPlatformId = CPU_PLATFORMID_ERROR;
+ HKEY key;
+ DWORD result;
+
+ result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, KeyCentralProcessor, 0, KEY_QUERY_VALUE , &key);
+ if (result == ERROR_SUCCESS)
+ {
+ ULONG type = 0;
+ DWORD size = 4;
+ int Num = 0;
+ if (RegQueryValueExW(key, KeyPlatformID, NULL, &type, (LPBYTE)&Num, &size) == ERROR_SUCCESS )
+ {
+ if (type == REG_DWORD)
+ {
+ CpuPlatformId = Num;
+ }
+ }
+ RegCloseKey(key);
+ }
+ return CpuPlatformId;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t *getCpuIdentifier(void)
+{
+ wchar_t *CpuIdentifier = NULL;
+ HKEY key;
+ DWORD result;
+ ULONG length = LenMaxLine;
+ ULONG Type = 0;
+
+ result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, KeyCentralProcessor, 0, KEY_QUERY_VALUE , &key);
+ if (result == ERROR_SUCCESS)
+ {
+ wchar_t LineResult[LenMaxLine];
+
+ if ( RegQueryValueExW(key, KeyCpuIdentifier,
+ 0, &Type, (LPBYTE)LineResult, &length) == ERROR_SUCCESS )
+ {
+ if ( Type == REG_SZ )
+ {
+ CpuIdentifier = _wcsdup(LineResult);
+ }
+ }
+ RegCloseKey(key);
+ }
+ return CpuIdentifier;
+}
+/*--------------------------------------------------------------------------*/
+int getCpuFrequency(void)
+{
+ int CpuFrequency = CPU_FREQUENCY_ERROR;
+ HKEY key;
+ DWORD result;
+
+ result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, KeyCentralProcessor, 0, KEY_QUERY_VALUE , &key);
+ if (result == ERROR_SUCCESS)
+ {
+ ULONG type = 0;
+ DWORD size = 4;
+ int Num = 0;
+ if (RegQueryValueExW(key, KeyFrequency, NULL, &type, (LPBYTE)&Num, &size) == ERROR_SUCCESS )
+ {
+ if (type == REG_DWORD)
+ {
+ CpuFrequency = Num;
+ }
+ }
+ RegCloseKey(key);
+ }
+ return CpuFrequency;
+}
+/*--------------------------------------------------------------------------*/
+int getCpuFamily(void)
+{
+ wchar_t *Identifier = getCpuIdentifier();
+ int CpuFamily = CPU_FAMILY_ERROR;
+ if (Identifier)
+ {
+ wchar_t wArch[LenMaxLine];
+ wchar_t wFamily[LenMaxLine];
+ wchar_t wFamilyValue[LenMaxLine];
+ wchar_t wModel[LenMaxLine];
+ wchar_t wModelValue[LenMaxLine];
+ wchar_t wStepping[LenMaxLine];
+ wchar_t wSteppingValue[LenMaxLine];
+
+ swscanf(Identifier, L"%s %s %s %s %s %s %s",
+ wArch,
+ wFamily, wFamilyValue,
+ wModel, wModelValue,
+ wStepping, wSteppingValue);
+
+ CpuFamily = (int)_wcstoi64(wFamilyValue, (wchar_t **)NULL, 10);
+
+ free(Identifier);
+ Identifier = NULL;
+ }
+ return CpuFamily;
+}
+/*--------------------------------------------------------------------------*/
+int getCpuModel(void)
+{
+ wchar_t *Identifier = getCpuIdentifier();
+ int CpuModel = CPU_MODEL_ERROR;
+ if (Identifier)
+ {
+ wchar_t wArch[LenMaxLine];
+ wchar_t wFamily[LenMaxLine];
+ wchar_t wFamilyValue[LenMaxLine];
+ wchar_t wModel[LenMaxLine];
+ wchar_t wModelValue[LenMaxLine];
+ wchar_t wStepping[LenMaxLine];
+ wchar_t wSteppingValue[LenMaxLine];
+
+ swscanf(Identifier, L"%s %s %s %s %s %s %s",
+ wArch,
+ wFamily, wFamilyValue,
+ wModel, wModelValue,
+ wStepping, wSteppingValue);
+
+ CpuModel = (int)_wcstoi64(wModelValue, (wchar_t **)NULL, 10);
+
+ free(Identifier);
+ Identifier = NULL;
+ }
+ return CpuModel;
+}
+/*--------------------------------------------------------------------------*/
+int getCpuStepping(void)
+{
+ wchar_t *Identifier = getCpuIdentifier();
+ int CpuStepping = CPU_STEPPING_ERROR;
+ if (Identifier)
+ {
+ wchar_t wArch[LenMaxLine];
+ wchar_t wFamily[LenMaxLine];
+ wchar_t wFamilyValue[LenMaxLine];
+ wchar_t wModel[LenMaxLine];
+ wchar_t wModelValue[LenMaxLine];
+ wchar_t wStepping[LenMaxLine];
+ wchar_t wSteppingValue[LenMaxLine];
+
+ swscanf(Identifier, L"%s %s %s %s %s %s %s",
+ wArch,
+ wFamily, wFamilyValue,
+ wModel, wModelValue,
+ wStepping, wSteppingValue);
+
+ CpuStepping = (int)_wcstoi64(wSteppingValue, (wchar_t **)NULL, 10);
+
+ free(Identifier);
+ Identifier = NULL;
+ }
+ return CpuStepping;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t *getCpuArchitecture(void)
+{
+ wchar_t *CpuArchitecture = NULL;
+ wchar_t *Identifier = getCpuIdentifier();
+
+ if (Identifier)
+ {
+ wchar_t wArch[LenMaxLine];
+ wchar_t wFamily[LenMaxLine];
+ wchar_t wFamilyValue[LenMaxLine];
+ wchar_t wModel[LenMaxLine];
+ wchar_t wModelValue[LenMaxLine];
+ wchar_t wStepping[LenMaxLine];
+ wchar_t wSteppingValue[LenMaxLine];
+
+ swscanf(Identifier, L"%s %s %s %s %s %s %s",
+ wArch,
+ wFamily, wFamilyValue,
+ wModel, wModelValue,
+ wStepping, wSteppingValue);
+
+ CpuArchitecture = _wcsdup(wArch);
+
+ free(Identifier);
+ Identifier = NULL;
+ }
+ return CpuArchitecture;
+}
+/*--------------------------------------------------------------------------*/ \ No newline at end of file
diff --git a/tools/SetupAtlas/getCpuInfos.h b/tools/SetupAtlas/getCpuInfos.h
new file mode 100755
index 000000000..05bb57d9d
--- /dev/null
+++ b/tools/SetupAtlas/getCpuInfos.h
@@ -0,0 +1,88 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#ifndef __GETCPUINFOS_H__
+#define __GETCPUINFOS_H__
+/*--------------------------------------------------------------------------*/
+#include <wchar.h>
+/*--------------------------------------------------------------------------*/
+#define CPU_FAMILY_ERROR -1
+#define CPU_MODEL_ERROR -1
+#define CPU_STEPPING_ERROR -1
+#define CPU_FREQUENCY_ERROR -1
+#define CPU_PLATFORMID_ERROR -1
+/*--------------------------------------------------------------------------*/
+#define DEFAULT_ERROR_MESSAGE L"ERROR"
+/*--------------------------------------------------------------------------*/
+/**
+* get CPU vendor name (GenuineIntel,AuthenticAMD, ...)
+* @return CPU vendor name
+*/
+wchar_t *getCpuVendor(void);
+
+/**
+* get Processor Name String
+* example :
+* Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
+* @return Processor Name String
+*/
+wchar_t *getProcessorNameString(void);
+
+/**
+* get Platform ID
+* @return Platform ID
+*/
+int getCpuPlatformID(void);
+
+/**
+* get CPU Identifier
+* example :
+* Intel64 Family 6 Model 15 Stepping 11
+* @return CPU Identifier
+*/
+wchar_t *getCpuIdentifier(void);
+
+/**
+* get CPU frequency
+* @return CPU frequency
+*/
+int getCpuFrequency(void);
+
+/**
+* get CPU Family
+* @return CPU Family
+*/
+int getCpuFamily(void);
+
+/**
+* get CPU Model
+* @return CPU Model
+*/
+int getCpuModel(void);
+
+/**
+* get CPU Stepping
+* @return CPU Stepping
+*/
+int getCpuStepping(void);
+
+/**
+* get CPU Architecture used
+* example :
+* Intel64 or x86
+* @return CPU Architecture
+*/
+wchar_t *getCpuArchitecture(void);
+/*--------------------------------------------------------------------------*/
+#endif /* __GETCPUINFOS_H__ */
+/*--------------------------------------------------------------------------*/
+
diff --git a/tools/SetupAtlas/getPathOfThisExe.c b/tools/SetupAtlas/getPathOfThisExe.c
new file mode 100755
index 000000000..4b5ffad17
--- /dev/null
+++ b/tools/SetupAtlas/getPathOfThisExe.c
@@ -0,0 +1,32 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#include <windows.h>
+/*--------------------------------------------------------------------------*/
+wchar_t * GetPathOfThisExe(void)
+{
+ wchar_t *pathexe = NULL;
+ wchar_t *tail;
+ wchar_t wcfullfilename[MAX_PATH * 2];
+
+ GetModuleFileNameW(GetModuleHandleW(NULL), wcfullfilename, MAX_PATH * 2);
+
+ if ((tail = wcsrchr (wcfullfilename, L'\\')) != NULL)
+ {
+ tail++;
+ *tail = L'\0';
+ pathexe = _wcsdup(wcfullfilename);
+ }
+
+ return (wchar_t *)pathexe;
+}
+/*--------------------------------------------------------------------------*/ \ No newline at end of file
diff --git a/tools/SetupAtlas/getPathOfThisExe.h b/tools/SetupAtlas/getPathOfThisExe.h
new file mode 100755
index 000000000..4b893524f
--- /dev/null
+++ b/tools/SetupAtlas/getPathOfThisExe.h
@@ -0,0 +1,25 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#ifndef __GETPATHOFTHISEXE_H__
+#define __GETPATHOFTHISEXE_H__
+
+#include <wchar.h>
+
+/**
+* get path of this executable
+* @return path of this executable
+*/
+wchar_t * GetPathOfThisExe(void);
+
+#endif /* __GETPATHOFTHISEXE_H__ */
+/*--------------------------------------------------------------------------*/
diff --git a/tools/SetupAtlas/readBlasSpec.c b/tools/SetupAtlas/readBlasSpec.c
new file mode 100755
index 000000000..2ca2c3395
--- /dev/null
+++ b/tools/SetupAtlas/readBlasSpec.c
@@ -0,0 +1,217 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#include <windows.h>
+#include <libxml/xpath.h>
+#include <libxml/xmlreader.h>
+#include "readBlasSpec.h"
+#include "xmlEncoding.h"
+/*--------------------------------------------------------------------------*/
+static char *getshortpathname(wchar_t *wclongpathname, BOOL *convertok);
+static wchar_t *GetXmlFileEncoding(const wchar_t *wcfilename);
+/*--------------------------------------------------------------------------*/
+struct cpu_struct ** readBlasSpec(wchar_t *blasspec_filename, int *sizeArrayReturned)
+{
+ struct cpu_struct **CPUS_BLAS_SPEC = NULL;
+
+ if (blasspec_filename)
+ {
+ wchar_t *FileEncoding = GetXmlFileEncoding(blasspec_filename);
+ if (FileEncoding)
+ {
+ if (_wcsicmp(FileEncoding, L"UTF-8") == 0)
+ {
+#define XPATH "//blas_specification/cpu"
+ BOOL bConvert = FALSE;
+ char *shortfilename = getshortpathname((wchar_t*)blasspec_filename, &bConvert);
+ if (shortfilename)
+ {
+ xmlXPathContextPtr xpathCtxt = NULL;
+ xmlXPathObjectPtr xpathObj = NULL;
+ xmlDocPtr BlasSpecxmlDocPtr = xmlParseFile (shortfilename);
+
+ free(shortfilename);
+ shortfilename = NULL;
+
+ xmlKeepBlanksDefault(0);
+
+ if (BlasSpecxmlDocPtr)
+ {
+ xpathCtxt = xmlXPathNewContext(BlasSpecxmlDocPtr);
+ xpathObj = xmlXPathEval((const xmlChar*)XPATH, xpathCtxt);
+
+ if (xpathObj && xpathObj->nodesetval->nodeMax)
+ {
+ /* the Xpath has been understood and there are node */
+ CPUS_BLAS_SPEC = (struct cpu_struct **) malloc(sizeof(struct cpu_struct *) * xpathObj->nodesetval->nodeNr);
+ if (CPUS_BLAS_SPEC)
+ {
+ int i = 0;
+ for (i = 0; i < xpathObj->nodesetval->nodeNr; i++)
+ {
+ xmlAttrPtr attrib = xpathObj->nodesetval->nodeTab[i]->properties;
+ CPUS_BLAS_SPEC[i] = (struct cpu_struct *) malloc(sizeof(struct cpu_struct));
+ if (CPUS_BLAS_SPEC[i])
+ {
+ while (attrib != NULL)
+ {
+ if (xmlStrEqual (attrib->name, (const xmlChar*) "cpu_manufacturer"))
+ {
+ /* we found the tag cpu_manufacturer */
+ CPUS_BLAS_SPEC[i]->cpu_vendor = toWideString((char*)attrib->children->content);
+ }
+
+ if (xmlStrEqual (attrib->name, (const xmlChar*) "cpu_family"))
+ {
+ /* we found the tag cpu_family */
+ if (strcmp((char*)attrib->children->content, "*") == 0)
+ {
+ CPUS_BLAS_SPEC[i]->cpu_family = 0;
+ }
+ else
+ {
+ CPUS_BLAS_SPEC[i]->cpu_family = atoi((char*)attrib->children->content);
+ }
+ }
+
+ if (xmlStrEqual (attrib->name, (const xmlChar*) "cpu_model"))
+ {
+ /* we found the tag cpu_model */
+ if (strcmp((char*)attrib->children->content, "*") == 0)
+ {
+ CPUS_BLAS_SPEC[i]->cpu_model = 0;
+ }
+ else
+ {
+ CPUS_BLAS_SPEC[i]->cpu_model = atoi((char*)attrib->children->content);
+ }
+ }
+
+ if (xmlStrEqual (attrib->name, (const xmlChar*) "dll_filename"))
+ {
+ /* we found the tag dll_filename */
+ CPUS_BLAS_SPEC[i]->dll_filename = toWideString((char*)attrib->children->content);
+ }
+
+ if (xmlStrEqual (attrib->name, (const xmlChar*) "comments"))
+ {
+ /* we found the tag comments */
+ CPUS_BLAS_SPEC[i]->comments = toWideString((char*)attrib->children->content);
+ }
+ attrib = attrib->next;
+ }
+ }
+ *sizeArrayReturned = i;
+ }
+ }
+ }
+
+ if (xpathObj)
+ {
+ xmlXPathFreeObject(xpathObj);
+ }
+ if (xpathCtxt)
+ {
+ xmlXPathFreeContext(xpathCtxt);
+ }
+ xmlFreeDoc (BlasSpecxmlDocPtr);
+ }
+ }
+ }
+ }
+ free(FileEncoding);
+ FileEncoding = NULL;
+ }
+
+ return CPUS_BLAS_SPEC;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t *GetXmlFileEncoding(const wchar_t *wcfilename)
+{
+ wchar_t *encoding = NULL;
+
+ if (wcfilename)
+ {
+ xmlDocPtr doc = NULL;
+ BOOL bConvert = FALSE;
+ char *shortfilename = getshortpathname((wchar_t*)wcfilename, &bConvert);
+ if (shortfilename)
+ {
+ doc = xmlParseFile(shortfilename);
+
+ free(shortfilename);
+ shortfilename = NULL;
+ if (doc)
+ {
+ if (doc->encoding)
+ {
+ encoding = toWideString((char*)doc->encoding);
+ }
+ }
+ xmlFreeDoc (doc);
+ }
+ }
+ return encoding;
+}
+/*--------------------------------------------------------------------------*/
+char *getshortpathname(wchar_t *wclongpathname, BOOL *convertok)
+{
+ char *ShortName = NULL;
+
+ if (wclongpathname)
+ {
+ /* first we try to call to know path length */
+ wchar_t *ptwShortName = NULL;
+ int length = GetShortPathNameW(wclongpathname, NULL, 0);
+
+ if (length <= 0 )
+ {
+ length = MAX_PATH;
+ }
+
+ ptwShortName = (wchar_t*)calloc((length + 1), sizeof(wchar_t));
+
+ if (ptwShortName)
+ {
+ /* second converts path */
+ if ( GetShortPathNameW(wclongpathname, ptwShortName, length) )
+ {
+ ShortName = toUTF(ptwShortName);
+ *convertok = TRUE;
+ }
+ else
+ {
+ /* FAILED */
+ ShortName = toUTF(wclongpathname);
+ *convertok = FALSE;
+ }
+ if (ptwShortName)
+ {
+ free(ptwShortName);
+ ptwShortName = NULL;
+ }
+ }
+ else
+ {
+ /* FAILED */
+ ShortName = toUTF(wclongpathname);
+ *convertok = FALSE;
+ }
+ }
+ else
+ {
+ /* FAILED */
+ *convertok = FALSE;
+ }
+ return ShortName;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/tools/SetupAtlas/readBlasSpec.h b/tools/SetupAtlas/readBlasSpec.h
new file mode 100755
index 000000000..79ce04ad1
--- /dev/null
+++ b/tools/SetupAtlas/readBlasSpec.h
@@ -0,0 +1,31 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#ifndef __READBLASSPEC_H__
+#define __READBLASSPEC_H__
+
+#include <wchar.h>
+
+struct cpu_struct
+{
+ wchar_t *cpu_vendor;
+ int cpu_family;
+ int cpu_model;
+ wchar_t *dll_filename;
+ wchar_t *comments;
+};
+
+struct cpu_struct ** readBlasSpec(wchar_t *blasspec_filename,
+ int *sizeArrayReturned);
+
+#endif /* __READBLASSPEC_H__ */
+/*--------------------------------------------------------------------------*/ \ No newline at end of file
diff --git a/tools/SetupAtlas/writeLog.c b/tools/SetupAtlas/writeLog.c
new file mode 100755
index 000000000..efe12c8b4
--- /dev/null
+++ b/tools/SetupAtlas/writeLog.c
@@ -0,0 +1,49 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+
+/*--------------------------------------------------------------------------*/
+#include <time.h>
+#include <stdio.h>
+#include "writeLog.h"
+/*--------------------------------------------------------------------------*/
+BOOL AppendMessageToLog(wchar_t *Message, wchar_t *FullFilename)
+{
+ BOOL bOK = FALSE;
+ FILE *pFile = NULL;
+
+ pFile = _wfopen(FullFilename, L"at");
+
+ if (pFile)
+ {
+ fwprintf(pFile, L"%s\n", Message);
+ fclose(pFile);
+ bOK = TRUE;
+ }
+
+ return bOK;
+}
+/*--------------------------------------------------------------------------*/
+wchar_t *getTimeString(void)
+{
+ wchar_t time_str[MAX_PATH];
+ time_t timer;
+ struct tm *currentTime;
+
+ timer = time(NULL);
+ currentTime = localtime(&timer);
+ wsprintfW(time_str, L"%d/%d/%d %d:%d:%d",
+ currentTime->tm_mon + 1 , currentTime->tm_mday, 1900 + currentTime->tm_year,
+ currentTime->tm_hour, currentTime->tm_min, currentTime->tm_sec);
+
+ return _wcsdup(time_str);
+}
+/*--------------------------------------------------------------------------*/ \ No newline at end of file
diff --git a/tools/SetupAtlas/writeLog.h b/tools/SetupAtlas/writeLog.h
new file mode 100755
index 000000000..36477a0a0
--- /dev/null
+++ b/tools/SetupAtlas/writeLog.h
@@ -0,0 +1,34 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+
+/*--------------------------------------------------------------------------*/
+#ifndef __WRITELOG_H__
+#define __WRITELOG_H__
+/*--------------------------------------------------------------------------*/
+#include <windows.h>
+#include <wchar.h>
+
+/**
+* append message to a log file
+* @param[in] message
+* @param[in] filename destination
+* @return TRUE or FALSE
+*/
+BOOL AppendMessageToLog(wchar_t *Message, wchar_t *FullFilename);
+
+/**
+* get current date and time
+*/
+wchar_t *getTimeString(void);
+
+#endif
+/*--------------------------------------------------------------------------*/ \ No newline at end of file
diff --git a/tools/SetupAtlas/xmlEncoding.c b/tools/SetupAtlas/xmlEncoding.c
new file mode 100755
index 000000000..a331c4b80
--- /dev/null
+++ b/tools/SetupAtlas/xmlEncoding.c
@@ -0,0 +1,55 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#include <windows.h>
+#include "xmlEncoding.h"
+/*--------------------------------------------------------------------------*/
+wchar_t *toWideString(char *_Str)
+{
+ int nwide = 0;
+ wchar_t *_buf = NULL;
+
+ if(_Str == NULL) return NULL;
+ nwide = MultiByteToWideChar(CP_UTF8, 0, _Str, -1, NULL, 0);
+ if(nwide == 0) return NULL;
+ _buf = (wchar_t *)calloc(nwide, sizeof(wchar_t));
+ if(_buf == NULL) return NULL;
+ if(MultiByteToWideChar(CP_UTF8, 0, _Str, -1, _buf, nwide) == 0)
+ {
+ free(_buf);
+ _buf = NULL;
+ }
+ return _buf;
+}
+/*--------------------------------------------------------------------------*/
+char *toUTF(wchar_t *_wcStr)
+{
+ DWORD size = 0;
+ char *buf = NULL;
+
+ if ((wchar_t *)NULL == _wcStr) return (char *)NULL;
+ size = WideCharToMultiByte(CP_UTF8, 0, _wcStr, -1, NULL, 0, NULL, 0);
+ if (size == 0) return (char *)NULL;
+ size += 1;
+ buf = (char*)calloc(size, sizeof(char));
+ if (buf)
+ {
+ WideCharToMultiByte(CP_UTF8, 0, _wcStr, -1, buf, size, NULL, 0);
+ if (size <= 0)
+ {
+ free(buf);
+ return NULL;
+ }
+ }
+ return buf;
+}
+/*--------------------------------------------------------------------------*/ \ No newline at end of file
diff --git a/tools/SetupAtlas/xmlEncoding.h b/tools/SetupAtlas/xmlEncoding.h
new file mode 100755
index 000000000..f1af85c70
--- /dev/null
+++ b/tools/SetupAtlas/xmlEncoding.h
@@ -0,0 +1,35 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* 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.1-en.txt
+*
+*/
+/*--------------------------------------------------------------------------*/
+#ifndef __XMLENCODING_H__
+#define __XMLENCODING_H__
+
+#include <wchar.h>
+
+/* routines used to convert LibXml string */
+
+/**
+* convert a string to wide char encoding
+* @param[in] UTF
+* @return wide char
+*/
+wchar_t *toWideString(char *_Str);
+
+/**
+* convert a wide string to UTF
+* @param[in] wide string
+* @return UTF
+*/
+char *toUTF(wchar_t *_wcStr);
+
+#endif /* __TOWIDESTRING_H__ */
+/*--------------------------------------------------------------------------*/
diff --git a/tools/api_scilab_trad/Bool_Matrix_Alloc.txt b/tools/api_scilab_trad/Bool_Matrix_Alloc.txt
new file mode 100755
index 000000000..d98d505ab
--- /dev/null
+++ b/tools/api_scilab_trad/Bool_Matrix_Alloc.txt
@@ -0,0 +1,10 @@
+\1int* \5 = NULL; //@MOVE@
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = allocMatrixOfBoolean(pvApiCtx, \2, \3, \4, &\5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Bool_Matrix_Create.txt b/tools/api_scilab_trad/Bool_Matrix_Create.txt
new file mode 100755
index 000000000..82a7e3f32
--- /dev/null
+++ b/tools/api_scilab_trad/Bool_Matrix_Create.txt
@@ -0,0 +1,8 @@
+\1sciErr = createMatrixOfBoolean(pvApiCtx, \2, \3, \4, \5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Bool_Matrix_Get.txt b/tools/api_scilab_trad/Bool_Matrix_Get.txt
new file mode 100755
index 000000000..0a6a2e77d
--- /dev/null
+++ b/tools/api_scilab_trad/Bool_Matrix_Get.txt
@@ -0,0 +1,19 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1int* \5 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+\1
+\1// Retrieve a matrix of boolean at position \2.
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = getMatrixOfBoolean(pvApiCtx, piAddr\5, &\3, &\4, &\5);\6
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(202, _("%s: Wrong type for argument %d: Boolean matrix expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/DoubleComplex_Matrix_Alloc.txt b/tools/api_scilab_trad/DoubleComplex_Matrix_Alloc.txt
new file mode 100755
index 000000000..4f23fbffd
--- /dev/null
+++ b/tools/api_scilab_trad/DoubleComplex_Matrix_Alloc.txt
@@ -0,0 +1,11 @@
+\1double* \6 = NULL; //@MOVE@
+\1double* \7 = NULL; //@MOVE@
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \6" and "int \7".
+\1sciErr = allocComplexMatrixOfDouble(pvApiCtx, \2, \4, \5, &\6, &\7);\8
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/DoubleComplex_Matrix_AllocAsInteger.txt b/tools/api_scilab_trad/DoubleComplex_Matrix_AllocAsInteger.txt
new file mode 100755
index 000000000..2da7e3483
--- /dev/null
+++ b/tools/api_scilab_trad/DoubleComplex_Matrix_AllocAsInteger.txt
@@ -0,0 +1,11 @@
+\1int* \6 = NULL; //@MOVE@
+\1int* \7 = NULL; //@MOVE@
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \6" and "int \7".
+\1sciErr = allocComplexMatrixOfDoubleAsInteger(pvApiCtx, \2, \4, \5, &\6, &\7);\8
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/DoubleComplex_Matrix_Create.txt b/tools/api_scilab_trad/DoubleComplex_Matrix_Create.txt
new file mode 100755
index 000000000..2fc57987c
--- /dev/null
+++ b/tools/api_scilab_trad/DoubleComplex_Matrix_Create.txt
@@ -0,0 +1,8 @@
+\1sciErr = createComplexMatrixOfDouble(pvApiCtx, \2, \4, \5, \6, \7);\8
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/DoubleComplex_Matrix_CreateAsInteger.txt b/tools/api_scilab_trad/DoubleComplex_Matrix_CreateAsInteger.txt
new file mode 100755
index 000000000..06063eb97
--- /dev/null
+++ b/tools/api_scilab_trad/DoubleComplex_Matrix_CreateAsInteger.txt
@@ -0,0 +1,8 @@
+\1sciErr = createComplexMatrixOfDoubleAsInteger(pvApiCtx, \2, \4, \5, \6, \7);\8
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/DoubleComplex_Matrix_Get.txt b/tools/api_scilab_trad/DoubleComplex_Matrix_Get.txt
new file mode 100755
index 000000000..8e6bba1d1
--- /dev/null
+++ b/tools/api_scilab_trad/DoubleComplex_Matrix_Get.txt
@@ -0,0 +1,33 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1double* \6 = NULL; //@MOVE@
+\1double* \7 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+\1
+\1// Retrieve a matrix of double at position \2.
+\1// YOU MUST REMOVE YOUR VARIABLES DECLARATIONS "int \6" and "int \7".
+\1if (isVarComplex(pvApiCtx, piAddr\5))
+\1{
+\1 sciErr = getComplexMatrixOfDouble(pvApiCtx, piAddr\5, &\4, &\5, &\6, &\7);\8
+\1 \3 = 1;
+\1}
+\1else
+\1{
+\1 sciErr = getMatrixOfDouble(pvApiCtx, piAddr\5, &\4, &\5, &\6);\8
+\1 \3 = 0;
+\1}
+
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(202, _("%s: Wrong type for argument %d: Real or complex matrix expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
+
+
+
diff --git a/tools/api_scilab_trad/DoubleComplex_Matrix_GetAsInteger.txt b/tools/api_scilab_trad/DoubleComplex_Matrix_GetAsInteger.txt
new file mode 100755
index 000000000..e0a40be17
--- /dev/null
+++ b/tools/api_scilab_trad/DoubleComplex_Matrix_GetAsInteger.txt
@@ -0,0 +1,20 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1int* \6 = NULL; //@MOVE@
+\1int* \7 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+\1
+\1// Retrieve a matrix of double at position \2.
+\1// YOU MUST REMOVE YOUR VARIABLES DECLARATIONS "int \6" and "int \7".
+\1sciErr = getComplexMatrixOfDoubleAsInteger(pvApiCtx, piAddr\5, &\4, &\5, &\6, &\7);\8
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(202, _("%s: Wrong type for argument %d: A real expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Double_Matrix_Alloc.txt b/tools/api_scilab_trad/Double_Matrix_Alloc.txt
new file mode 100755
index 000000000..948d2ac41
--- /dev/null
+++ b/tools/api_scilab_trad/Double_Matrix_Alloc.txt
@@ -0,0 +1,10 @@
+\1double* \5 = NULL; //@MOVE@
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = allocMatrixOfDouble(pvApiCtx, \2, \3, \4, &\5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Double_Matrix_AllocAsInteger.txt b/tools/api_scilab_trad/Double_Matrix_AllocAsInteger.txt
new file mode 100755
index 000000000..c498b0dbd
--- /dev/null
+++ b/tools/api_scilab_trad/Double_Matrix_AllocAsInteger.txt
@@ -0,0 +1,10 @@
+\1int* \5 = NULL; //@MOVE@
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = allocMatrixOfDoubleAsInteger(pvApiCtx, \2, \3, \4, &\5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Double_Matrix_Create.txt b/tools/api_scilab_trad/Double_Matrix_Create.txt
new file mode 100755
index 000000000..a2f78fdd4
--- /dev/null
+++ b/tools/api_scilab_trad/Double_Matrix_Create.txt
@@ -0,0 +1,8 @@
+\1sciErr = createMatrixOfDouble(pvApiCtx, \2, \3, \4, \5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Double_Matrix_CreateAsInteger.txt b/tools/api_scilab_trad/Double_Matrix_CreateAsInteger.txt
new file mode 100755
index 000000000..5e0f983f0
--- /dev/null
+++ b/tools/api_scilab_trad/Double_Matrix_CreateAsInteger.txt
@@ -0,0 +1,8 @@
+\1sciErr = createMatrixOfDoubleAsInteger(pvApiCtx, \2, \3, \4, \5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Double_Matrix_Get.txt b/tools/api_scilab_trad/Double_Matrix_Get.txt
new file mode 100755
index 000000000..8a832a85e
--- /dev/null
+++ b/tools/api_scilab_trad/Double_Matrix_Get.txt
@@ -0,0 +1,19 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1double* \5 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+\1
+\1// Retrieve a matrix of double at position \2.
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = getMatrixOfDouble(pvApiCtx, piAddr\5, &\3, &\4, &\5);\6
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(202, _("%s: Wrong type for argument %d: A real expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Double_Matrix_GetAsInteger.txt b/tools/api_scilab_trad/Double_Matrix_GetAsInteger.txt
new file mode 100755
index 000000000..e88e3dcbf
--- /dev/null
+++ b/tools/api_scilab_trad/Double_Matrix_GetAsInteger.txt
@@ -0,0 +1,19 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1int* \5 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+\1
+\1// Retrieve a matrix of double at position \2.
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddr\5, &\3, &\4, &\5);\6
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(202, _("%s: Wrong type for argument %d: A real expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Handle_Matrix_Alloc.txt b/tools/api_scilab_trad/Handle_Matrix_Alloc.txt
new file mode 100755
index 000000000..74f974c10
--- /dev/null
+++ b/tools/api_scilab_trad/Handle_Matrix_Alloc.txt
@@ -0,0 +1,10 @@
+\1long long* \5 = NULL; //@MOVE@
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = allocMatrixOfHandle(pvApiCtx, \2, \3, \4, &\5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Handle_Matrix_Create.txt b/tools/api_scilab_trad/Handle_Matrix_Create.txt
new file mode 100755
index 000000000..053eec936
--- /dev/null
+++ b/tools/api_scilab_trad/Handle_Matrix_Create.txt
@@ -0,0 +1,8 @@
+\1sciErr = createMatrixOfHandle(pvApiCtx, \2, \3, \4, \5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Handle_Matrix_Get.txt b/tools/api_scilab_trad/Handle_Matrix_Get.txt
new file mode 100755
index 000000000..8c8618792
--- /dev/null
+++ b/tools/api_scilab_trad/Handle_Matrix_Get.txt
@@ -0,0 +1,19 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1long long* \5 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+\1
+\1// Retrieve a matrix of handle at position \2.
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = getMatrixOfHandle(pvApiCtx, piAddr\5, &\3, &\4, &\5);\6
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(202, _("%s: Wrong type for argument %d: Handle matrix expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Pointer_Alloc.txt b/tools/api_scilab_trad/Pointer_Alloc.txt
new file mode 100755
index 000000000..f6b647696
--- /dev/null
+++ b/tools/api_scilab_trad/Pointer_Alloc.txt
@@ -0,0 +1,10 @@
+\1void* \5 = NULL; //@MOVE@
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = allocPointer(pvApiCtx, \2, &\5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Pointer_Create.txt b/tools/api_scilab_trad/Pointer_Create.txt
new file mode 100755
index 000000000..3559a38df
--- /dev/null
+++ b/tools/api_scilab_trad/Pointer_Create.txt
@@ -0,0 +1,8 @@
+\1sciErr = createPointer(pvApiCtx, \2, \5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Pointer_Get.txt b/tools/api_scilab_trad/Pointer_Get.txt
new file mode 100755
index 000000000..a97bc1b65
--- /dev/null
+++ b/tools/api_scilab_trad/Pointer_Get.txt
@@ -0,0 +1,19 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1void* \5 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+\1
+\1// Retrieve a pointer at position \2.
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1sciErr = getPointer(pvApiCtx, piAddr\5, &\5);\6
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(202, _("%s: Wrong type for argument %d: Boolean matrix expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/String_Matrix_Create.txt b/tools/api_scilab_trad/String_Matrix_Create.txt
new file mode 100755
index 000000000..6823d4b91
--- /dev/null
+++ b/tools/api_scilab_trad/String_Matrix_Create.txt
@@ -0,0 +1,8 @@
+\1sciErr = createMatrixOfString(pvApiCtx, \2, \3, \4, \5);\6
+\1if(sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/String_Matrix_Get.txt b/tools/api_scilab_trad/String_Matrix_Get.txt
new file mode 100755
index 000000000..8a46149fd
--- /dev/null
+++ b/tools/api_scilab_trad/String_Matrix_Get.txt
@@ -0,0 +1,16 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+
+\1// Retrieve a matrix of string at position \2.
+\1// DO NOT FORGET TO RELEASE MEMORY via freeAllocatedMatrixOfString(\3, \4, \5).
+\1if (getAllocatedMatrixOfString(pvApiCtx, piAddr\5, &\3, &\4, &\5))\6
+\1{
+\1 Scierror(202, _("%s: Wrong type for argument #%d: String matrix expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/String_Single_Alloc.txt b/tools/api_scilab_trad/String_Single_Alloc.txt
new file mode 100755
index 000000000..24e70e824
--- /dev/null
+++ b/tools/api_scilab_trad/String_Single_Alloc.txt
@@ -0,0 +1,8 @@
+\1char* \5 = NULL; //@MOVE@
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1if (allocSingleString(pvApiCtx, \2, \3 * \4, &\5))\6
+\1{
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/String_Single_Create.txt b/tools/api_scilab_trad/String_Single_Create.txt
new file mode 100755
index 000000000..96a322b85
--- /dev/null
+++ b/tools/api_scilab_trad/String_Single_Create.txt
@@ -0,0 +1,6 @@
+\1if (createSingleString(pvApiCtx, \2, \5))\6
+\1{
+\1 Scierror(999, _("%s: Memory allocation error.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/String_Single_Get.txt b/tools/api_scilab_trad/String_Single_Get.txt
new file mode 100755
index 000000000..f50b5754d
--- /dev/null
+++ b/tools/api_scilab_trad/String_Single_Get.txt
@@ -0,0 +1,18 @@
+\1int* piAddr\5 = NULL; //@MOVE@
+\1char* \5 = NULL; //@MOVE@
+\1sciErr = getVarAddressFromPosition(pvApiCtx, \2, &piAddr\5);
+\1if (sciErr.iErr)
+\1{
+\1 printError(&sciErr, 0);
+\1 return 1;
+\1}
+
+\1// Retrieve a matrix of double at position \2.
+\1// YOU MUST REMOVE YOUR VARIABLE DECLARATION "int \5".
+\1// DO NOT FORGET TO RELEASE MEMORY via freeAllocatedSingleString(\5).
+\1if (getAllocatedSingleString(pvApiCtx, piAddr\5, &\5))\6
+\1{
+\1 Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_Column.txt b/tools/api_scilab_trad/Tools_Check_Column.txt
new file mode 100755
index 000000000..0c6642f11
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_Column.txt
@@ -0,0 +1,7 @@
+\1//CheckColumn
+\1if (\4 != 1)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input argument #%d: A column vector expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_DimProp.txt b/tools/api_scilab_trad/Tools_Check_DimProp.txt
new file mode 100755
index 000000000..7a84701b7
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_DimProp.txt
@@ -0,0 +1,7 @@
+\1//CheckDimProp
+\1if (\4)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input arguments: Incompatible sizes.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_Dims.txt b/tools/api_scilab_trad/Tools_Check_Dims.txt
new file mode 100755
index 000000000..1fd5874c0
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_Dims.txt
@@ -0,0 +1,7 @@
+\1//CheckDims
+\1if (\3 != \5 || \4 != \6)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input argument #%d: %d-by-%d matrix expected.\n"), fname, \2, \5, \6);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_Length.txt b/tools/api_scilab_trad/Tools_Check_Length.txt
new file mode 100755
index 000000000..c6df8c2c9
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_Length.txt
@@ -0,0 +1,7 @@
+\1//CheckLength
+\1if (\3 != \4)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input argument #%d: %d expected.\n"), fname, \2, \3);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_OneDim.txt b/tools/api_scilab_trad/Tools_Check_OneDim.txt
new file mode 100755
index 000000000..6913196df
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_OneDim.txt
@@ -0,0 +1,7 @@
+\1//CheckOneDim
+\1if (\4 != \5)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input arguments: Incompatible sizes.\n"), fname);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_Row.txt b/tools/api_scilab_trad/Tools_Check_Row.txt
new file mode 100755
index 000000000..b9039ab50
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_Row.txt
@@ -0,0 +1,7 @@
+\1//CheckRow
+\1if (\3 != 1)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input argument #%d: A row vector expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_SameDims.txt b/tools/api_scilab_trad/Tools_Check_SameDims.txt
new file mode 100755
index 000000000..8a46e324d
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_SameDims.txt
@@ -0,0 +1,7 @@
+\1//CheckSameDims
+\1if (\4 != \6 || \5 != \7)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input argument #%d: %d-by-%d matrix expected.\n"), fname, \2, \4, \5);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_Scalar.txt b/tools/api_scilab_trad/Tools_Check_Scalar.txt
new file mode 100755
index 000000000..2920f836c
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_Scalar.txt
@@ -0,0 +1,7 @@
+\1//CheckScalar
+\1if (\3 != 1 || \4 != 1)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input argument #%d: A real scalar expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_Square.txt b/tools/api_scilab_trad/Tools_Check_Square.txt
new file mode 100755
index 000000000..bdba8bb76
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_Square.txt
@@ -0,0 +1,7 @@
+\1//CheckSquare
+\1if (\3 != \4)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input argument #%d: A square matrix expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/Tools_Check_Vector.txt b/tools/api_scilab_trad/Tools_Check_Vector.txt
new file mode 100755
index 000000000..f2dcb4199
--- /dev/null
+++ b/tools/api_scilab_trad/Tools_Check_Vector.txt
@@ -0,0 +1,7 @@
+\1//CheckVector
+\1if (\3 != 1 && \4 != 1)
+\1{
+\1 Scierror(999, _("%s: Wrong size for input argument #%d: Vector expected.\n"), fname, \2);
+\1 return 1;
+\1}
+
diff --git a/tools/api_scilab_trad/trad.sce b/tools/api_scilab_trad/trad.sce
new file mode 100755
index 000000000..ce4644230
--- /dev/null
+++ b/tools/api_scilab_trad/trad.sce
@@ -0,0 +1,702 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2012 - 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.1-en.txt
+
+//trad(inputFile) -> convert inputFile in place.
+//trad(inputFile, backupFile) -> convert inputFile in place and save exiting file in backupFile
+//if backupFile is empty [] or "" use inputFile with extention .old
+
+function status = trad(inputFile, backupFile)
+ if exists("backupFile") then
+ bBackup = %t;
+ if backupFile == [] | backupFile == "" then
+ [filePath, fileName, fileExt] = fileparts(inputFile);
+ backupFile = filePath + fileName + ".old";
+ end
+
+ [fd,err] = mopen(backupFile, "a");
+ if err <> 0 then
+ error(999, msprintf(gettext("%s: Unable to create backup file ""%s""\n"), "trad", backupFile));
+ end
+ mclose(fd);
+ else
+ bBachup = %f;
+ end
+ if ~isfile(inputFile) then
+ error(msprintf("file %s not find", inputFile));
+ end
+
+ printf("\nStarting convertion of ""%s""\n\n", inputFile);
+
+ if bBackup then
+ printf("Backup in ""%s""\n", backupFile);
+ copyfile(inputFile, backupFile);
+ end
+ inputFile = pathconvert(inputFile, %f);
+ //check if astyle exist on computer
+ cmd = "astyle --pad-header --suffix=none --pad-oper --indent-col1-comments --indent-switches --add-brackets --style=bsd --formatted ";
+ if getos() == "Windows" then
+ cmd = SCI + "/tools/astyle/" + cmd + inputFile;
+ else
+ cmd = cmd + inputFile;
+ end
+
+ host(cmd);
+ src = mgetl(inputFile);
+
+ result = src;
+ result = sed(result, "/CheckRhs\((.*), (.*)\)(.*)/", "CheckInputArgument(pvApiCtx, \1, \2)\3");
+ result = sed(result, "/CheckLhs\((.*), (.*)\)(.*)/", "CheckOutputArgument(pvApiCtx, \1, \2)\3");
+ result = sed(result, "/PutLhsVar\(\)(.*)/", "ReturnArguments(pvApiCtx)\1");
+
+
+ printf("Header operations");
+ //add api_scilab include
+ index = grep(result, "/#include [""<]api_scilab.h["">]/", "r");
+ if index == [] then
+ //try to replace #include "stack*.h" to #include "api_scilab.h"
+ result = sed(result, "/#include ""stack(.*).h""/", "#include ""api_scilab.h""");
+
+ //remove all #include "api_scilab.h" but one
+ index = grep(result, "/#include [""<]api_scilab.h["">]/", "r");
+ if size(index, "*") > 1 then
+ result(index(2:$)) = [];
+ end
+ end
+
+ //add localization header
+ index = grep(result, "/#include [""<]localization.h[""<]/", "r");
+ if index == [] then
+ index = grep(result, "/#include [""<]api_scilab.h["">]/", "r");
+ result = [result(1:index) ; "#include ""localization.h""" ; result((index+1):$)];
+ end
+
+ //add Scierror header
+ index = grep(result, "/#include [""<]Scierror.h[""<]/", "r");
+ if index == [] then
+ index = grep(result, "/#include [""<]api_scilab.h["">]/", "r");
+ result = [result(1:index) ; "#include ""Scierror.h""" ; result((index+1):$)];
+ end
+
+ printf(":\tOK\n");
+
+
+ //add SciErr sciErr declaration
+ index = grep(result, "SciErr sciErr;");
+ if index == [] then
+ //find gateway prototype and add declaration 2 lines lower
+ index = grep(result, "/int ([C2F\(]?.*[\)]?)\(([\s]*)char(.*), unsigned long (.*)\)/", "r");
+ if index <> [] then
+ for i = 1:size(index, "*")
+ result = [result(1 : (index(i) + 1)); " SciErr sciErr;"; result((index(i) + 2):$)];
+ end
+ else
+ error(999, msprintf(gettext("%s: unable to find gateway prototype in file %s"), "trad", inputFile));
+ end
+ end
+
+ //double
+ printf("Double operations");
+ result = GetDouble(result);
+ result = AllocDouble(result)
+ result = CreateDouble(result);
+ result = GetDoubleComplex(result);
+ result = AllocDoubleComplex(result)
+ result = CreateDoubleComplex(result);
+ printf(":\tOK\n");
+
+ //string
+ printf("String operations");
+ result = GetSingleString(result);
+ result = GetStringMatrix(result);
+ result = AllocSingleString(result);
+ result = CreateSingleString(result);
+ result = CreateStringMatrix(result);
+ printf(":\tOK\n");
+
+ //bool
+ printf("Boolean operations");
+ result = GetBoolMatrix(result);
+ result = AllocBoolMatrix(result);
+ result = CreateBoolMatrix(result);
+ printf(":\tOK\n");
+
+ //pointer
+ printf("Pointer operations");
+ result = GetPointer(result)
+ result = CreatePointer(result)
+ result = AllocPointer(result)
+ printf(":\tOK\n");
+
+ //handle
+ printf("Handle operations");
+ result = GetHandleMatrix(result)
+ result = CreateHandleMatrix(result)
+ result = AllocHandleMatrix(result)
+ printf(":\tOK\n");
+
+ //tools
+ printf("Tool operations");
+ result = replaceCheckScalar(result);
+ result = replaceCheckSquare(result);
+ result = replaceCheckVector(result);
+ result = replaceCheckRow(result);
+ result = replaceCheckColumn(result);
+ result = replaceCheckDims(result);
+ result = replaceCheckLength(result);
+ result = replaceCheckSameDims(result);
+ result = replaceCheckDimProp(result);
+ result = replaceCheckOneDim(result);
+ printf(":\tOK\n");
+
+ result = replaceVarType(result);
+ result = replaceGetType(result);
+
+ result = sed(result, "/LhsVar\((.*)\) = (.*);/", "AssignOutputVariable(pvApiCtx, \1) = \2;");
+ result = sed(result, "/ Rhs /", " nbInputArgument(pvApiCtx) ");
+ result = sed(result, "/\(Rhs([ ,])/", "(nbInputArgument(pvApiCtx)\1");
+ result = sed(result, "/ Lhs /", " nbOutputArgument(pvApiCtx) ");
+ result = sed(result, "/\(Lhs([ ,])/", "(nbOutputArgument(pvApiCtx)\1");
+
+
+ printf("Move declarations");
+
+ index = grep(result, "//@MOVE@");
+
+ dec = result(index);
+ dec = strsubst(dec, " //@MOVE@", "");
+ dec = ["";
+ "//WARNING ALL NEW DECALRATIONS ARE HERE IF YOUR HAVE MANY FUNCTIONS";
+ "//IN THE FILE YOU HAVE PROBABLY TO MOVE DECLARATIONS IN GOOD FUNCTIONS";
+ dec];
+ result(index) = [];
+
+ sciErrPos = grep(result, "SciErr sciErr;");
+ result = [result(1:sciErrPos) ; dec ; "" ; result(sciErrPos+1:$)];
+ printf("\nConvertion finished\n");
+ mputl(result, inputFile);
+
+ //call astyle again
+ host(cmd);
+
+ status = %t;
+endfunction
+
+
+function result = sed(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
+
+//double
+function result = GetDouble(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Double_Matrix_Get.txt");
+ findExp = "/([\s]*)GetRhsVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_DOUBLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDouble(str, findExp, replaceExp);
+
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Double_Matrix_GetAsInteger.txt");
+ findExp = "/([\s]*)GetRhsVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_INTEGER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDouble(result, findExp, replaceExp);
+endfunction
+
+function result = CreateDouble(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Double_Matrix_Create.txt");
+ findExp = "/([\s]*)CreateVarFromPtr\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_DOUBLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDouble(str, findExp, replaceExp);
+
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Double_Matrix_CreateAsInteger.txt");
+ findExp = "/([\s]*)CreateVarFromPtr\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_INTEGER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDouble(result, findExp, replaceExp);
+endfunction
+
+function result = AllocDouble(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Double_Matrix_Alloc.txt");
+ findExp = "/([\s]*)CreateVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_DOUBLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDouble(str, findExp, replaceExp);
+
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Double_Matrix_AllocAsInteger.txt");
+ findExp = "/([\s]*)CreateVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_INTEGER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDouble(result, findExp, replaceExp);
+endfunction
+
+function result = commonDouble(str, findExp, replaceExp)
+ result = str;
+ index = grep(result, findExp, "r");
+ while index <> []
+ i = index(1);
+ [start, end, match, captured] = regexp(result(i), findExp);
+ replace = replaceExp;
+
+ if size(captured, "c") >= 5 then
+ //try to replace (i)stk(\5*) by (\5*).
+ if captured(5) <> "" then
+ //hstk(\5*) -> (long long*)(\5*)
+ result = sed(result, "/hstk\(" + captured(5) + "(.*[^)]?)\)/", "(long long*)(" + captured(5) + "\1)");
+ result = sed(result, "/istk\(" + captured(5) + "(.*[^)]?)\)/", "(int*)(" + captured(5) + "\1)");
+ result = sed(result, "/[^(csz]?stk\(" + captured(5) + "(.*[^)]?)\)/", "(" + captured(5) + "\1)");
+ end
+ end
+
+ for j = 1:size(captured, "c")
+ replace = strsubst(replace, "\" + string(j), captured(j));
+ end
+
+ if size(replace, "*") > 1 then
+ result = [result(1:(i-1)); replace; result((i+1):$)];
+ else
+ result(i) = strsubst(str(i), match, replace);
+ end
+
+ index = grep(result, findExp, "r");
+end
+endfunction
+
+function result = GetDoubleComplex(str)
+ //MATRIX_OF_DOUBLE_DATATYPE
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/DoubleComplex_Matrix_Get.txt");
+ findExp = "/([\s]*)GetRhsCVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_DOUBLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDoubleComplex(str, findExp, replaceExp);
+
+ //MATRIX_OF_INTEGER_DATATYPE
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/DoubleComplex_Matrix_GetAsInteger.txt");
+ findExp = "/([\s]*)GetRhsCVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_INTEGER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDoubleComplex(result, findExp, replaceExp);
+endfunction
+
+function result = CreateDoubleComplex(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/DoubleComplex_Matrix_Create.txt");
+ findExp = "/([\s]*)CreateCVarFromPtr\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_DOUBLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDoubleComplex(str, findExp, replaceExp);
+
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/DoubleComplex_Matrix_CreateAsInteger.txt");
+ findExp = "/([\s]*)CreateCVarFromPtr\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_INTEGER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDoubleComplex(result, findExp, replaceExp);
+endfunction
+
+function result = AllocDoubleComplex(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/DoubleComplex_Matrix_Alloc.txt");
+ findExp = "/([\s]*)CreateCVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_DOUBLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDoubleComplex(str, findExp, replaceExp);
+
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/DoubleComplex_Matrix_AllocAsInteger.txt");
+ findExp = "/([\s]*)CreateCVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_INTEGER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonDoubleComplex(result, findExp, replaceExp);
+endfunction
+
+function result = commonDoubleComplex(str, findExp, replaceExp)
+ result = str;
+ index = grep(result, findExp, "r");
+ while index <> []
+ i = index(1);
+ [start, end, match, captured] = regexp(result(i), findExp);
+ replace = replaceExp;
+
+ if size(captured, "c") >= 6 then
+ //try to replace stk(\6*) by (\6*).
+ if captured(6) <> "" then
+ result = sed(result, "/hstk\(" + captured(5) + "(.*[^)]?)\)/", "(long long*)(" + captured(5) + "\1)");
+ result = sed(result, "/istk\(" + captured(5) + "(.*[^)]?)\)/", "(int*)(" + captured(5) + "\1)");
+ result = sed(result, "/[^(csz]?stk\(" + captured(5) + "(.*[^)]?)\)/", "(" + captured(5) + "\1)");
+ end
+ end
+
+ if size(captured, "c") >= 7 then
+ //try to replace stk(\7*) by (\7*).
+ if captured(7) <> "" then
+ result = sed(result, "/hstk\(" + captured(7) + "(.*[^)]?)\)/", "(long long*)(" + captured(7) + "\1)");
+ result = sed(result, "/istk\(" + captured(7) + "(.*[^)]?)\)/", "(int*)(" + captured(7) + "\1)");
+ result = sed(result, "/[^(csz]?stk\(" + captured(7) + "(.*[^)]?)\)/", "(" + captured(7) + "\1)");
+ end
+ end
+
+ for j = 1:size(captured, "c")
+ replace = strsubst(replace, "\" + string(j), captured(j));
+ end
+
+ if size(replace, "*") > 1 then
+ result = [result(1:(i-1)); replace; result((i+1):$)];
+ else
+ result(i) = strsubst(str(i), match, replace);
+ end
+
+ index = grep(result, findExp, "r");
+end
+endfunction
+
+
+//string
+function result = GetSingleString(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/String_Single_Get.txt");
+ findExp = "/([\s]*)GetRhsVar\([\s]*(.*)[\s]*,[\s]*STRING_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonString(str, findExp, replaceExp);
+endfunction
+
+function result = GetStringMatrix(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/String_Matrix_Get.txt");
+ findExp = "/([\s]*)GetRhsVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_STRING_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonString(str, findExp, replaceExp);
+endfunction
+
+function result = AllocSingleString(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/String_Single_Alloc.txt");
+ findExp = "/([\s]*)CreateVar\([\s]*(.*)[\s]*,[\s]*STRING_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonString(str, findExp, replaceExp);
+endfunction
+
+function result = CreateSingleString(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/String_Single_Create.txt");
+ findExp = "/([\s]*)CreateVarFromPtr\([\s]*(.*)[\s]*,[\s]*STRING_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonString(str, findExp, replaceExp);
+endfunction
+
+function result = CreateStringMatrix(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/String_Matrix_Create.txt");
+ findExp = "/([\s]*)CreateVarFromPtr\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_STRING_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonString(str, findExp, replaceExp);
+endfunction
+
+function result = commonString(str, findExp, ReplaceExp)
+ result = str;
+ index = grep(result, findExp, "r");
+ while index <> []
+ i = index(1);
+ [start, end, match, captured] = regexp(result(i), findExp);
+ replace = replaceExp;
+
+ if size(captured, "c") >= 5 then
+ //try to replace stk(\5*) by (\5*).
+ if captured(5) <> "" then
+ result = sed(result, "/cstk\(" + captured(5) + "(.*[^)]?)\)/", "(" + captured(5) + "\1)");
+ end
+ end
+
+ for j = 1:size(captured, "c")
+ replace = strsubst(replace, "\" + string(j), captured(j));
+ end
+
+ if size(replace, "*") > 1 then
+ result = [result(1:(i-1)); replace; result((i+1):$)];
+ else
+ result(i) = strsubst(str(i), match, replace);
+ end
+
+ index = grep(result, findExp, "r");
+end
+endfunction
+
+//////////////
+// bool //
+//////////////
+function result = GetBoolMatrix(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Bool_Matrix_Get.txt");
+ findExp = "/([\s]*)GetRhsVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_BOOLEAN_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonBool(str, findExp, replaceExp);
+endfunction
+
+function result = AllocBoolMatrix(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Bool_Matrix_Alloc.txt");
+ findExp = "/([\s]*)CreateVar\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_BOOLEAN_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonBool(str, findExp, replaceExp);
+endfunction
+
+function result = CreateBoolMatrix(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Bool_Matrix_Create.txt");
+ findExp = "/([\s]*)CreateVarFromPtr\([\s]*(.*)[\s]*,[\s]*MATRIX_OF_BOOLEAN_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonBool(str, findExp, replaceExp);
+endfunction
+
+function result = commonBool(str, findExp, ReplaceExp)
+ result = str;
+ index = grep(result, findExp, "r");
+ while index <> []
+ i = index(1);
+ [start, end, match, captured] = regexp(result(i), findExp);
+ replace = replaceExp;
+
+ if size(captured, "c") >= 5 then
+ //try to replace stk(\5*) by (\5*).
+ if captured(5) <> "" then
+ result = sed(result, "/istk\(" + captured(5) + "(.*[^)]?)\)/", "(" + captured(5) + "\1)");
+ end
+ end
+
+ for j = 1:size(captured, "c")
+ replace = strsubst(replace, "\" + string(j), captured(j));
+ end
+
+ if size(replace, "*") > 1 then
+ result = [result(1:(i-1)); replace; result((i+1):$)];
+ else
+ result(i) = strsubst(str(i), match, replace);
+ end
+
+ index = grep(result, findExp, "r");
+end
+endfunction
+
+/////////////////
+// pointer //
+/////////////////
+function result = GetPointer(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Pointer_Get.txt");
+ findExp = "/([\s]*)GetRhsVar\([\s]*(.*)[\s]*,[\s]*SCILAB_POINTER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonPointer(str, findExp, replaceExp);
+endfunction
+
+function result = CreatePointer(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Pointer_Create.txt");
+ findExp = "/([\s]*)CreateVarFromPtr\([\s]*(.*)[\s]*,[\s]*SCILAB_POINTER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*([\S]*)[\s]*\);(.*)/";
+
+ result = commonPointer(str, findExp, replaceExp);
+endfunction
+
+function result = AllocPointer(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Pointer_Alloc.txt");
+ findExp = "/([\s]*)CreateVar\([\s]*(.*)[\s]*,[\s]*SCILAB_POINTER_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonPointer(str, findExp, replaceExp);
+endfunction
+
+function result = commonPointer(str, findExp, ReplaceExp)
+ result = str;
+ index = grep(result, findExp, "r");
+ while index <> []
+ i = index(1);
+ [start, end, match, captured] = regexp(result(i), findExp);
+ replace = replaceExp;
+
+ if size(captured, "c") >= 5 then
+ //try to replace stk(\5*) by (\5*).
+ if captured(5) <> "" then
+ result = sed(result, "/[^(cisz]?stk\(" + captured(5) + "(.*[^)]?)\)/", "(" + captured(5) + "\1)");
+ end
+ end
+
+ for j = 1:size(captured, "c")
+ replace = strsubst(replace, "\" + string(j), captured(j));
+ end
+
+ if size(replace, "*") > 1 then
+ result = [result(1:(i-1)); replace; result((i+1):$)];
+ else
+ result(i) = strsubst(str(i), match, replace);
+ end
+
+ index = grep(result, findExp, "r");
+end
+endfunction
+
+////////////////
+// handle //
+////////////////
+function result = GetHandleMatrix(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Handle_Matrix_Get.txt");
+ findExp = "/([\s]*)GetRhsVar\([\s]*(.*)[\s]*,[\s]*GRAPHICAL_HANDLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonHandle(str, findExp, replaceExp);
+endfunction
+
+function result = CreateHandleMatrix(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Handle_Matrix_Create.txt");
+ findExp = "/([\s]*)CreateVarFromPtr\([\s]*(.*)[\s]*,[\s]*GRAPHICAL_HANDLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*([\S]*)[\s]*\);(.*)/";
+
+ result = commonHandle(str, findExp, replaceExp);
+endfunction
+
+function result = AllocHandleMatrix(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Handle_Matrix_Alloc.txt");
+ findExp = "/([\s]*)CreateVar\([\s]*(.*)[\s]*,[\s]*GRAPHICAL_HANDLE_DATATYPE[\s]*,[\s]*&(.*)[\s]*,[\s]*&(.*)[\s]*,[\s]*&([\S]*)[\s]*\);(.*)/";
+
+ result = commonHandle(str, findExp, replaceExp);
+endfunction
+
+function result = commonHandle(str, findExp, ReplaceExp)
+ result = str;
+ index = grep(result, findExp, "r");
+ while index <> []
+ i = index(1);
+ [start, end, match, captured] = regexp(result(i), findExp);
+ replace = replaceExp;
+
+ if size(captured, "c") >= 5 then
+ //try to replace stk(\5*) by (\5*).
+ if captured(5) <> "" then
+ result = sed(result, "/[h]?stk\(" + captured(5) + "(.*[^)]?)\)/", "(" + captured(5) + "\1)");
+ end
+ end
+
+ for j = 1:size(captured, "c")
+ replace = strsubst(replace, "\" + string(j), captured(j));
+ end
+
+ if size(replace, "*") > 1 then
+ result = [result(1:(i-1)); replace; result((i+1):$)];
+ else
+ result(i) = strsubst(str(i), match, replace);
+ end
+
+ index = grep(result, findExp, "r");
+end
+endfunction
+
+///////////////
+// tools //
+///////////////
+function result = replaceCheckScalar(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_Scalar.txt");
+ findExp = "/([\s]*)CheckScalar\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckSquare(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_Square.txt");
+ findExp = "/([\s]*)CheckSquare\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckVector(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_Vector.txt");
+ findExp = "/([\s]*)CheckVector\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckRow(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_Row.txt");
+ findExp = "/([\s]*)CheckRow\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckColumn(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_Column.txt");
+ findExp = "/([\s]*)CheckColumn\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckDims(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_Dims.txt");
+ findExp = "/([\s]*)CheckDims\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckLength(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_Length.txt");
+ findExp = "/([\s]*)CheckLength\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckSameDims(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_SameDims.txt");
+ findExp = "/([\s]*)CheckSameDims\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckDimProp(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_DimProp.txt");
+ findExp = "/([\s]*)CheckDimProp\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceCheckOneDim(str)
+ replaceExp = mgetl("SCI/tools/api_scilab_trad/Tools_Check_OneDim.txt");
+ findExp = "/([\s]*)CheckOneDim\([\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)[\s]*,[\s]*(.*)\);/";
+
+ result = sed(str, findExp, replaceExp);
+endfunction
+
+function result = replaceVarType(str)
+ result = str
+
+ //three cases
+ //first
+ //VarType(x) == sci_xx
+ result = sed(result, "/[\s]*VarType\([\s]*(.*)[\s]*\)[\s]*==[\s]*([^);]*)[\s]*/", "(checkInputArgumentType(pvApiCtx, \1, \2))");
+ //second
+ //VarType(x) != sci_xx
+ result = sed(result, "/[\s]*VarType\([\s]*(.*)[\s]*\)[\s]*!=[\s]*([^);]*)[\s]*/", "(!checkInputArgumentType(pvApiCtx, \1, \2))");
+ //third
+ //VarType(x)
+ result = sed(result, "/VarType\([\s]*(.*)[\s]*\)/", "getInputArgumentType(pvApiCtx, \1)");
+endfunction
+
+function result = replaceGetType(str)
+ result = str
+ //three cases
+ //first
+ //GetType(x) == sci_xx
+ result = sed(result, "/[\s]*GetType\([\s]*(.*)[\s]*\)[\s]*==[\s]*([^);]*)[\s^)]*/", "checkInputArgumentType(pvApiCtx, \1, \2)");
+ //second
+ //GetType(x) != sci_xx
+ result = sed(result, "/[\s]*GetType\([\s]*(.*)[\s]*\)[\s]*!=[\s]*([^);]*)[\s^)]*/", "(!checkInputArgumentType(pvApiCtx, \1, \2))");
+ //third
+ //GetType(x)
+ result = sed(result, "/GetType\((.*)\)/", "getInputArgumentType(pvApiCtx, \1)");
+endfunction
+
+
diff --git a/tools/innosetup/Create_ISS.sce b/tools/innosetup/Create_ISS.sce
new file mode 100755
index 000000000..3704b6e7a
--- /dev/null
+++ b/tools/innosetup/Create_ISS.sce
@@ -0,0 +1,280 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2010-2012 - Allan CORNET
+//
+// 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.1-en.txt
+//
+//-------------------------------------------------------------------------------
+// Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+//
+//------------------------------------------------------------------------------
+// generates Scilab.iss for scilab 5.x in SCI directory
+//------------------------------------------------------------------------------
+function bOK = without_jre()
+ bOK = %f;
+ if ( isdef("ISS_WITHOUT_JRE") & isglobal(ISS_WITHOUT_JRE) ) then
+ global ISS_WITHOUT_JRE;
+ bOK = ISS_WITHOUT_JRE;
+ else
+ bOK = %f;
+ end
+endfunction
+//------------------------------------------------------------------------------
+function [StrFlux, retour] = FindAndReplace(StrFlux, StrFind, StrReplace)
+ row = grep(StrFlux, StrFind);
+ if (row == []) then
+ printf("\n%s don""t find\n", StrFind);
+ retour = %F;
+ else
+ DimRow = size(row);
+ if DimRow(2) > 1 then // Take just first occurence
+ StrFlux(row(1)) = StrReplace;
+ else
+ StrFlux(row) = StrReplace;
+ end
+ printf(".");
+ retour=%T;
+ end
+endfunction
+//------------------------------------------------------------------------------
+function s = getTestsSize()
+ modules = getmodules();
+ total = 0;
+ for i=1:size(modules,"*")
+ files_nonregs = SCI + "/modules/" + modules(i) + "/tests/nonreg_tests/" + findfiles(SCI + "/modules/" + modules(i) + "/tests/nonreg_tests","*.*");
+ files_unit = SCI + "/modules/" + modules(i) + "/tests/unit_tests" + findfiles(SCI + "/modules/" + modules(i) + "/tests/unit_tests","*.*");
+ files_module = [files_nonregs;files_unit];
+ files_nonregs = [];
+ files_unit = [];
+ for j = 1:size(files_module, "*")
+ info = fileinfo(files_module(j));
+ total = total + info(1);
+ end
+ end
+ s = total / 10;
+endfunction
+//------------------------------------------------------------------------------
+function ret = Update_Script_Innosetup(ISSFilenameSource)
+
+ printf("Please Waiting ...\n");
+ printf("Loading %s\n", ISSFilenameSource);
+ SciFile = mgetl(ISSFilenameSource);
+ printf("Creating %s ", WSCI + "\" + ISSFilenameSource);
+
+ scilab_version = getversion("scilab");
+ scilab_version_vstr = getversion();
+
+ [SciFile, err] = FindAndReplace(SciFile, "#define TESTS_SIZE", "#define TESTS_SIZE " + sprintf("%20d",getTestsSize()));
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ [SciFile, err] = FindAndReplace(SciFile, "#define BinariesSourcePath", "#define BinariesSourcePath """ + WSCI + """");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ if win64() then
+ [SciFile, err] = FindAndReplace(SciFile, "#define ScilabBaseFilename", "#define ScilabBaseFilename """+ scilab_version_vstr + "_x64""");
+ else
+ [SciFile, err] = FindAndReplace(SciFile, "#define ScilabBaseFilename", "#define ScilabBaseFilename """+ scilab_version_vstr + """");
+ end
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ [SciFile, err] = FindAndReplace(SciFile, "#define ScilabBaseDirectory", "#define ScilabBaseDirectory """+ scilab_version_vstr + """");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ if win64() then
+ [SciFile, err] = FindAndReplace(SciFile, "#define ScilabName", "#define ScilabName """ + scilab_version_vstr + " (64-bit)""");
+ else
+ [SciFile, err] = FindAndReplace(SciFile,"#define ScilabName","#define ScilabName """+ scilab_version_vstr +"""");
+ end
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ if (scilab_version(3) == 0) then
+ HTTP_MKL = "http://fileexchange.scilab.org/toolboxes/MKL/" + string(scilab_version(1)) + "." + string(scilab_version(2)) + "/files";
+ else
+ HTTP_MKL = "http://fileexchange.scilab.org/toolboxes/MKL/" + string(scilab_version(1)) + "." + string(scilab_version(2)) + "." + string(scilab_version(3)) + "/files";
+ end
+
+ [SciFile,err] = FindAndReplace(SciFile,"#define MKL_DOWNLOAD_HTTP ", "#define MKL_DOWNLOAD_HTTP """ + HTTP_MKL + """");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ currentVersion = sprintf("%d.%d.%d",scilab_version(1),scilab_version(2),scilab_version(3));
+
+ [SciFile,err] = FindAndReplace(SciFile,"#define ScilabVersion ","#define ScilabVersion """+ currentVersion +"""");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ CurrentDate = getdate();
+
+ [SciFile,err] = FindAndReplace(SciFile,"#define CurrentYear ","#define CurrentYear """+string(CurrentDate(1))+"""");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ jre_verstr = system_getproperty("java.specification.version");
+
+ [SciFile,err] = FindAndReplace(SciFile,"#define javaSpecificationVersion ","#define javaSpecificationVersion """+jre_verstr+"""");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ jre_used = system_getproperty("java.version");
+
+ [SciFile,err] = FindAndReplace(SciFile,"#define javaUsed ","#define javaUsed """+jre_used+"""");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ if with_module("scicos") then
+ if with_modelica_compiler() then
+ [SciFile,err] = FindAndReplace(SciFile,";#define WITH_MODELICAC","#define WITH_MODELICAC");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+ end
+ end
+
+ if win64() then
+ [SciFile,err] = FindAndReplace(SciFile,";#define SCILAB_X64","#define SCILAB_X64");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+ end
+
+ if without_jre() then
+ [SciFile,err] = FindAndReplace(SciFile,";#define SCILAB_WITHOUT_JRE","#define SCILAB_WITHOUT_JRE");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+ end
+
+ [info_dyn, info_stat] = getdebuginfo();
+ if grep(info_stat, "F2C") <> [] then
+ [SciFile,err] = FindAndReplace(SciFile,";#define SCILAB_F2C","#define SCILAB_F2C");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+ end
+
+ if (scilab_version(3) == 0) then
+ ver_str = string(scilab_version(1)) + "." + string(scilab_version(2));
+ else
+ ver_str = string(scilab_version(1)) + "." + string(scilab_version(2)) + "." + string(scilab_version(3));
+ end
+
+ if win64() then
+ arch_str = "win64";
+ else
+ arch_str = "win32";
+ end
+
+ MKL_BLASLAPACK_NAME = "blas-lapack-mkl-" + ver_str + "-" + arch_str + ".zip";
+ MKL_COMMONS_NAME = "commons-mkl-" + ver_str + "-" + arch_str + ".zip";
+ MKL_FFTW_NAME = "fftw-mkl-" + ver_str + "-" + arch_str + ".zip";
+
+ [SciFile,err] = FindAndReplace(SciFile,"#define MKL_BLASLAPACK_PACKAGENAME","#define MKL_BLASLAPACK_PACKAGENAME ''" + MKL_BLASLAPACK_NAME + "''");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ [SciFile,err] = FindAndReplace(SciFile,"#define MKL_COMMONS_PACKAGENAME","#define MKL_COMMONS_PACKAGENAME ''" + MKL_COMMONS_NAME + "''");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ [SciFile,err] = FindAndReplace(SciFile,"#define MKL_FFTW_PACKAGENAME","#define MKL_FFTW_PACKAGENAME ''" + MKL_FFTW_NAME + "''");
+ if err == %F then
+ ret = err;
+ return;
+ end;
+
+ if isdir(SCI + "/.atoms") <> %F then
+ err = generateAdditionnalIss();
+ if err == %F then
+ ret = err;
+ return;
+ end;
+ end
+
+
+ mdelete(WSCI+"\"+ISSFilenameSource);
+ printf("\nSaving %s\n",WSCI+"\"+ISSFilenameSource);
+ ret = mputl(SciFile,WSCI+"\"+ISSFilenameSource);
+endfunction
+//------------------------------------------------------------------------------
+function bOK = generateAdditionnalIss()
+ bOK = %f;
+ ATOMS_DIR = fullpath(SCI + "/contrib");
+ dir_list = ls(ATOMS_DIR);
+ dir_list = fullpath(ATOMS_DIR + filesep() + dir_list);
+ dir_list = dir_list(isdir(dir_list) == %t);
+
+ // remove default modules
+ list_default_ATOMS = ["xcos_toolbox_skeleton", "toolbox_skeleton"];
+ dir_list(grep(dir_list, list_default_ATOMS)) = [];
+ if dir_list <> [] then
+ name_list = basename(dir_list);
+ ISS = "Source: contrib\" + name_list +"\*.*; DestDir: {app}\contrib\" + name_list + "; Flags: recursesubdirs; Components: {#COMPN_SCILAB}";
+ ISS = [ISS; "Source: .atoms\*.*; DestDir: {app}\.atoms; Flags: recursesubdirs; Components: {#COMPN_SCILAB}"];
+ else
+ ISS = "";
+ end
+ bOK = mputl(ISS, fullpath(SCI + "\contrib\external_modules.iss"));
+endfunction
+//------------------------------------------------------------------------------
+// Main
+[units,typs,nams] = file();
+path = fileparts(string(nams(1)),"path");
+filename = fileparts(string(nams(1)),"fname");
+extension = fileparts(string(nams(1)),"extension");
+
+fileAndExt = filename+extension;
+
+if or(fileAndExt == ["Create_ISS.sce","Create_ISS_nojre.sce"]) then
+ SaveCurrentPath=pwd();
+ if ~(SaveCurrentPath == path) then
+ chdir(path);
+ end
+
+ if ~(Update_Script_Innosetup("Scilab.iss") == %T ) then
+ printf("\nScript aborted.\n");
+ end
+ chdir(SaveCurrentPath);
+
+else
+ printf("Error: name of this file isn""t ""Create_ISS.sce"" but %s\n",(filename+extension));
+ printf("Please rename this file\n");
+end
+exit
+//------------------------------------------------------------------------------
diff --git a/tools/innosetup/Create_ISS_nojre.sce b/tools/innosetup/Create_ISS_nojre.sce
new file mode 100755
index 000000000..a644113e5
--- /dev/null
+++ b/tools/innosetup/Create_ISS_nojre.sce
@@ -0,0 +1,10 @@
+//------------------------------------------------------------------------------------
+// Allan CORNET
+// DIGITE 2008 - 2010
+// generates .iss for scilab 5.x (no jre)
+//------------------------------------------------------------------------------------
+global ISS_WITHOUT_JRE;
+curpathsce = get_absolute_file_path("Create_ISS_nojre.sce");
+ISS_WITHOUT_JRE = %t;
+exec(curpathsce + "Create_ISS.sce");
+//------------------------------------------------------------------------------------
diff --git a/tools/innosetup/Scilab.iss b/tools/innosetup/Scilab.iss
new file mode 100755
index 000000000..ba6d8fb66
--- /dev/null
+++ b/tools/innosetup/Scilab.iss
@@ -0,0 +1,87 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010-2012 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+#define BinariesSourcePath "D:\GIT-scilab-master\scilab\scilab"
+#define ScilabBaseFilename "scilab-master"
+#define ScilabBaseDirectory "scilab-master"
+#define ScilabName "scilab-master"
+#define ScilabVersion "5.4.0"
+#define CurrentYear "2011"
+#define javaSpecificationVersion "1.6"
+#define javaUsed "1.6.0_XX"
+#define TESTS_SIZE 14364741
+;#define WITH_MODELICAC
+;#define SCILAB_X64
+;#define SCILAB_WITHOUT_JRE
+;#define SCILAB_F2C
+;-------------------------------------------------------------------------------
+#define MODULES_LIST_WEB_PAGE 'http://wiki.scilab.org/howto/install/windows'
+#define MKL_DOWNLOAD_HTTP 'http://fileexchange.scilab.org/toolboxes/MKL'
+#define MKL_BLASLAPACK_PACKAGENAME 'blas-lapack-mkl-5.4-win32.zip'
+#define MKL_COMMONS_PACKAGENAME 'commons-mkl-5.4-win32.zip'
+#define MKL_FFTW_PACKAGENAME 'fftw-mkl-5.4-win32.zip'
+;-------------------------------------------------------------------------------
+[CustomMessages]
+#include BinariesSourcePath + "\tools\innosetup\custommessages.iss"
+;-------------------------------------------------------------------------------
+[Setup]
+#include BinariesSourcePath + "\tools\innosetup\setup.iss"
+;-------------------------------------------------------------------------------
+[Languages]
+#include BinariesSourcePath + "\tools\innosetup\languages.iss"
+;-------------------------------------------------------------------------------
+[Types]
+#include BinariesSourcePath + "\tools\innosetup\types.iss"
+;-------------------------------------------------------------------------------
+[Components]
+#include BinariesSourcePath + "\tools\innosetup\components.iss"
+;
+;-------------------------------------------------------------------------------
+[Files]
+#include BinariesSourcePath + "\tools\innosetup\files.iss"
+;
+;-------------------------------------------------------------------------------
+[Icons]
+#include BinariesSourcePath + "\tools\innosetup\icons.iss"
+;-------------------------------------------------------------------------------
+[INI]
+#include BinariesSourcePath + "\tools\innosetup\ini.iss"
+;-------------------------------------------------------------------------------
+[Tasks]
+#include BinariesSourcePath + "\tools\innosetup\tasks.iss"
+;-------------------------------------------------------------------------------
+[Registry]
+#include BinariesSourcePath + "\tools\innosetup\registry.iss"
+;-------------------------------------------------------------------------------
+[Code]
+#include BinariesSourcePath + "\tools\innosetup\code_unzip.iss"
+#include BinariesSourcePath + "\tools\innosetup\code_download.iss"
+#include BinariesSourcePath + "\tools\innosetup\code_modules.iss"
+#include BinariesSourcePath + "\tools\innosetup\code_offline_installation.iss"
+#include BinariesSourcePath + "\tools\innosetup\code.iss"
+[Run]
+;-------------------------------------------------------------------------------
+#include BinariesSourcePath + "\tools\innosetup\run.iss"
+;-------------------------------------------------------------------------------
+[UninstallDelete]
+#include BinariesSourcePath + "\tools\innosetup\uninstalldelete.iss"
+;-------------------------------------------------------------------------------
+[_ISTool]
+#ifndef SCILAB_WITHOUT_JRE
+OutputExeFilename=D:\Scilab\Output\{#ScilabBaseFilename}.exe
+#else
+OutputExeFilename=D:\Scilab\Output\{#ScilabBaseFilename}-nojre.exe
+#endif
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/atlas.iss b/tools/innosetup/atlas.iss
new file mode 100755
index 000000000..7a4d03c95
--- /dev/null
+++ b/tools/innosetup/atlas.iss
@@ -0,0 +1,24 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+; Atlas setup
+;-------------------------------------------------------------------------------
+;
+; Librairie Atlas 3.8.0
+Source: bin\atlas\*.dll; DestDir: {app}\bin\atlas; Components: {#COMPN_ATLAS_CPU_LIBRARY}
+Source: bin\Atlas.spec; DestDir: {app}\bin; Components: {#COMPN_ATLAS_CPU_LIBRARY}
+Source: bin\SetupAtlas.exe; DestDir: {app}\bin; Components: {#COMPN_ATLAS_CPU_LIBRARY}
+;
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/base.iss b/tools/innosetup/base.iss
new file mode 100755
index 000000000..65b958908
--- /dev/null
+++ b/tools/innosetup/base.iss
@@ -0,0 +1,73 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010-2011 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+; default files embedded with scilab
+;-------------------------------------------------------------------------------
+;
+Source: tools\zip\unzip.exe; Flags: dontcopy
+Source: tools\innosetup\isxdl.dll; DestDir: {tmp}; Flags: dontcopy
+
+;
+; etc directory
+Source: etc\scilab.start; DestDir: {app}\etc; Components: {#COMPN_SCILAB}
+;
+Source: etc\scilab.quit; DestDir: {app}\etc; Components: {#COMPN_SCILAB}
+;
+Source: etc\logging.properties; DestDir: {app}\etc; Components: {#COMPN_SCILAB}
+;
+; root directory
+Source: RELEASE_NOTES*.*; DestDir: {app}; Components: {#COMPN_SCILAB}
+;
+Source: CHANGES*.*; DestDir: {app}; Components: {#COMPN_SCILAB}
+;Source: licence.txt; DestDir: {app}; Components: {#COMPN_SCILAB}
+;Source: license.txt; DestDir: {app}; Components: {#COMPN_SCILAB}
+Source: COPYING; DestDir: {app}; Components: {#COMPN_SCILAB}
+Source: COPYING-FR; DestDir: {app}; Components: {#COMPN_SCILAB}
+Source: COPYING-BSD; DestDir: {app}; Components: {#COMPN_SCILAB}
+;
+Source: Readme_Visual.txt; DestDir: {app}; Components: {#COMPN_SCILAB}
+Source: README_Windows.txt; DestDir: {app}; Components: {#COMPN_SCILAB}
+Source: ACKNOWLEDGEMENTS; DestDir: {app}; Components: {#COMPN_SCILAB}
+Source: Version.incl; DestDir: {app}; Components: {#COMPN_SCILAB}
+;
+; bin directory
+#include BinariesSourcePath + "\bin\bin.iss"
+;
+; contrib directory
+Source: contrib\loader.sce; DestDir: {app}\contrib; Components: {#COMPN_SCILAB}
+;
+; locale directory
+Source: locale\en_US\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\en_US\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\fr_FR\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\fr_FR\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\zh_TW\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\zh_TW\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\zh_CN\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\zh_CN\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\ru_RU\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\ru_RU\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\de_DE\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\de_DE\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\ca_ES\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\ca_ES\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\es_ES\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\es_ES\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\pt_BR\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\pt_BR\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\ja_JP\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\ja_JP\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\it_IT\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\it_IT\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\uk_UA\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\uk_UA\LC_MESSAGES; Components: {#COMPN_SCILAB}
+Source: locale\pl_PL\LC_MESSAGES\scilab.mo ; DestDir: {app}\locale\pl_PL\LC_MESSAGES; Components: {#COMPN_SCILAB}
+;
+; libs directory
+#include BinariesSourcePath + "\libs\libs.iss"
+; java directory
+#ifndef SCILAB_WITHOUT_JRE
+Source: java\JRE\*.*; DestDir: {app}\java\JRE; Flags: recursesubdirs; Components: {#COMPN_JRE}
+#endif
+;
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/ca_ES_scilab.isl b/tools/innosetup/ca_ES_scilab.isl
new file mode 100755
index 000000000..01672f067
--- /dev/null
+++ b/tools/innosetup/ca_ES_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+ca_ES.LANGUAGE =ca_ES
+
+ca_ES.MsgBoxJRENotFound =Java Runtime Environment not detected.
+ca_ES.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+ca_ES.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+ca_ES.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+ca_ES.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+ca_ES.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+ca_ES.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+ca_ES.MsgBoxWebOpen =Can not open web page.
+ca_ES.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+ca_ES.MsgBoxDevToolsRequired2 =Please install development_tools module.
+ca_ES.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+ca_ES.MsgBoxTclsciRequired2 =Please install tclsci module.
+ca_ES.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+ca_ES.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+ca_ES.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+ca_ES.MsgBoxFftw4 =Can not open web page.
+ca_ES.MsgBoxWinVer =Windows 2000 is required.
+ca_ES.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+ca_ES.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+ca_ES.ButtonAboutModules =&About modules ...
+;
+ca_ES.DescriptionEquDif =Differential Equations Module
+ca_ES.DescriptionInterpolation =Interpolation Module
+ca_ES.DescriptionPolynomials =Polynomials Module
+ca_ES.DescriptionSymbolic =Symbolic Module
+ca_ES.DescriptionStats =Statistics Module
+ca_ES.DescriptionSparse =Sparse Matrix Module
+ca_ES.DescriptionLinAlg =Linear Algebra Module
+ca_ES.DescriptionSigProc =Signal processing Module
+ca_ES.DescriptionCacsd =C.A.C.S.D Module
+ca_ES.DescriptionGraphics =Graphics Module
+ca_ES.DescriptionOptim =Optimization Module
+ca_ES.DescriptionMetanet =Metanet Toolbox
+ca_ES.DescriptionScicos =Scicos Toolbox
+ca_ES.DescriptionArnoldi =ARnoldi PACKage Toolbox
+ca_ES.DescriptionUmfpack =UMFPACK for Scilab
+ca_ES.DescriptionCompatFunctions =Compatibility functions
+ca_ES.DescriptionM2sci =M2SCI Toolbox
+ca_ES.DescriptionMatio =MAT File Input/Output Toolbox
+ca_ES.DescriptionExternalObjects =External objects
+ca_ES.DescriptionSound =Sound file handling Toolbox
+ca_ES.DescriptionRandlib =Randlib Toolbox
+ca_ES.DescriptionMexlib =Mexlib Tools
+ca_ES.DescriptionIntersci =Intersci Toolbox
+ca_ES.DescriptionTclTK =TCL/TK in Scilab
+ca_ES.DescriptionSpreadsheet =Spreadsheet Toolbox
+ca_ES.DescriptionJVM =Java Runtime
+ca_ES.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+ca_ES.DescriptionFftwModule =FFTW interface for Scilab
+ca_ES.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+ca_ES.DescriptionRefFftwLibrary =Reference FFTW library
+ca_ES.DescriptionParametersTlbx =Parameters Toolbox
+ca_ES.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+ca_ES.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+ca_ES.DescriptionDevTools =Development Tools
+ca_ES.DescriptionTests =Tests for Scilab
+ca_ES.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+ca_ES.DescriptionComConnector =COM connector
+ca_ES.DescriptionSciNotes =SciNotes: Editor for Scilab
+ca_ES.DescriptionXcos =Xcos
+ca_ES.DescriptionParallel =Parallel Computing with Scilab
+ca_ES.DescriptionModulesManager =Tools for management of extern modules
+ca_ES.DescriptionModuleJVM =JVM Module
+;
+ca_ES.ConsoleIconName =Scilab Console
+;
+ca_ES.WebIconScilab =Scilab on the Web
+;
+ca_ES.ReadMeIcon =Read Me
+;
+ca_ES.UnInstallIcon =Uninstall Scilab
+;
+ca_ES.RegKeyRunWith =Run with
+;
+ca_ES.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+ca_ES.DescriptionConfigureAtlas =Configure Atlas
+;
+ca_ES.DescriptionLaunchScilab =Launch Scilab
+;
+ca_ES.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+ca_ES.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+ca_ES.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+ca_ES.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+ca_ES.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+ca_ES.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+ca_ES.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+ca_ES.DescriptionDefaultInstall =Installation (Default)
+ca_ES.DescriptionFullInstall =Full installation
+ca_ES.DescriptionCustomInstall =Custom installation
+ca_ES.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+ca_ES.DescriptionCPUOptimization =CPU Optimization for Scilab
+ca_ES.DescriptionATLASLibrary =Atlas Library for Scilab
+ca_ES.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+ca_ES.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+ca_ES.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+ca_ES.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+ca_ES.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+ca_ES.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+ca_ES.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+ca_ES.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+ca_ES.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+ca_ES.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+; \ No newline at end of file
diff --git a/tools/innosetup/code.iss b/tools/innosetup/code.iss
new file mode 100755
index 000000000..1b98cce53
--- /dev/null
+++ b/tools/innosetup/code.iss
@@ -0,0 +1,363 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2010-2012 - Allan CORNET
+//
+// 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.1-en.txt
+//
+//------------------------------------------------------------------------------
+// Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+//
+//------------------------------------------------------------------------------
+
+function IsProcessorFeaturePresent(ProcessorFeature: DWORD): Boolean;
+external 'IsProcessorFeaturePresent@kernel32.dll stdcall';
+
+function GetModuleHandle(lpModuleName: LongInt): LongInt;
+external 'GetModuleHandleA@kernel32.dll stdcall';
+
+var
+ AboutModulesButton: TButton;
+ OriginalOnTypesComboChange: TNotifyEvent;
+
+//------------------------------------------------------------------------------
+function isCLIType(): Boolean;
+ begin
+ Result := true;
+ if (IsComponentSelected( ExpandConstant('{#COMPN_JVM_MODULE}'))) then
+ begin
+ Result := false;
+ end;
+ end;
+//------------------------------------------------------------------------------
+function getExecNameForDesktop(Param: String): String;
+ begin
+ if (isCLIType() = true) then
+ begin
+ Result := ExpandConstant('{app}') + '\bin\scilex.exe';
+ end
+ else
+ begin
+ Result := ExpandConstant('{app}') + '\bin\wscilex.exe';
+ end;
+ end;
+//------------------------------------------------------------------------------
+function DoTaskInstall_MKL: Boolean;
+ begin
+ Result := true;
+ if (IsComponentSelected( ExpandConstant('{#COMPN_MKL_CPU_LIBRARY}') ) = true) then
+ begin
+ Result := Install_commons_MKL();
+ if (Result = true) then
+ begin
+ Result := Install_MKL();
+ end
+ end;
+ end;
+//------------------------------------------------------------------------------
+function DoTaskInstall_MKL_FFTW: Boolean;
+ begin
+ Result := true;
+ if (IsComponentSelected( ExpandConstant('{#COMPN_FFTW_MKL_LIBRARY}') ) = true) then
+ begin
+ Result := Install_MKL_FFTW();
+ end;
+ end;
+//------------------------------------------------------------------------------
+function DoTasksJustAfterInstall: Boolean;
+ begin
+ Result := true;
+ Result := CreateModulesFile();
+ Result := DoTaskInstall_MKL();
+ Result := DoTaskInstall_MKL_FFTW();
+ end;
+//------------------------------------------------------------------------------
+function GetJREVersion(): String;
+begin
+ Result := '';
+
+ if Is64BitInstallMode() or not IsWin64() then
+ begin
+ //64 bits installation or 32 bits OS -> same registry path
+ RegQueryStringValue( HKLM, 'SOFTWARE\JavaSoft\Java Runtime Environment', 'CurrentVersion', Result );
+ end else begin
+ // Scilab 32 bits sur Windows 64 bits
+ RegQueryStringValue( HKLM, 'SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment', 'CurrentVersion', Result );
+ end
+end;
+//------------------------------------------------------------------------------
+ function CheckJREVersion(): Boolean;
+ var
+ jreVersion: String;
+ minJREVersionRegistry: String;
+ begin
+ //
+ // Initialize min java version constant
+ //
+ minJREVersionRegistry := ExpandConstant('{#javaSpecificationVersion}');
+ //
+ // now we check the version of the installed JRE
+ //
+ jreVersion := GetJREVersion();
+ if ( jreVersion = '' ) then begin
+ Result := false;
+ end else if ( jreVersion < minJREVersionRegistry ) then begin
+ Result := false;
+ end else begin
+ Result := true;
+ end;
+ end;
+//------------------------------------------------------------------------------
+ function VerifyJREVersion() : Boolean;
+ var
+ bJREVersion: Boolean;
+ begin
+ bJREVersion := CheckJREVersion();
+
+ if ( bJREVersion <> true ) then begin
+ SuppressibleMsgBox( CustomMessage('MsgBoxJavaDetection1') + #13 +
+ CustomMessage('MsgBoxJavaDetection2') + ExpandConstant('{#javaSpecificationVersion}') + '.',
+ mbError, MB_OK, MB_OK );
+ end;
+
+ Result := bJREVersion;
+ end;
+//------------------------------------------------------------------------------
+procedure ButtonAboutModulesOnClick(Sender: TObject);
+var
+ ErrorCode: Integer;
+
+begin
+ if not ShellExec('', ExpandConstant('{#MODULES_LIST_WEB_PAGE}'),
+ '', '', SW_SHOW, ewNoWait, ErrorCode) then
+ begin
+ // handle failure if necessary
+ SuppressibleMsgBox( CustomMessage('MsgBoxWebOpen'),mbError, MB_OK, MB_OK );
+ end;
+end;
+//------------------------------------------------------------------------------
+ function BackButtonClick(CurPageID: Integer): Boolean;
+ begin
+ Result := true;
+ if (CurPageId = wpSelectProgramGroup) then
+ begin
+ AboutModulesButton.Visible := true;
+ end else begin
+ AboutModulesButton.Visible := false;
+ end;
+ end;
+//------------------------------------------------------------------------------
+function NextButtonClick_Download_MKL(): Boolean;
+ Var
+ bRes : Boolean;
+ begin
+ Result := true;
+ if (IsComponentSelected( ExpandConstant('{#COMPN_MKL_CPU_LIBRARY}') ) = true) then
+ begin
+ bRes := Download_commons_MKL();
+ if ( bRes = true ) then
+ begin
+ bRes := Download_MKL();
+ end;
+ end;
+ end;
+//------------------------------------------------------------------------------
+function NextButtonClick_Download_MKL_FFTW(): Boolean;
+ Var
+ bRes : Boolean;
+ begin
+ Result := true;
+ if (IsComponentSelected( ExpandConstant('{#COMPN_FFTW_MKL_LIBRARY}') ) = true) then
+ begin
+ bRes := Download_MKL_FFTW();
+ end;
+ end;
+//------------------------------------------------------------------------------
+function NextButtonClick(CurPageID: Integer): Boolean;
+ Var
+ bRes : Boolean;
+
+ begin
+ Result := true;
+
+ if (CurPageID = wpWelcome) then
+ begin
+ if (Is64BitInstallMode() = false) then
+ begin
+ if IsWin64() then
+ begin
+ SuppressibleMsgBox(CustomMessage('MsgBoxX64Ready'), mbInformation, MB_OK, MB_OK );
+ end;
+ end;
+
+ if (IsProcessorFeaturePresent(10) = false) then
+ begin
+ bRes := false;
+ SuppressibleMsgBox(CustomMessage('MsgBoxSSERequired'), mbError, MB_OK, MB_OK );
+ Result := false;
+ end;
+ end;
+
+ if (CurPageId = wpSelectDir) then
+ begin
+ AboutModulesButton.Visible := true;
+ end else begin
+ AboutModulesButton.Visible := false;
+ end;
+
+ if (CurPageID = wpReady) then
+ begin
+ bRes := NextButtonClick_Download_MKL();
+ bRes := NextButtonClick_Download_MKL_FFTW();
+ end;
+
+ if (CurPageId = wpSelectComponents) then
+ begin
+ if ( IsComponentSelected( ExpandConstant('{#COMPN_JRE}') ) = false ) then
+ begin
+ bRes := VerifyJREVersion();
+ if ( bRes = false ) then
+ begin
+ Result := false;
+ end;
+ end;
+
+ if ( (IsComponentSelected( ExpandConstant('{#COMPN_DEVTOOLS}') ) = false) and (IsComponentSelected( ExpandConstant('{#COMPN_TOOLBOX_SKELETON}') ) = true) ) then
+ begin
+ SuppressibleMsgBox( CustomMessage('MsgBoxDevToolsRequired1') + #13 +
+ CustomMessage('MsgBoxDevToolsRequired2'),
+ mbError, MB_OK, MB_OK );
+ Result := false;
+ end;
+
+ if ( (IsComponentSelected( ExpandConstant('{#COMPN_DEVTOOLS}') ) = false) and (IsComponentSelected( ExpandConstant('{#COMPN_TESTS}') ) = true) ) then
+ begin
+ SuppressibleMsgBox( CustomMessage('MsgBoxDevToolsRequired3') + #13 +
+ CustomMessage('MsgBoxDevToolsRequired2'),
+ mbError, MB_OK, MB_OK );
+ Result := false;
+ end;
+
+ end;
+ end;
+//------------------------------------------------------------------------------
+procedure DeinitializeUninstall;
+var
+ Names: TArrayOfString;
+ iLen: Integer;
+begin
+ //read registry to find others scilab installation in the same arch
+ if RegGetSubkeyNames(HKLM, 'Software\Scilab', Names) then
+ begin
+ iLen := length(Names);
+ if iLen > 0 then
+ begin
+ RegWriteStringValue(HKLM, 'Software\Scilab', 'LASTINSTALL', Names[iLen - 1]);
+ end else begin
+ //no other install in the same arch
+ //remove LASTINSTALL key and Scilab registry folder ( auto )
+ RegDeleteValue(HKLM, 'Software\Scilab', 'LASTINSTALL');
+ end;
+ end;
+end;
+//------------------------------------------------------------------------------
+function InitializeSetup: Boolean;
+ Var
+ Version: TWindowsVersion;
+#ifdef SCILAB_WITHOUT_JRE
+ bRes : Boolean;
+#endif
+ begin
+ Result := True;
+ GetWindowsVersionEx(Version);
+
+ if Version.NTPlatform and (Version.Major > 4) then
+ begin
+ Result := True;
+ end else begin
+ SuppressibleMsgBox(CustomMessage('MsgBoxWinVer'), mbCriticalError, MB_OK, MB_OK);
+ Result := False;
+ Exit;
+ end
+#ifdef SCILAB_WITHOUT_JRE
+ bRes := CheckJREVersion();
+ if ( bRes = false ) then
+ begin
+ SuppressibleMsgBox(CustomMessage('MsgBoxJRENotFound')+ '(' +ExpandConstant('{#javaSpecificationVersion}') + ')' + #13 +
+ CustomMessage('MsgBoxJREURL')+ #13 +
+ CustomMessage('MsgBoxJREReinstall')
+ , mbCriticalError, MB_OK, MB_OK);
+ Result := False;
+ Exit;
+ end else begin
+ Result := True;
+ end
+#endif
+ end;
+//------------------------------------------------------------------------------
+procedure OnTypesComboChange(Sender: TObject);
+var
+ ItemIndex: Integer;
+ Res: Boolean;
+begin
+ OriginalOnTypesComboChange(Sender);
+end;
+//------------------------------------------------------------------------------
+procedure CreateTheWizardPages;
+var
+ CancelButton: TButton;
+begin
+ CancelButton := WizardForm.CancelButton;
+
+ AboutModulesButton := TButton.Create(WizardForm);
+ AboutModulesButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width;
+ AboutModulesButton.Top := CancelButton.Top;
+ AboutModulesButton.Width := CancelButton.Width * 2;
+
+ AboutModulesButton.Caption := CustomMessage('ButtonAboutModules');
+
+ AboutModulesButton.Height := CancelButton.Height;
+
+ AboutModulesButton.OnClick := @ButtonAboutModulesOnClick;
+ AboutModulesButton.Parent := CancelButton.Parent;
+ AboutModulesButton.Visible := false;
+
+ CreateOfflineInstallationCheckBox;
+
+ OriginalOnTypesComboChange := WizardForm.TypesCombo.OnChange;
+ WizardForm.TypesCombo.OnChange := @OnTypesComboChange;
+end;
+//------------------------------------------------------------------------------
+procedure InitializeWizard();
+begin
+ CreateTheWizardPages;
+end;
+//------------------------------------------------------------------------------
+//convert Boolean expresion in string ( debug function )
+function BoolToStr(Value : Boolean) : String;
+begin
+ if Value then
+ result := 'true'
+ else
+ result := 'false';
+end;
+//------------------------------------------------------------------------------
+//check user rights
+function IsAdminUser(): Boolean;
+begin
+ Result := (IsAdminLoggedOn or IsPowerUserLoggedOn);
+end;
+//------------------------------------------------------------------------------
+//returns default install path ( take care of user rights )
+function DefDirRoot(Param: String): String;
+begin
+ if IsAdminUser then
+ //program files path
+ Result := ExpandConstant('{pf}')
+ else
+ //local app data path
+ Result := ExpandConstant('{localappdata}')
+end;
diff --git a/tools/innosetup/code_download.iss b/tools/innosetup/code_download.iss
new file mode 100755
index 000000000..a0574abcb
--- /dev/null
+++ b/tools/innosetup/code_download.iss
@@ -0,0 +1,203 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2010-2011 - Allan CORNET
+//
+// 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.1-en.txt
+//
+//------------------------------------------------------------------------------
+// Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+//
+//------------------------------------------------------------------------------
+
+function isxdl_Download(hWnd: Integer; URL, Filename: PAnsiChar): Integer;
+external 'isxdl_Download@files:isxdl.dll stdcall';
+
+procedure isxdl_AddFile(URL, Filename: PAnsiChar);
+external 'isxdl_AddFile@files:isxdl.dll stdcall';
+
+procedure isxdl_AddFileSize(URL, Filename: PAnsiChar; Size: Cardinal);
+external 'isxdl_AddFileSize@files:isxdl.dll stdcall';
+
+function isxdl_DownloadFiles(hWnd: Integer): Integer;
+external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
+
+procedure isxdl_ClearFiles;
+external 'isxdl_ClearFiles@files:isxdl.dll stdcall';
+
+function isxdl_IsConnected: Integer;
+external 'isxdl_IsConnected@files:isxdl.dll stdcall';
+
+function isxdl_SetOption(Option, Value: PAnsiChar): Integer;
+external 'isxdl_SetOption@files:isxdl.dll stdcall';
+
+function isxdl_GetFileName(URL: PAnsiChar): PAnsiChar;
+external 'isxdl_GetFileName@files:isxdl.dll stdcall';
+//------------------------------------------------------------------------------
+function getInstallerDirectory: String;
+ begin
+ Result := ExtractFileDir(ExpandConstant('{srcexe}'));
+ end;
+//------------------------------------------------------------------------------
+function Download_Package(const packagefilename, URL, labeltxt, descriptiontxt: String): Boolean;
+ var
+ hWnd: Integer;
+ DestinationTmpDirName: String;
+ iConnect : Integer;
+ begin
+ Result := false;
+ DestinationTmpDirName := ExpandConstant('{tmp}') + '\';
+ if (FileExists(getInstallerDirectory() + '\' + packagefilename) = true) then
+ begin
+ Result := FileCopy(getInstallerDirectory() + '\' + packagefilename, DestinationTmpDirName + packagefilename, false);
+ end
+ else
+ begin
+ isxdl_SetOption('label', labeltxt);
+ isxdl_SetOption('description', descriptiontxt);
+ isxdl_SetOption('resume', 'false');
+ iConnect := isxdl_IsConnected();
+ if (iConnect = 1) then
+ begin
+ isxdl_AddFile(URL + packagefilename, DestinationTmpDirName + packagefilename);
+ hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));
+ if isxdl_DownloadFiles(hWnd) = 0 then
+ begin
+ Result := false;
+ end else begin
+ FileCopy(DestinationTmpDirName + packagefilename, getInstallerDirectory() + '\' + packagefilename, false);
+ Result := FileExists(DestinationTmpDirName + packagefilename);
+ end;
+ end;
+ end;
+ end;
+//------------------------------------------------------------------------------
+function Download_MKL: Boolean;
+ var
+ URL: String;
+ begin
+ URL := ExpandConstant('{#MKL_DOWNLOAD_HTTP}')+ '/';
+ Result := Download_Package(ExpandConstant('{#MKL_BLASLAPACK_PACKAGENAME}'), URL, CustomMessage('DownloadMKLLabel'), CustomMessage('DownloadMKLDescription'));
+ end;
+//------------------------------------------------------------------------------
+function Download_commons_MKL: Boolean;
+ var
+ URL: String;
+ begin
+ URL := ExpandConstant('{#MKL_DOWNLOAD_HTTP}')+ '/';
+ Result := Download_Package(ExpandConstant('{#MKL_COMMONS_PACKAGENAME}'), URL, CustomMessage('DownloadMKLLabel'), CustomMessage('DownloadMKLDescription'));
+ end;
+//------------------------------------------------------------------------------
+function Download_MKL_FFTW: Boolean;
+ var
+ URL: String;
+ begin
+ URL := ExpandConstant('{#MKL_DOWNLOAD_HTTP}')+ '/';
+ Result := Download_Package(ExpandConstant('{#MKL_FFTW_PACKAGENAME}'), URL, CustomMessage('DownloadMKLFFTWLabel'), CustomMessage('DownloadMKLDescription'));
+ end;
+//------------------------------------------------------------------------------
+function Install_Package(const packagefullfilename, pathdest: String): Boolean;
+ var
+ TmpDirName: String;
+ listfilesArray: TArrayOfString;
+ listfiles_name: String;
+ i : integer;
+
+ begin
+ Result := True;
+ TmpDirName := ExpandConstant('{tmp}') + '\';
+ listfiles_name := TmpDirName + 'list_files.txt';
+
+ if (Unzip(packagefullfilename) = true) then
+ begin
+ if (LoadStringsFromFile(listfiles_name, listfilesArray) = true) then
+ begin
+ for i := 0 to GetArrayLength(listfilesArray) - 1 do
+ begin
+ if (FileCopy(TmpDirName + listfilesArray[i], pathdest + listfilesArray[i], false) = false) then
+ begin
+ Result := False;
+ end;
+ DeleteFile(TmpDirName + listfilesArray[i]);
+ end;
+ end
+ else
+ begin
+ Result := False;
+ end;
+ end
+ else
+ begin
+ Result := False;
+ end;
+ end;
+//------------------------------------------------------------------------------
+function Install_MKL: Boolean;
+ var
+ TmpDirName: String;
+ fullnamePackage: String;
+ destinationDirectory: String;
+
+ begin
+ TmpDirName := ExpandConstant('{tmp}') + '\';
+ fullnamePackage := TmpDirName + ExpandConstant('{#MKL_BLASLAPACK_PACKAGENAME}');
+ destinationDirectory := ExpandConstant('{app}') + '\bin\';
+
+ if FileExists(fullnamePackage) then
+ begin
+ Result := Install_Package(fullnamePackage, destinationDirectory);
+ end
+ else
+ begin
+ Result := False;
+ end;
+
+ end;
+//------------------------------------------------------------------------------
+function Install_commons_MKL: Boolean;
+ var
+ TmpDirName: String;
+ fullnamePackage: String;
+ destinationDirectory: String;
+
+ begin
+ TmpDirName := ExpandConstant('{tmp}') + '\';
+ fullnamePackage := TmpDirName + ExpandConstant('{#MKL_COMMONS_PACKAGENAME}');
+ destinationDirectory := ExpandConstant('{app}') + '\bin\';
+
+ if FileExists(fullnamePackage) then
+ begin
+ Result := Install_Package(fullnamePackage, destinationDirectory);
+ end
+ else
+ begin
+ Result := False;
+ end;
+
+ end;
+//------------------------------------------------------------------------------
+function Install_MKL_FFTW: Boolean;
+ var
+ TmpDirName: String;
+ fullnamePackage: String;
+ destinationDirectory: String;
+
+ begin
+ TmpDirName := ExpandConstant('{tmp}') + '\';
+ fullnamePackage := TmpDirName + ExpandConstant('{#MKL_FFTW_PACKAGENAME}');
+ destinationDirectory := ExpandConstant('{app}') + '\bin\fftw\';
+
+ if FileExists(fullnamePackage) then
+ begin
+ Result := Install_Package(fullnamePackage, destinationDirectory);
+ end
+ else
+ begin
+ Result := False;
+ end;
+
+ end;
+//------------------------------------------------------------------------------
diff --git a/tools/innosetup/code_modules.iss b/tools/innosetup/code_modules.iss
new file mode 100755
index 000000000..ce554dfd0
--- /dev/null
+++ b/tools/innosetup/code_modules.iss
@@ -0,0 +1,163 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2010 - Allan CORNET
+//
+// 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.1-en.txt
+//
+//------------------------------------------------------------------------------
+// Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+//
+//------------------------------------------------------------------------------
+function CreateModulesFile: Boolean;
+Var ModuleFileName : String;
+i : Integer;
+d : Integer;
+ModulesXmlFileLines: TArrayOfString;
+begin
+
+ i := 0;
+
+ setArrayLength(ModulesXmlFileLines, 256);
+ for d := 0 to GetArrayLength(ModulesXmlFileLines)-1 do
+ begin
+ ModulesXmlFileLines[d] := '';
+ end;
+
+ ModuleFileName := ExpandConstant('{app}') +'\etc\modules.xml';
+
+ ModulesXmlFileLines[i] := '<?xml version="1.0" encoding="UTF-8" standalone="no"?>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<!DOCTYPE modules SYSTEM "../modules/core/xml/modules.dtd">'; i := i + 1;
+ ModulesXmlFileLines[i] := '<!-- =================== -->'; i := i + 1;
+ ModulesXmlFileLines[i] := '<!--'; i := i + 1;
+ ModulesXmlFileLines[i] := ' Modules list for Scilab'; i := i + 1;
+ ModulesXmlFileLines[i] := ' @author Scilab Enterprises'; i := i + 1;
+ ModulesXmlFileLines[i] := ' @date 2013'; i := i + 1;
+ ModulesXmlFileLines[i] := ' ==================='; i := i + 1;
+ ModulesXmlFileLines[i] := ' Do not touch if you do not know what you are doing'; i := i + 1;
+ ModulesXmlFileLines[i] := ' Warning "core" module must be always the first module'; i := i + 1;
+ ModulesXmlFileLines[i] := ' activate="yes" module will be launched ( or not "no")'; i := i + 1;
+ ModulesXmlFileLines[i] := ' -->'; i := i + 1;
+ ModulesXmlFileLines[i] := '<!-- =================== -->'; i := i + 1;
+ ModulesXmlFileLines[i] := '<modules>'; i := i + 1;
+
+ ModulesXmlFileLines[i] := '<module name="core" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="double" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="api_scilab" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="differential_equations" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="elementary_functions" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="functions" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="fileio" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="boolean" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="cacsd" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="data_structures" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="console" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="completion" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="history_manager" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="dynamic_link" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="integer" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="io" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="output_stream" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="intersci" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="linear_algebra" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="localization" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="interpolation" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="optimization" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="overloading" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="polynomials" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="signal_processing" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="sparse" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="special_functions" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="string" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="symbolic" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="time" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="windows_tools" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="statistics" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="arnoldi" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="compatibility_functions" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="m2sci" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="mexlib" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="sound" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="external_objects" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="randlib" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="demo_tools" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="spreadsheet" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="call_scilab" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="umfpack" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="genetic_algorithms" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="simulated_annealing" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="parameters" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="matio" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="atoms" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="xml" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="tclsci" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="hdf5" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="fftw" activate="yes"/>'; i := i + 1;
+
+#ifndef SCILAB_F2C
+ ModulesXmlFileLines[i] := '<module name="parallel" activate="yes"/>'; i := i + 1;
+#endif
+
+
+
+ ModulesXmlFileLines[i] := '<!-- JMV dependencies -->'; i := i + 1;
+ if (IsComponentSelected( ExpandConstant('{#COMPN_JVM_MODULE}') )) then
+ begin
+ ModulesXmlFileLines[i] := '<module name="helptools" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="action_binding" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="preferences" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="jvm" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="commons" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="history_browser" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="graph" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="javasci" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="types" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="external_objects_java" activate="yes"/>'; i := i + 1;
+ end;
+
+ ModulesXmlFileLines[i] := '<!-- Scinotes dependencies -->'; i := i + 1;
+ if IsComponentSelected( ExpandConstant('{#COMPN_SCINOTES}') ) then
+ begin
+ ModulesXmlFileLines[i] := '<module name="scinotes" activate="yes"/>'; i := i + 1;
+ end;
+
+ ModulesXmlFileLines[i] := '<!-- Graphics dependencies -->'; i := i + 1;
+ if IsComponentSelected( ExpandConstant('{#COMPN_GRAPHICS}') ) then
+ begin
+ ModulesXmlFileLines[i] := '<module name="gui" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="graphics" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="renderer" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="graphic_objects" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="graphic_export" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="ui_data" activate="yes"/>'; i := i + 1;
+ end;
+
+ ModulesXmlFileLines[i] := '<!-- Xcos dependencies -->'; i := i + 1;
+ if IsComponentSelected( ExpandConstant('{#COMPN_XCOS}') ) then
+ begin
+ ModulesXmlFileLines[i] := '<module name="xcos" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="scicos" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="scicos_blocks" activate="yes"/>'; i := i + 1;
+ end;
+
+ ModulesXmlFileLines[i] := '<!-- Dev tools dependencies -->'; i := i + 1;
+ if IsComponentSelected( ExpandConstant('{#COMPN_DEVTOOLS}') ) then
+ begin
+ ModulesXmlFileLines[i] := '<module name="development_tools" activate="yes"/>'; i := i + 1;
+ ModulesXmlFileLines[i] := '<module name="modules_manager" activate="yes"/>'; i := i + 1;
+ end;
+
+ if IsComponentSelected( ExpandConstant('{#COMPN_MPI}') ) then
+ begin
+ ModulesXmlFileLines[i] := '<module name="mpi" activate="yes"/>'; i := i + 1;
+ end;
+
+ ModulesXmlFileLines[i] := '</modules>'; i := i + 1;
+
+ Result := SaveStringsToFile(ModuleFileName, ModulesXmlFileLines, False);
+
+end;
+//------------------------------------------------------------------------------
diff --git a/tools/innosetup/code_offline_installation.iss b/tools/innosetup/code_offline_installation.iss
new file mode 100755
index 000000000..460d43353
--- /dev/null
+++ b/tools/innosetup/code_offline_installation.iss
@@ -0,0 +1,105 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2010-2011 - Allan CORNET
+//
+// 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.1-en.txt
+//
+//------------------------------------------------------------------------------
+// Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+//
+//------------------------------------------------------------------------------
+
+var
+ OfflineInstallCheckBox: TNewCheckBox;
+
+//------------------------------------------------------------------------------
+// Sets the state of a component given by its english name
+function SetComponentState(ComponentEnglishName: String;
+ Checked: Boolean; Enabled: Boolean): Boolean;
+var
+ ComponentLocalizedName: String;
+ Index: Integer;
+begin
+ ComponentLocalizedName := CustomMessage(ComponentEnglishName);
+ Index := WizardForm.ComponentsList.Items.IndexOf(ComponentLocalizedName);
+ if Index <> -1 then
+ begin
+ WizardForm.ComponentsList.Checked[Index] := Checked;
+ WizardForm.ComponentsList.ItemEnabled[Index] := Enabled;
+ Result := True;
+ end else
+ begin
+ Log('SetComponentState: cannot find component ' + ComponentEnglishName);
+ Result := False;
+ end;
+end;
+//------------------------------------------------------------------------------
+// Offline installation option is checked : disable the components needing
+// to be downloaded (MKL, FFTW)
+procedure OnOfflineInstallCheckBoxClick(Sender: TObject);
+var
+ IsOnline: Boolean;
+ Res: Boolean;
+begin
+ // Bug: IsOnline := not ((Sender as TNewCheckBox).Checked) provokes errors
+ If (Sender as TNewCheckBox).Checked then
+ IsOnline := False
+ else
+ IsOnline := True;
+
+ // CPU Optimization
+ Res := SetComponentState('DescriptionMKLLibrary', IsOnline, IsOnline);
+ if not IsOnline then
+ begin
+#ifndef SCILAB_X64
+ Res := Res and SetComponentState('DescriptionATLASLibrary', True, True);
+#else
+ Res := Res and SetComponentState('DescriptionRefBlasLibrary', True, True);
+#endif
+ end;
+
+ // FFTW
+ Res := Res and SetComponentState('DescriptionFftwMKLDownload', IsOnline,
+ IsOnline);
+ if not IsOnline then
+ begin
+ Res := Res and SetComponentState('DescriptionRefFftwLibrary', True, True);
+ end;
+
+ if not Res then
+ begin
+ Log('OfflineInstallCheckBoxOnClick: ' +
+ 'Error while changing components intallation.');
+ end;
+
+ // Refresh installation type (Online => Full, Offline => Custom)
+ if IsOnline then
+ WizardForm.TypesCombo.ItemIndex := 0
+ else
+ WizardForm.TypesCombo.ItemIndex := 1;
+
+ // Bug: need to trigger manually the TypesCombo.OnChange event
+ WizardForm.TypesCombo.OnChange(WizardForm);
+end;
+//------------------------------------------------------------------------------
+// Adds an "Offline installation" option (check box)in the Select Location panel
+procedure CreateOfflineInstallationCheckBox;
+var
+ LastControl: TWinControl;
+begin
+ LastControl := WizardForm.DirEdit;
+
+ OfflineInstallCheckBox := TNewCheckBox.Create(WizardForm);
+ OfflineInstallCheckBox.Parent := WizardForm.SelectDirPage;
+ OfflineInstallCheckBox.Top := LastControl.Top +
+ LastControl.Height + ScaleY(8);
+ OfflineInstallCheckBox.Width := WizardForm.SelectDirPage.Width;
+ OfflineInstallCheckBox.Caption :=
+ 'Installation without an Internet connection';
+ OfflineInstallCheckBox.OnClick := @OnOfflineInstallCheckBoxClick;
+end;
+
diff --git a/tools/innosetup/code_unzip.iss b/tools/innosetup/code_unzip.iss
new file mode 100755
index 000000000..09e08d0ac
--- /dev/null
+++ b/tools/innosetup/code_unzip.iss
@@ -0,0 +1,35 @@
+//
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) DIGITEO - 2011 - Allan CORNET
+//
+// 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.1-en.txt
+//
+//------------------------------------------------------------------------------
+// Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+//
+//------------------------------------------------------------------------------
+function Unzip(const ZipFile: String): Boolean;
+var
+ ErrorCode: Integer;
+ TmpDirName: String;
+ sUNZIP: String;
+ sParams: String;
+
+begin
+ ExtractTemporaryFile('unzip.exe');
+ Result := False;
+ TmpDirName := ExpandConstant('{tmp}') + '\';
+ sUNZIP := TmpDirName + 'unzip.exe';
+ sParams := '-e -o ' + ZipFile + ' -d ' + TmpDirName;
+
+ Result := Exec(sUNZIP, sParams, TmpDirName, SW_HIDE, ewWaitUntilTerminated, ErrorCode);
+ if (ErrorCode = 0) then
+ begin
+ Result := True;
+ end;
+end;
+//------------------------------------------------------------------------------
diff --git a/tools/innosetup/components.iss b/tools/innosetup/components.iss
new file mode 100755
index 000000000..4ccbfbcec
--- /dev/null
+++ b/tools/innosetup/components.iss
@@ -0,0 +1,65 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010-2011 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+
+#define COMPN_SCILAB 'scilab'
+Name: {#COMPN_SCILAB}; Description: Scilab {#ScilabVersion}; Types: full custom cli; Flags: fixed;
+
+#define COMPN_JVM_MODULE 'JVM_MODULE'
+#define COMPN_GRAPHICS 'JVM_MODULE\graphics'
+#define COMPN_XCOS 'JVM_MODULE\xcos'
+#define COMPN_SCINOTES 'JVM_MODULE\scinotes'
+#define COMPN_JRE 'JVM_MODULE\JRE_1_6'
+Name: {#COMPN_JVM_MODULE}; Description: {cm:DescriptionModuleJVM}; Types: full;
+Name: {#COMPN_GRAPHICS}; Description: {cm:DescriptionGraphics}; Types: full;
+Name: {#COMPN_XCOS}; Description: {cm:DescriptionXcos}; Types: full;
+Name: {#COMPN_SCINOTES}; Description:{cm:DescriptionSciNotes}; Types: full;
+#ifndef SCILAB_WITHOUT_JRE
+Name: {#COMPN_JRE}; Description: {cm:DescriptionJVM} ({#javaUsed}); Types: full;
+#endif
+
+#define COMPN_CPU_OPTIMIZATION 'CPU_OPTIMIZATION'
+#define COMPN_REF_CPU_LIBRARY 'CPU_OPTIMIZATION\CPU_REF'
+#define COMPN_ATLAS_CPU_LIBRARY 'CPU_OPTIMIZATION\ATLAS'
+#define COMPN_MKL_CPU_LIBRARY 'CPU_OPTIMIZATION\MKL'
+Name: {#COMPN_CPU_OPTIMIZATION}; Description:{cm:DescriptionCPUOptimization}; Types: full custom cli; Flags: fixed;
+Name: {#COMPN_MKL_CPU_LIBRARY}; Description:{cm:DescriptionMKLLibrary}; Flags: exclusive
+#ifndef SCILAB_X64
+Name: {#COMPN_ATLAS_CPU_LIBRARY}; Description:{cm:DescriptionATLASLibrary}; Flags: exclusive
+#endif
+Name: {#COMPN_REF_CPU_LIBRARY}; Description:{cm:DescriptionRefBlasLibrary}; Flags: exclusive
+
+#define COMPN_FFTW 'FFTW'
+#define COMPN_FFTW_REF_LIBRARY 'FFTW\REF_LIBRARY'
+#define COMPN_FFTW_MKL_LIBRARY 'FFTW\MKL_LIBRARY'
+Name: {#COMPN_FFTW}; Description: {cm:DescriptionFftwModule}; Types: full custom cli; Flags: fixed;
+Name: {#COMPN_FFTW_MKL_LIBRARY};Description: {cm:DescriptionFftwMKLDownload}; Types: custom cli; Flags: exclusive
+Name: {#COMPN_FFTW_REF_LIBRARY};Description: {cm:DescriptionRefFftwLibrary}; Types: full custom cli; Flags: exclusive
+
+#define COMPN_DEVTOOLS 'Development_tools'
+#define COMPN_MODULES_MANAGER 'Development_tools\modules_manager'
+#define COMPN_TOOLBOX_SKELETON 'Development_tools\toolbox_skeleton'
+#define COMPN_TESTS 'Development_tools\tests'
+Name: {#COMPN_DEVTOOLS}; Description: {cm:DescriptionDevTools}; Types: full;
+Name: {#COMPN_MODULES_MANAGER}; Description: {cm:DescriptionModulesManager}; Types: full;
+Name: {#COMPN_TOOLBOX_SKELETON}; Description: {cm:DescriptionTlbxSkeleton}; Types: full;
+Name: {#COMPN_TESTS}; Description: {cm:DescriptionTests}; Types: full; ExtraDiskSpaceRequired: {#TESTS_SIZE}
+
+#define COMPN_MPI 'MPI'
+Name: {#COMPN_MPI}; Description: {cm:DescriptionMPI}; Types: full;
+
+#define COMPN_TCLSCI 'tclsci'
+Name: {#COMPN_TCLSCI}; Description: {cm:DescriptionTclTK}; Types: full;
+;-------------------------------------------------------------------------------
diff --git a/tools/innosetup/cs_CZ_scilab.isl b/tools/innosetup/cs_CZ_scilab.isl
new file mode 100755
index 000000000..c57de6fc8
--- /dev/null
+++ b/tools/innosetup/cs_CZ_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2011 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+cs_CZ.LANGUAGE =cs_CZ
+
+cs_CZ.MsgBoxJRENotFound =Java Runtime Environment not detected.
+cs_CZ.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+cs_CZ.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+cs_CZ.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+cs_CZ.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+cs_CZ.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+cs_CZ.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+cs_CZ.MsgBoxWebOpen =Can not open web page.
+cs_CZ.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+cs_CZ.MsgBoxDevToolsRequired2 =Please install development_tools module.
+cs_CZ.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+cs_CZ.MsgBoxTclsciRequired2 =Please install tclsci module.
+cs_CZ.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+cs_CZ.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+cs_CZ.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+cs_CZ.MsgBoxFftw4 =Can not open web page.
+cs_CZ.MsgBoxWinVer =Windows 2000 is required.
+cs_CZ.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+cs_CZ.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+cs_CZ.ButtonAboutModules =&About modules ...
+;
+cs_CZ.DescriptionEquDif =Differential Equations Module
+cs_CZ.DescriptionInterpolation =Interpolation Module
+cs_CZ.DescriptionPolynomials =Polynomials Module
+cs_CZ.DescriptionSymbolic =Symbolic Module
+cs_CZ.DescriptionStats =Statistics Module
+cs_CZ.DescriptionSparse =Sparse Matrix Module
+cs_CZ.DescriptionLinAlg =Linear Algebra Module
+cs_CZ.DescriptionSigProc =Signal processing Module
+cs_CZ.DescriptionCacsd =C.A.C.S.D Module
+cs_CZ.DescriptionGraphics =Graphics Module
+cs_CZ.DescriptionOptim =Optimization Module
+cs_CZ.DescriptionMetanet =Metanet Toolbox
+cs_CZ.DescriptionScicos =Scicos Toolbox
+cs_CZ.DescriptionArnoldi =ARnoldi PACKage Toolbox
+cs_CZ.DescriptionUmfpack =UMFPACK for Scilab
+cs_CZ.DescriptionCompatFunctions =Compatibility functions
+cs_CZ.DescriptionM2sci =M2SCI Toolbox
+cs_CZ.DescriptionMatio =MAT File Input/Output Toolbox
+cs_CZ.DescriptionExternalObjects =External objects
+cs_CZ.DescriptionSound =Sound file handling Toolbox
+cs_CZ.DescriptionRandlib =Randlib Toolbox
+cs_CZ.DescriptionMexlib =Mexlib Tools
+cs_CZ.DescriptionIntersci =Intersci Toolbox
+cs_CZ.DescriptionTclTK =TCL/TK in Scilab
+cs_CZ.DescriptionSpreadsheet =Spreadsheet Toolbox
+cs_CZ.DescriptionJVM =Java Runtime
+cs_CZ.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+cs_CZ.DescriptionFftwModule =FFTW interface for Scilab
+cs_CZ.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+cs_CZ.DescriptionRefFftwLibrary =Reference FFTW library
+cs_CZ.DescriptionParametersTlbx =Parameters Toolbox
+cs_CZ.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+cs_CZ.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+cs_CZ.DescriptionDevTools =Development Tools
+cs_CZ.DescriptionTests =Tests for Scilab
+cs_CZ.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+cs_CZ.DescriptionComConnector =COM connector
+cs_CZ.DescriptionSciNotes =SciNotes: Editor for Scilab
+cs_CZ.DescriptionXcos =Xcos
+cs_CZ.DescriptionParallel =Parallel Computing with Scilab
+cs_CZ.DescriptionModulesManager =Tools for management of extern modules
+cs_CZ.DescriptionModuleJVM =JVM Module
+;
+cs_CZ.ConsoleIconName =Scilab Console
+;
+cs_CZ.WebIconScilab =Scilab on the Web
+;
+cs_CZ.ReadMeIcon =Read Me
+;
+cs_CZ.UnInstallIcon =Uninstall Scilab
+;
+cs_CZ.RegKeyRunWith =Run with
+;
+cs_CZ.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+cs_CZ.DescriptionConfigureAtlas =Configure Atlas
+;
+cs_CZ.DescriptionLaunchScilab =Launch Scilab
+;
+cs_CZ.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+cs_CZ.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+cs_CZ.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+cs_CZ.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+cs_CZ.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+cs_CZ.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+cs_CZ.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+cs_CZ.DescriptionDefaultInstall =Installation (Default)
+cs_CZ.DescriptionFullInstall =Full installation
+cs_CZ.DescriptionCustomInstall =Custom installation
+cs_CZ.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+cs_CZ.DescriptionCPUOptimization =CPU Optimization for Scilab
+cs_CZ.DescriptionATLASLibrary =Atlas Library for Scilab
+cs_CZ.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+cs_CZ.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+cs_CZ.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+cs_CZ.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+cs_CZ.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+cs_CZ.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+cs_CZ.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+cs_CZ.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+cs_CZ.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+cs_CZ.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+; \ No newline at end of file
diff --git a/tools/innosetup/custommessages.iss b/tools/innosetup/custommessages.iss
new file mode 100755
index 000000000..b37b5ff2c
--- /dev/null
+++ b/tools/innosetup/custommessages.iss
@@ -0,0 +1,32 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+;
+#include BinariesSourcePath + "\tools\innosetup\en_US_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\fr_FR_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\ru_RU_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\zh_CN_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\zh_TW_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\ca_ES_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\es_ES_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\de_DE_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\pt_BR_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\ja_JP_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\it_IT_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\uk_UA_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\pl_PL_scilab.isl"
+#include BinariesSourcePath + "\tools\innosetup\cs_CZ_scilab.isl"
+;
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/de_DE_scilab.isl b/tools/innosetup/de_DE_scilab.isl
new file mode 100755
index 000000000..51af1e95b
--- /dev/null
+++ b/tools/innosetup/de_DE_scilab.isl
@@ -0,0 +1,137 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+de_DE.LANGUAGE =de_DE
+
+de_DE.MsgBoxJRENotFound =Java Runtime Environment not detected.
+de_DE.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+de_DE.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+de_DE.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+de_DE.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+de_DE.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+de_DE.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+de_DE.MsgBoxWebOpen =Can not open web page.
+de_DE.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+de_DE.MsgBoxDevToolsRequired2 =Please install development_tools module.
+de_DE.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+de_DE.MsgBoxTclsciRequired2 =Please install tclsci module.
+de_DE.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+de_DE.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+de_DE.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+de_DE.MsgBoxFftw4 =Can not open web page.
+de_DE.MsgBoxWinVer =Windows 2000 is required.
+de_DE.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+de_DE.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+de_DE.ButtonAboutModules =&About modules ...
+;
+de_DE.DescriptionEquDif =Differential Equations Module
+de_DE.DescriptionInterpolation =Interpolation Module
+de_DE.DescriptionPolynomials =Polynomials Module
+de_DE.DescriptionSymbolic =Symbolic Module
+de_DE.DescriptionStats =Statistics Module
+de_DE.DescriptionSparse =Sparse Matrix Module
+de_DE.DescriptionLinAlg =Linear Algebra Module
+de_DE.DescriptionSigProc =Signal processing Module
+de_DE.DescriptionCacsd =C.A.C.S.D Module
+de_DE.DescriptionGraphics =Graphics Module
+de_DE.DescriptionOptim =Optimization Module
+de_DE.DescriptionMetanet =Metanet Toolbox
+de_DE.DescriptionScicos =Scicos Toolbox
+de_DE.DescriptionArnoldi =ARnoldi PACKage Toolbox
+de_DE.DescriptionUmfpack =UMFPACK for Scilab
+de_DE.DescriptionCompatFunctions =Compatibility functions
+de_DE.DescriptionM2sci =M2SCI Toolbox
+de_DE.DescriptionMatio =MAT File Input/Output Toolbox
+de_DE.DescriptionExternalObjects =External objects
+de_DE.DescriptionSound =Sound file handling Toolbox
+de_DE.DescriptionRandlib =Randlib Toolbox
+de_DE.DescriptionMexlib =Mexlib Tools
+de_DE.DescriptionIntersci =Intersci Toolbox
+de_DE.DescriptionTclTK =TCL/TK in Scilab
+de_DE.DescriptionSpreadsheet =Spreadsheet Toolbox
+de_DE.DescriptionJVM =Java Runtime
+de_DE.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+de_DE.DescriptionFftwModule =FFTW interface for Scilab
+de_DE.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+de_DE.DescriptionRefFftwLibrary =Reference FFTW library
+de_DE.DescriptionParametersTlbx =Parameters Toolbox
+de_DE.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+de_DE.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+de_DE.DescriptionDevTools =Development Tools
+de_DE.DescriptionTests =Tests for Scilab
+de_DE.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+de_DE.DescriptionComConnector =COM connector
+de_DE.DescriptionSciNotes =SciNotes: Editor for Scilab
+de_DE.DescriptionXcos =Xcos
+de_DE.DescriptionParallel =Parallel Computing with Scilab
+de_DE.DescriptionModulesManager =Tools for management of extern modules
+de_DE.DescriptionModuleJVM =JVM Module
+;
+de_DE.ConsoleIconName =Scilab Console
+;
+de_DE.WebIconScilab =Scilab on the Web
+;
+de_DE.ReadMeIcon =Read Me
+;
+de_DE.UnInstallIcon =Uninstall Scilab
+;
+de_DE.RegKeyRunWith =Run with
+;
+de_DE.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+de_DE.DescriptionConfigureAtlas =Configure Atlas
+;
+de_DE.DescriptionLaunchScilab =Launch Scilab
+;
+de_DE.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+de_DE.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+de_DE.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+de_DE.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+de_DE.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+de_DE.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+de_DE.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+de_DE.DescriptionDefaultInstall =Installation (Default)
+de_DE.DescriptionFullInstall =Full installation
+de_DE.DescriptionCustomInstall =Custom installation
+de_DE.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+de_DE.DescriptionCPUOptimization =CPU Optimization for Scilab
+de_DE.DescriptionATLASLibrary =Atlas Library for Scilab
+de_DE.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+de_DE.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+de_DE.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+de_DE.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+de_DE.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+de_DE.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+de_DE.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+de_DE.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+de_DE.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+de_DE.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/en_US_scilab.isl b/tools/innosetup/en_US_scilab.isl
new file mode 100755
index 000000000..e136175eb
--- /dev/null
+++ b/tools/innosetup/en_US_scilab.isl
@@ -0,0 +1,112 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+en_US.LANGUAGE =en_US
+
+en_US.MsgBoxJRENotFound =Java Runtime Environment not detected.
+en_US.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+en_US.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+en_US.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+en_US.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+en_US.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+en_US.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+en_US.MsgBoxWebOpen =Can not open web page.
+en_US.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+en_US.MsgBoxDevToolsRequired2 =Please install development_tools module.
+en_US.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+en_US.MsgBoxTclsciRequired2 =Please install tclsci module.
+en_US.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+en_US.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+en_US.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+en_US.MsgBoxFftw4 =Can not open web page.
+en_US.MsgBoxWinVer =Windows 2000 is required.
+en_US.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+en_US.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+en_US.ButtonAboutModules =&About modules ...
+;
+en_US.DescriptionGraphics =Graphics Module
+en_US.DescriptionTclTK =TCL/TK in Scilab
+en_US.DescriptionJVM =Java Runtime
+en_US.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+en_US.DescriptionFftwModule =FFTW interface for Scilab
+en_US.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+en_US.DescriptionRefFftwLibrary =Reference FFTW library
+en_US.DescriptionDevTools =Development Tools
+en_US.DescriptionTests =Tests for Scilab
+en_US.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+en_US.DescriptionSciNotes =Scinotes: Text editor for Scilab
+en_US.DescriptionXcos =Xcos
+en_US.DescriptionParallel =Parallel Computing with Scilab
+en_US.DescriptionModulesManager =Tools for management of extern modules
+en_US.DescriptionModuleJVM =Graphic User Interface
+en_US.DescriptionMPI =MPI ( based on Microsoft HPC Pack 2012 R2 )
+;
+en_US.ConsoleIconName =Scilab Console
+;
+en_US.WebIconScilab =Scilab on the Web
+;
+en_US.ReadMeIcon =Read Me
+;
+en_US.UnInstallIcon =Uninstall Scilab
+;
+en_US.RegKeyRunWith =Run with
+;
+en_US.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+en_US.DescriptionConfigureAtlas =Configure Atlas
+;
+en_US.DescriptionLaunchScilab =Launch Scilab
+;
+en_US.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+en_US.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+en_US.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+en_US.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+en_US.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+en_US.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+en_US.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf *.zcos files with Scilab
+;
+en_US.DescriptionAssociateSOD =Associate *.sod files with Scilab
+;
+en_US.DescriptionDefaultInstall =Installation (Default)
+en_US.DescriptionFullInstall =Full installation
+en_US.DescriptionCustomInstall =Custom installation
+en_US.DescriptionCLIInstall =Command Line Installation (no gui)
+;
+en_US.DescriptionCPUOptimization =CPU Optimization for Scilab
+en_US.DescriptionATLASLibrary =Atlas Library for Scilab
+en_US.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+en_US.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+en_US.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+en_US.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+en_US.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+en_US.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+en_US.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+en_US.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+en_US.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/es_ES_scilab.isl b/tools/innosetup/es_ES_scilab.isl
new file mode 100755
index 000000000..452925adb
--- /dev/null
+++ b/tools/innosetup/es_ES_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+es_ES.LANGUAGE =es_ES
+
+es_ES.MsgBoxJRENotFound =Java Runtime Environment not detected.
+es_ES.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+es_ES.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+es_ES.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+es_ES.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+es_ES.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+es_ES.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+es_ES.MsgBoxWebOpen =Can not open web page.
+es_ES.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+es_ES.MsgBoxDevToolsRequired2 =Please install development_tools module.
+es_ES.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+es_ES.MsgBoxTclsciRequired2 =Please install tclsci module.
+es_ES.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+es_ES.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+es_ES.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+es_ES.MsgBoxFftw4 =Can not open web page.
+es_ES.MsgBoxWinVer =Windows 2000 is required.
+es_ES.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+es_ES.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+es_ES.ButtonAboutModules =&About modules ...
+;
+es_ES.DescriptionEquDif =Differential Equations Module
+es_ES.DescriptionInterpolation =Interpolation Module
+es_ES.DescriptionPolynomials =Polynomials Module
+es_ES.DescriptionSymbolic =Symbolic Module
+es_ES.DescriptionStats =Statistics Module
+es_ES.DescriptionSparse =Sparse Matrix Module
+es_ES.DescriptionLinAlg =Linear Algebra Module
+es_ES.DescriptionSigProc =Signal processing Module
+es_ES.DescriptionCacsd =C.A.C.S.D Module
+es_ES.DescriptionGraphics =Graphics Module
+es_ES.DescriptionOptim =Optimization Module
+es_ES.DescriptionMetanet =Metanet Toolbox
+es_ES.DescriptionScicos =Scicos Toolbox
+es_ES.DescriptionArnoldi =ARnoldi PACKage Toolbox
+es_ES.DescriptionUmfpack =UMFPACK for Scilab
+es_ES.DescriptionCompatFunctions =Compatibility functions
+es_ES.DescriptionM2sci =M2SCI Toolbox
+es_ES.DescriptionMatio =MAT File Input/Output Toolbox
+es_ES.DescriptionExternalObjects =External objects
+es_ES.DescriptionSound =Sound file handling Toolbox
+es_ES.DescriptionRandlib =Randlib Toolbox
+es_ES.DescriptionMexlib =Mexlib Tools
+es_ES.DescriptionIntersci =Intersci Toolbox
+es_ES.DescriptionTclTK =TCL/TK in Scilab
+es_ES.DescriptionSpreadsheet =Spreadsheet Toolbox
+es_ES.DescriptionJVM =Java Runtime
+es_ES.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+es_ES.DescriptionFftwModule =FFTW interface for Scilab
+es_ES.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+es_ES.DescriptionRefFftwLibrary =Reference FFTW library
+es_ES.DescriptionParametersTlbx =Parameters Toolbox
+es_ES.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+es_ES.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+es_ES.DescriptionDevTools =Development Tools
+es_ES.DescriptionTests =Tests for Scilab
+es_ES.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+es_ES.DescriptionComConnector =COM connector
+es_ES.DescriptionSciNotes =SciNotes: Editor for Scilab
+es_ES.DescriptionXcos =Xcos
+es_ES.DescriptionParallel =Parallel Computing with Scilab
+es_ES.DescriptionModulesManager =Tools for management of extern modules
+es_ES.DescriptionModuleJVM =JVM Module
+;
+es_ES.ConsoleIconName =Scilab Console
+;
+es_ES.WebIconScilab =Scilab on the Web
+;
+es_ES.ReadMeIcon =Read Me
+;
+es_ES.UnInstallIcon =Uninstall Scilab
+;
+es_ES.RegKeyRunWith =Run with
+;
+es_ES.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+es_ES.DescriptionConfigureAtlas =Configure Atlas
+;
+es_ES.DescriptionLaunchScilab =Launch Scilab
+;
+es_ES.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+es_ES.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+es_ES.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+es_ES.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+es_ES.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+es_ES.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+es_ES.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+es_ES.DescriptionDefaultInstall =Installation (Default)
+es_ES.DescriptionFullInstall =Full installation
+es_ES.DescriptionCustomInstall =Custom installation
+es_ES.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+es_ES.DescriptionCPUOptimization =CPU Optimization for Scilab
+es_ES.DescriptionATLASLibrary =Atlas Library for Scilab
+es_ES.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+es_ES.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+es_ES.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+es_ES.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+es_ES.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+es_ES.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+es_ES.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+es_ES.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+es_ES.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+es_ES.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+; \ No newline at end of file
diff --git a/tools/innosetup/files.iss b/tools/innosetup/files.iss
new file mode 100755
index 000000000..a779c1bf3
--- /dev/null
+++ b/tools/innosetup/files.iss
@@ -0,0 +1,101 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+#include BinariesSourcePath + "\tools\innosetup\base.iss"
+#ifndef SCILAB_X64
+#include BinariesSourcePath + "\tools\innosetup\atlas.iss"
+#endif
+#include BinariesSourcePath + "\tools\tools.iss"
+#include BinariesSourcePath + "\contrib\toolbox_skeleton.iss"
+#include BinariesSourcePath + "\modules\core\core.iss"
+#include BinariesSourcePath + "\modules\helptools\helptools.iss"
+#include BinariesSourcePath + "\modules\demo_tools\demo_tools.iss"
+#include BinariesSourcePath + "\modules\fileio\fileio.iss"
+#include BinariesSourcePath + "\modules\output_stream\output_stream.iss"
+#include BinariesSourcePath + "\modules\string\string.iss"
+#include BinariesSourcePath + "\modules\io\io.iss"
+#include BinariesSourcePath + "\modules\double\double.iss"
+#include BinariesSourcePath + "\modules\integer\integer.iss"
+#include BinariesSourcePath + "\modules\overloading\overloading.iss"
+#include BinariesSourcePath + "\modules\elementary_functions\elementary_functions.iss"
+#include BinariesSourcePath + "\modules\jvm\jvm.iss"
+#include BinariesSourcePath + "\modules\commons\commons.iss"
+#include BinariesSourcePath + "\modules\time\time.iss"
+#include BinariesSourcePath + "\modules\localization\localization.iss"
+#include BinariesSourcePath + "\modules\boolean\boolean.iss"
+#include BinariesSourcePath + "\modules\data_structures\data_structures.iss"
+#include BinariesSourcePath + "\modules\functions\functions.iss"
+#include BinariesSourcePath + "\modules\windows_tools\windows_tools.iss"
+#include BinariesSourcePath + "\modules\dynamic_link\dynamic_link.iss"
+#include BinariesSourcePath + "\modules\gui\gui.iss"
+#include BinariesSourcePath + "\modules\completion\completion.iss"
+#include BinariesSourcePath + "\modules\history_manager\history_manager.iss"
+#include BinariesSourcePath + "\modules\action_binding\action_binding.iss"
+#include BinariesSourcePath + "\modules\console\console.iss"
+#include BinariesSourcePath + "\modules\special_functions\special_functions.iss"
+#include BinariesSourcePath + "\modules\linear_algebra\linear_algebra.iss"
+#include BinariesSourcePath + "\modules\sparse\sparse.iss"
+#include BinariesSourcePath + "\modules\graphics\graphics.iss"
+#include BinariesSourcePath + "\modules\renderer\renderer.iss"
+#include BinariesSourcePath + "\modules\graphic_export\graphic_export.iss"
+#include BinariesSourcePath + "\modules\external_objects\external_objects.iss"
+#include BinariesSourcePath + "\modules\external_objects_java\external_objects_java.iss"
+#include BinariesSourcePath + "\modules\sound\sound.iss"
+#include BinariesSourcePath + "\modules\tclsci\tclsci.iss"
+#include BinariesSourcePath + "\modules\arnoldi\arnoldi.iss"
+#include BinariesSourcePath + "\modules\cacsd\cacsd.iss"
+#include BinariesSourcePath + "\modules\optimization\optimization.iss"
+#include BinariesSourcePath + "\modules\polynomials\polynomials.iss"
+#include BinariesSourcePath + "\modules\scicos\scicos.iss"
+#include BinariesSourcePath + "\modules\scicos_blocks\scicos_blocks.iss"
+#include BinariesSourcePath + "\modules\statistics\statistics.iss"
+#include BinariesSourcePath + "\modules\signal_processing\signal_processing.iss"
+#include BinariesSourcePath + "\modules\javasci\javasci.iss"
+#include BinariesSourcePath + "\modules\intersci\intersci.iss"
+#include BinariesSourcePath + "\modules\mexlib\mexlib.iss"
+#include BinariesSourcePath + "\modules\m2sci\m2sci.iss"
+#include BinariesSourcePath + "\modules\randlib\randlib.iss"
+#include BinariesSourcePath + "\modules\symbolic\symbolic.iss"
+#include BinariesSourcePath + "\modules\interpolation\interpolation.iss"
+#include BinariesSourcePath + "\modules\umfpack\umfpack.iss"
+#include BinariesSourcePath + "\modules\fftw\fftw.iss"
+#include BinariesSourcePath + "\modules\spreadsheet\spreadsheet.iss"
+#include BinariesSourcePath + "\modules\differential_equations\differential_equations.iss"
+#include BinariesSourcePath + "\modules\compatibility_functions\compatibility_functions.iss"
+#include BinariesSourcePath + "\modules\development_tools\development_tools.iss"
+#include BinariesSourcePath + "\modules\genetic_algorithms\genetic_algorithms.iss"
+#include BinariesSourcePath + "\modules\simulated_annealing\simulated_annealing.iss"
+#include BinariesSourcePath + "\modules\parameters\parameters.iss"
+#include BinariesSourcePath + "\modules\matio\matio.iss"
+#include BinariesSourcePath + "\modules\call_scilab\call_scilab.iss"
+#include BinariesSourcePath + "\modules\api_scilab\api_scilab.iss"
+#include BinariesSourcePath + "\modules\atoms\atoms.iss"
+#include BinariesSourcePath + "\modules\types\types.iss"
+#include BinariesSourcePath + "\modules\hdf5\hdf5.iss"
+#include BinariesSourcePath + "\modules\scinotes\scinotes.iss"
+#include BinariesSourcePath + "\modules\xcos\xcos.iss"
+#include BinariesSourcePath + "\modules\graph\graph.iss"
+#ifndef SCILAB_F2C
+#include BinariesSourcePath + "\modules\parallel\parallel.iss"
+#endif
+#include BinariesSourcePath + "\modules\modules_manager\modules_manager.iss"
+#include BinariesSourcePath + "\modules\ui_data\ui_data.iss"
+#include BinariesSourcePath + "\modules\history_browser\history_browser.iss"
+#include BinariesSourcePath + "\modules\xml\xml.iss"
+#include BinariesSourcePath + "\modules\preferences\preferences.iss"
+#include BinariesSourcePath + "\modules\graphic_objects\graphic_objects.iss"
+#include BinariesSourcePath + "\modules\mpi\mpi.iss"
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/fr_FR_scilab.isl b/tools/innosetup/fr_FR_scilab.isl
new file mode 100755
index 000000000..d9966fea0
--- /dev/null
+++ b/tools/innosetup/fr_FR_scilab.isl
@@ -0,0 +1,111 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+fr_FR.LANGUAGE =fr_FR
+
+fr_FR.MsgBoxJRENotFound =Java Runtime Environment non détecté.
+fr_FR.MsgBoxJREURL =Veuillez télécharger et installer le JRE (http://www.java.com/fr/download/)
+fr_FR.MsgBoxJREReinstall =Relancer l'installation de Scilab après l'installation du JRE.
+fr_FR.MsgBoxSSERequired =Les instructions CPU SSE2 sont requises pour faire fonctionner.
+fr_FR.MsgBoxX64Ready =Pour de meilleurs performances, il serait mieux d'utiliser la version 64 bits de Scilab sur ce système d'exploitation.
+
+fr_FR.MsgBoxJavaDetection1 =Java n'est pas installé correctement sur cet ordinateur.
+fr_FR.MsgBoxJavaDetection2 =Veuillez sélectionner & installer Java Runtime :
+fr_FR.MsgBoxWebOpen =Impossible d'ouvrir cette page internet.
+fr_FR.MsgBoxDevToolsRequired1 =Vous avez choisi d'installer le module toolbox_skeleton mais vous n'avez pas sélectionné le module development_tools.
+fr_FR.MsgBoxDevToolsRequired2 =Veuillez installer le module development_tools.
+fr_FR.MsgBoxDevToolsRequired3 =Vous avez choisi d'installer les tests mais vous n'avez pas sélectionné le module development_tools.
+fr_FR.MsgBoxTclsciRequired2 =Veuillez installer le module tclsci.
+fr_FR.MsgBoxFftw1 =Vous avez choisi d'installer le module FFTW pour Scilab.
+fr_FR.MsgBoxFftw2 =Il est nécessaire de télécharger la bibliothèque FFTW (GPL).
+fr_FR.MsgBoxFftw3 =Voulez-vous ouvrir une page web concernant cet add-on ?
+fr_FR.MsgBoxFftw4 =Impossible d'accéder à cette page web.
+fr_FR.MsgBoxWinVer =Nécessite Windows 2000 ou plus.
+fr_FR.MsgBoxScicosRequired1 =Vous avez choisi d'installer le module Xcos mais vous n'avez pas sélectionné le module Scicos.
+fr_FR.MsgBoxScicosRequired2 =Veuillez également installer le module Scicos.
+
+;
+fr_FR.ButtonAboutModules =&A propos des modules ...
+;
+fr_FR.DescriptionGraphics =Module Graphique
+fr_FR.DescriptionTclTK =TCL/TK pour Scilab
+fr_FR.DescriptionJVM =Java Runtime
+fr_FR.DescriptionAtlas =Bibliothèque Atlas 3.8.0 optimisée selon le CPU
+fr_FR.DescriptionFftwModule =Interface avec la bibliothèque FFTW3 pour Scilab
+fr_FR.DescriptionFftwMKLDownload =Télécharger la bibliothèque FFTW3 optimisée par Intel Math Kernel Library
+fr_FR.DescriptionRefFftwLibrary =Bibliothèque FFTW3 de référence
+fr_FR.DescriptionDevTools =Outils pour le Développement
+fr_FR.DescriptionTests =Tests pour Scilab
+fr_FR.DescriptionTlbxSkeleton =Un modèle de boite à outils (pour étendre Scilab)
+fr_FR.DescriptionSciNotes =Scinotes : Éditeur de texte pour Scilab
+fr_FR.DescriptionXcos =Xcos
+fr_FR.DescriptionModulesManager =Outils pour créer des modules externes
+fr_FR.DescriptionModuleJVM =Interface graphique
+fr_FR.DescriptionMPI =MPI ( basé sur Microsoft HPC Pack 2012 R2 )
+;
+fr_FR.ConsoleIconName =Console Scilab
+;
+fr_FR.WebIconScilab =Site Internet Scilab
+;
+fr_FR.ReadMeIcon =Lisez Moi
+;
+fr_FR.UnInstallIcon =Désinstaller Scilab
+;
+fr_FR.RegKeyRunWith =Exécuter avec
+;
+fr_FR.DescriptionVC2008Redist =Installer Microsoft Visual C++ 2008 Redistributable Package
+;
+fr_FR.DescriptionConfigureAtlas =Configurer Atlas
+;
+fr_FR.DescriptionLaunchScilab =Démarrer Scilab
+;
+fr_FR.DescriptionCreateDesktopIcon =Créer un icône sur le bureau
+;
+fr_FR.DescriptionQuickLaunch =Créer un raccourci dans la barre d'exécution rapide
+;
+fr_FR.DescriptionAssociateSceSci =Associer les fichiers *.sce, *.sci avec Scilab
+;
+fr_FR.DescriptionAssociateTstDem =Associer les fichiers *.tst avec Scilab
+;
+fr_FR.DescriptionAssociateBinSav =Associer les fichiers *.bin, *.sav avec Scilab
+;
+fr_FR.DescriptionAssociateGraph =Associer les fichiers *.graph *.graphb avec Scilab
+;
+fr_FR.DescriptionAssociateScicos =Associer les fichiers *.xcos *.cos *.cosf *.zcos avec Scilab
+;
+fr_FR.DescriptionAssociateSOD =Associer les fichiers *.sod avec Scilab
+;
+fr_FR.DescriptionDefaultInstall =Installation (Par défaut)
+fr_FR.DescriptionFullInstall =Installation Complète
+fr_FR.DescriptionCustomInstall =Installation avancée
+fr_FR.DescriptionCLIInstall =Ligne de commandes uniquement (sans interface graphique)
+;
+fr_FR.DescriptionCPUOptimization =Optimisation CPU pour Scilab
+fr_FR.DescriptionATLASLibrary =Bibliothèque Atlas pour Scilab
+fr_FR.DescriptionRefBlasLibrary =Bibliothèque Blas, Lapack de référence pour Scilab
+fr_FR.DescriptionMKLLibrary =Télécharger la bibliothèque Intel Math Kernel Library pour Scilab
+;
+fr_FR.DownloadMKLLabel =Téléchargement des fichiers Intel Math Kernel Library pour Scilab
+fr_FR.DownloadMKLDescription =Merci de patienter durant le téléchargement de fichiers.
+;
+fr_FR.DownloadMKLFFTWLabel =Téléchargement de la bibliothèque FFTW3 optimisée par Intel Math Kernel Library.
+;
+fr_FR.DoTasksJustAfterInstallMsg2 =Les bibliothèques de référence BLAS, LAPACK seront installées et utilisées.
+fr_FR.DoTasksJustAfterInstallMsg3 =La bibliothèque de référence FFTW3 sera installée et utilisée.
+;
+fr_FR.NextButtonClickwpReadyMsg1 =Impossible de télécharger la bibliothèque Intel Math Kernel pour Scilab (La bibliothèque par défaut sera utilisée).
+fr_FR.NextButtonClickwpReadyMsg2 =Impossible de télécharger la bibliothèque FFTW3 optimisée par Intel Math Kernel Library (La bibliothèque par défaut sera utilisée).
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/icons.iss b/tools/innosetup/icons.iss
new file mode 100755
index 000000000..97df29006
--- /dev/null
+++ b/tools/innosetup/icons.iss
@@ -0,0 +1,29 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+Name: {commondesktop}\{#ScilabName}; Filename: {code:getExecNameForDesktop};Parameters: "-nwni";WorkingDir: "%USERPROFILE%\Documents";Comment: "Start Scilab - The open source platform for numerical computation"; MinVersion: 4,4; Tasks: desktopicon;Components: not {#COMPN_JVM_MODULE};
+Name: {commondesktop}\{#ScilabName}; Filename: {code:getExecNameForDesktop};WorkingDir: "%USERPROFILE%\Documents";Comment: "Start Scilab - The open source platform for numerical computation"; MinVersion: 4,4; Tasks: desktopicon;Components: {#COMPN_JVM_MODULE};
+;
+Name: {group}\{#ScilabName}; Filename: {code:getExecNameForDesktop};Parameters: "-nwni";WorkingDir: "%USERPROFILE%\Documents";Components: not {#COMPN_JVM_MODULE};
+Name: {group}\{#ScilabName}; Filename: {code:getExecNameForDesktop};WorkingDir: "%USERPROFILE%\Documents";Components: {#COMPN_JVM_MODULE};
+
+Name: {group}\{cm:ConsoleIconName}; Filename: {app}\bin\scilex.exe;WorkingDir: "%USERPROFILE%\Documents";Components: {#COMPN_JVM_MODULE};
+;
+Name: "{group}\{cm:WebIconScilab}"; Filename: "{app}\scilabwebsite.url";
+
+Name: {group}\{cm:UnInstallIcon}; Filename: {uninstallexe};
+;
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/ini.iss b/tools/innosetup/ini.iss
new file mode 100755
index 000000000..b19253bcd
--- /dev/null
+++ b/tools/innosetup/ini.iss
@@ -0,0 +1,17 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+Filename: {app}\scilabwebsite.url; Section: InternetShortcut; Key: "URL"; String: "http://www.scilab.org"; Check: DoTasksJustAfterInstall
+;-------------------------------------------------------------------------------
+
diff --git a/tools/innosetup/it_IT_scilab.isl b/tools/innosetup/it_IT_scilab.isl
new file mode 100755
index 000000000..c8fe1ece1
--- /dev/null
+++ b/tools/innosetup/it_IT_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+it_IT.LANGUAGE =it_IT
+
+it_IT.MsgBoxJRENotFound =Java Runtime Environment not detected.
+it_IT.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+it_IT.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+it_IT.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+it_IT.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+it_IT.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+it_IT.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+it_IT.MsgBoxWebOpen =Can not open web page.
+it_IT.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+it_IT.MsgBoxDevToolsRequired2 =Please install development_tools module.
+it_IT.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+it_IT.MsgBoxTclsciRequired2 =Please install tclsci module.
+it_IT.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+it_IT.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+it_IT.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+it_IT.MsgBoxFftw4 =Can not open web page.
+it_IT.MsgBoxWinVer =Windows 2000 is required.
+it_IT.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+it_IT.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+it_IT.ButtonAboutModules =&About modules ...
+;
+it_IT.DescriptionEquDif =Differential Equations Module
+it_IT.DescriptionInterpolation =Interpolation Module
+it_IT.DescriptionPolynomials =Polynomials Module
+it_IT.DescriptionSymbolic =Symbolic Module
+it_IT.DescriptionStats =Statistics Module
+it_IT.DescriptionSparse =Sparse Matrix Module
+it_IT.DescriptionLinAlg =Linear Algebra Module
+it_IT.DescriptionSigProc =Signal processing Module
+it_IT.DescriptionCacsd =C.A.C.S.D Module
+it_IT.DescriptionGraphics =Graphics Module
+it_IT.DescriptionOptim =Optimization Module
+it_IT.DescriptionMetanet =Metanet Toolbox
+it_IT.DescriptionScicos =Scicos Toolbox
+it_IT.DescriptionArnoldi =ARnoldi PACKage Toolbox
+it_IT.DescriptionUmfpack =UMFPACK for Scilab
+it_IT.DescriptionCompatFunctions =Compatibility functions
+it_IT.DescriptionM2sci =M2SCI Toolbox
+it_IT.DescriptionMatio =MAT File Input/Output Toolbox
+it_IT.DescriptionExternalObjects =External objects
+it_IT.DescriptionSound =Sound file handling Toolbox
+it_IT.DescriptionRandlib =Randlib Toolbox
+it_IT.DescriptionMexlib =Mexlib Tools
+it_IT.DescriptionIntersci =Intersci Toolbox
+it_IT.DescriptionTclTK =TCL/TK in Scilab
+it_IT.DescriptionSpreadsheet =Spreadsheet Toolbox
+it_IT.DescriptionJVM =Java Runtime
+it_IT.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+it_IT.DescriptionFftwModule =FFTW interface for Scilab
+it_IT.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+it_IT.DescriptionRefFftwLibrary =Reference FFTW library
+it_IT.DescriptionParametersTlbx =Parameters Toolbox
+it_IT.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+it_IT.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+it_IT.DescriptionDevTools =Development Tools
+it_IT.DescriptionTests =Tests for Scilab
+it_IT.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+it_IT.DescriptionComConnector =COM connector
+it_IT.DescriptionSciNotes =SciNotes: Editor for Scilab
+it_IT.DescriptionXcos =Xcos
+it_IT.DescriptionParallel =Parallel Computing with Scilab
+it_IT.DescriptionModulesManager =Tools for management of extern modules
+it_IT.DescriptionModuleJVM =JVM Module
+;
+it_IT.ConsoleIconName =Scilab Console
+;
+it_IT.WebIconScilab =Scilab on the Web
+;
+it_IT.ReadMeIcon =Read Me
+;
+it_IT.UnInstallIcon =Uninstall Scilab
+;
+it_IT.RegKeyRunWith =Run with
+;
+it_IT.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+it_IT.DescriptionConfigureAtlas =Configure Atlas
+;
+it_IT.DescriptionLaunchScilab =Launch Scilab
+;
+it_IT.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+it_IT.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+it_IT.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+it_IT.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+it_IT.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+it_IT.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+it_IT.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+it_IT.DescriptionDefaultInstall =Installation (Default)
+it_IT.DescriptionFullInstall =Full installation
+it_IT.DescriptionCustomInstall =Custom installation
+it_IT.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+it_IT.DescriptionCPUOptimization =CPU Optimization for Scilab
+it_IT.DescriptionATLASLibrary =Atlas Library for Scilab
+it_IT.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+it_IT.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+it_IT.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+it_IT.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+it_IT.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+it_IT.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+it_IT.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+it_IT.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+it_IT.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+it_IT.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+; \ No newline at end of file
diff --git a/tools/innosetup/ja_JP.isl b/tools/innosetup/ja_JP.isl
new file mode 100755
index 000000000..a5772d350
--- /dev/null
+++ b/tools/innosetup/ja_JP.isl
@@ -0,0 +1,312 @@
+; *** Inno Setup version 5.1.11+ Japanese messages ***
+;
+; Translated by Ryou Minakami (ryou32jp@yahoo.co.jp)
+; Fixes and updates: Koichi Shirasuka (shirasuka@eugrid.co.jp)
+;
+; $jrsoftware: issrc/Files/Default.isl,v 1.66 2005/02/25 20:23:48 mlaan Exp $
+
+[LangOptions]
+LanguageName=Japanese
+LanguageID=$0411
+LanguageCodePage=932
+
+; If you don't need to support Windows 9x, commenting the following 4 lines gives better looking (banners not stretched).
+DialogFontName=‚l‚r ‚oƒSƒVƒbƒN
+DialogFontSize=9
+TitleFontName=‚l‚r ‚oƒSƒVƒbƒN
+TitleFontSize=29
+
+; Required for Win2K/older to display the welcome message with correct font.
+WelcomeFontName=‚l‚r ‚oƒSƒVƒbƒN
+WelcomeFontSize=12
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=ƒZƒbƒgƒAƒbƒv
+SetupWindowTitle=%1 ƒZƒbƒgƒAƒbƒv
+UninstallAppTitle=ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹
+UninstallAppFullTitle=%1 ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹
+
+; *** Misc. common
+InformationTitle=î•ñ
+ConfirmTitle=Šm”F
+ErrorTitle=ƒGƒ‰[
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=%1 ‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B‘±s‚µ‚Ü‚·‚©H
+LdrCannotCreateTemp=ˆêŽžƒtƒ@ƒCƒ‹‚ð쬂ł«‚Ü‚¹‚ñBƒZƒbƒgƒAƒbƒv‚𒆎~‚µ‚Ü‚·B
+LdrCannotExecTemp=ˆêŽžƒtƒHƒ‹ƒ_‚̃tƒ@ƒCƒ‹‚ðŽÀs‚Å‚«‚Ü‚¹‚ñBƒZƒbƒgƒAƒbƒv‚𒆎~‚µ‚Ü‚·B
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%nƒGƒ‰[ %2: %3
+SetupFileMissing=ƒtƒ@ƒCƒ‹ %1 ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB–â‘è‚ð‰ðŒˆ‚·‚é‚©V‚µ‚¢ƒZƒbƒgƒAƒbƒvƒvƒƒOƒ‰ƒ€‚ð“üŽè‚µ‚Ä‚­‚¾‚³‚¢B
+SetupFileCorrupt=ƒZƒbƒgƒAƒbƒvƒtƒ@ƒCƒ‹‚ª‰ó‚ê‚Ä‚¢‚Ü‚·BV‚µ‚¢ƒZƒbƒgƒAƒbƒvƒvƒƒOƒ‰ƒ€‚ð“üŽè‚µ‚Ä‚­‚¾‚³‚¢B
+SetupFileCorruptOrWrongVer=ƒZƒbƒgƒAƒbƒvƒtƒ@ƒCƒ‹‚ª‰ó‚ê‚Ä‚¢‚é‚©A‚±‚̃o[ƒWƒ‡ƒ“‚̃ZƒbƒgƒAƒbƒv‚ƌ݊·«‚ª‚ ‚è‚Ü‚¹‚ñB–â‘è‚ð‰ðŒˆ‚·‚é‚©V‚µ‚¢ƒZƒbƒgƒAƒbƒvƒvƒƒOƒ‰ƒ€‚ð“üŽè‚µ‚Ä‚­‚¾‚³‚¢B
+NotOnThisPlatform=‚±‚̃vƒƒOƒ‰ƒ€‚Í %1 ‚Å‚Í“®ì‚µ‚Ü‚¹‚ñB
+OnlyOnThisPlatform=‚±‚̃vƒƒOƒ‰ƒ€‚ÌŽÀs‚É‚Í %1 ‚ª•K—v‚Å‚·B
+OnlyOnTheseArchitectures=‚±‚̃vƒƒOƒ‰ƒ€‚Í%n%n%1ƒvƒƒZƒbƒTŒü‚¯‚ÌWindows‚É‚µ‚©ƒCƒ“ƒXƒg[ƒ‹‚Å‚«‚Ü‚¹‚ñB
+MissingWOW64APIs=ŒäŽg—p’†‚Ì64-bit”ÅWindows‚É‚Í‚±‚̃vƒƒOƒ‰ƒ€‚ðƒCƒ“ƒXƒg[ƒ‹‚µA“®ì‚³‚¹‚éˆ×‚É•K—v‚È‹@”\‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚¹‚ñB‚±‚Ì–â‘è‚ðC³‚·‚éˆ×‚ɂ̓T[ƒrƒXƒpƒbƒN%1‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚­‚¾‚³‚¢B
+WinVersionTooLowError=‚±‚̃vƒƒOƒ‰ƒ€‚ÌŽÀs‚É‚Í %1 %2 ˆÈ~‚ª•K—v‚Å‚·B
+WinVersionTooHighError=‚±‚̃vƒƒOƒ‰ƒ€‚Í %1 %2 ˆÈ~‚Å‚Í“®ì‚µ‚Ü‚¹‚ñB
+AdminPrivilegesRequired=‚±‚̃vƒƒOƒ‰ƒ€‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚邽‚ß‚É‚ÍŠÇ—ŽÒ‚Æ‚µ‚ăƒOƒCƒ“‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
+PowerUserPrivilegesRequired=‚±‚̃vƒƒOƒ‰ƒ€‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚邽‚ß‚É‚ÍŠÇ—ŽÒ‚Ü‚½‚̓pƒ[ƒ†[ƒU[‚Æ‚µ‚ăƒOƒCƒ“‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
+SetupAppRunningError=ƒZƒbƒgƒAƒbƒv‚ÍŽÀs’†‚Ì %1 ‚ðŒŸo‚µ‚Ü‚µ‚½B%n%nŠJ‚¢‚Ä‚¢‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ð‚·‚×‚Ä•Â‚¶‚Ä‚©‚çuOKv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢BuƒLƒƒƒ“ƒZƒ‹v‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒZƒbƒgƒAƒbƒv‚ðI—¹‚µ‚Ü‚·B
+UninstallAppRunningError=ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ÍŽÀs’†‚Ì %1 ‚ðŒŸo‚µ‚Ü‚µ‚½B%n%nŠJ‚¢‚Ä‚¢‚éƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ð‚·‚×‚Ä•Â‚¶‚Ä‚©‚çuOKv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢BuƒLƒƒƒ“ƒZƒ‹v‚ðƒNƒŠƒbƒN‚·‚é‚ÆAƒZƒbƒgƒAƒbƒv‚ðI—¹‚µ‚Ü‚·B
+
+; *** Misc. errors
+ErrorCreatingDir=ƒfƒBƒŒƒNƒgƒŠ %1 ‚ð쬒†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B
+ErrorTooManyFilesInDir=ƒfƒBƒŒƒNƒgƒŠ %1 ‚Ƀtƒ@ƒCƒ‹‚ð쬒†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½Bƒtƒ@ƒCƒ‹‚Ì”‚ª‘½‚·‚¬‚Ü‚·B
+
+; *** Setup common messages
+ExitSetupTitle=ƒZƒbƒgƒAƒbƒvI—¹
+ExitSetupMessage=ƒZƒbƒgƒAƒbƒvì‹Æ‚ÍŠ®—¹‚µ‚Ä‚¢‚Ü‚¹‚ñB‚±‚±‚ŃZƒbƒgƒAƒbƒv‚𒆎~‚·‚é‚ƃvƒƒOƒ‰ƒ€‚̓Cƒ“ƒXƒg[ƒ‹‚³‚ê‚Ü‚¹‚ñB%n%n‰ü‚߂ăCƒ“ƒXƒg[ƒ‹‚·‚éꇂÍA‚à‚¤ˆê“xƒZƒbƒgƒAƒbƒv‚ðŽÀs‚µ‚Ä‚­‚¾‚³‚¢B%n%nƒZƒbƒgƒAƒbƒv‚ðI—¹‚µ‚Ü‚·‚©H
+AboutSetupMenuItem=ƒZƒbƒgƒAƒbƒv‚ɂ‚¢‚Ä(&A)...
+AboutSetupTitle=ƒZƒbƒgƒAƒbƒv‚ɂ‚¢‚Ä
+AboutSetupMessage=%1 %2%n%3%n%n%1 ƒz[ƒ€ƒy[ƒW:%n%4
+AboutSetupNote=
+TranslatorNote=
+
+; *** Buttons
+ButtonBack=< –ß‚é(&B)
+ButtonNext=ŽŸ‚Ö(&N) >
+ButtonInstall=ƒCƒ“ƒXƒg[ƒ‹(&I)
+ButtonOK=OK
+ButtonCancel=ƒLƒƒƒ“ƒZƒ‹
+ButtonYes=‚Í‚¢(&Y)
+ButtonYesToAll=‚·‚ׂĂ͂¢(&A)
+ButtonNo=‚¢‚¢‚¦(&N)
+ButtonNoToAll=‚·‚ׂĂ¢‚¢‚¦(&O)
+ButtonFinish=Š®—¹(&F)
+ButtonBrowse=ŽQÆ(&B)...
+ButtonWizardBrowse=ŽQÆ(&r)
+ButtonNewFolder=V‚µ‚¢ƒtƒHƒ‹ƒ_(&M)
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=ƒZƒbƒgƒAƒbƒv‚ÉŽg—p‚·‚錾Œê‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B
+SelectLanguageLabel=ƒCƒ“ƒXƒg[ƒ‹’†‚É—˜—p‚·‚錾Œê‚ðï‚Ñ‚Ü‚·:
+
+; *** Common wizard text
+ClickNext=‘±s‚·‚é‚É‚ÍuŽŸ‚ÖvAƒZƒbƒgƒAƒbƒv‚ðI—¹‚·‚é‚É‚ÍuƒLƒƒƒ“ƒZƒ‹v‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+BeveledLabel=
+BrowseDialogTitle=ƒtƒHƒ‹ƒ_ŽQÆ
+BrowseDialogLabel=ƒŠƒXƒg‚©‚çƒtƒHƒ‹ƒ_‚ð‘I‚ÑOK‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B
+NewFolderName=V‚µ‚¢ƒtƒHƒ‹ƒ_
+
+; *** "Welcome" wizard page
+WelcomeLabel1=[name] ƒZƒbƒgƒAƒbƒvƒEƒBƒU[ƒh‚ÌŠJŽn
+WelcomeLabel2=‚±‚̃vƒƒOƒ‰ƒ€‚Í‚²Žg—p‚̃Rƒ“ƒsƒ…[ƒ^‚Ö [name/ver] ‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·B%n%n‘±s‚·‚é‘O‚É‘¼‚̃AƒvƒŠƒP[ƒVƒ‡ƒ“‚ð‚·‚×‚ÄI—¹‚µ‚Ä‚­‚¾‚³‚¢B
+
+; *** "Password" wizard page
+WizardPassword=ƒpƒXƒ[ƒh
+PasswordLabel1=‚±‚̃Cƒ“ƒXƒg[ƒ‹ƒvƒƒOƒ‰ƒ€‚̓pƒXƒ[ƒh‚É‚æ‚Á‚ĕی삳‚ê‚Ä‚¢‚Ü‚·B
+PasswordLabel3=ƒpƒXƒ[ƒh‚ð“ü—Í‚µ‚ÄuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢BƒpƒXƒ[ƒh‚͑啶Žš‚Ƭ•¶Žš‚ª‹æ•Ê‚³‚ê‚Ü‚·B
+PasswordEditLabel=ƒpƒXƒ[ƒh(&P):
+IncorrectPassword=“ü—Í‚³‚ꂽƒpƒXƒ[ƒh‚ª³‚µ‚­‚ ‚è‚Ü‚¹‚ñB‚à‚¤ˆê“x“ü—Í‚µ‚È‚¨‚µ‚Ä‚­‚¾‚³‚¢B
+
+; *** "License Agreement" wizard page
+WizardLicense=Žg—p‹–‘øŒ_–ñ‘‚Ì“¯ˆÓ
+LicenseLabel=‘±s‚·‚é‘O‚Ɉȉº‚Ìd—v‚Èî•ñ‚ð‚¨“Ç‚Ý‚­‚¾‚³‚¢B
+LicenseLabel3=ˆÈ‰º‚ÌŽg—p‹–‘øŒ_–ñ‘‚ð‚¨“Ç‚Ý‚­‚¾‚³‚¢BƒCƒ“ƒXƒg[ƒ‹‚ð‘±s‚·‚é‚É‚Í‚±‚ÌŒ_–ñ‘‚É“¯ˆÓ‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
+LicenseAccepted=“¯ˆÓ‚·‚é(&A)
+LicenseNotAccepted=“¯ˆÓ‚µ‚È‚¢(&D)
+
+; *** "Information" wizard pages
+WizardInfoBefore=î•ñ
+InfoBeforeLabel=‘±s‚·‚é‘O‚Ɉȉº‚Ìd—v‚Èî•ñ‚ð‚¨“Ç‚Ý‚­‚¾‚³‚¢B
+InfoBeforeClickLabel=ƒZƒbƒgƒAƒbƒv‚ð‘±s‚·‚é‚É‚ÍuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+WizardInfoAfter=î•ñ
+InfoAfterLabel=‘±s‚·‚é‘O‚Ɉȉº‚Ìd—v‚Èî•ñ‚ð‚¨“Ç‚Ý‚­‚¾‚³‚¢B
+InfoAfterClickLabel=ƒZƒbƒgƒAƒbƒv‚ð‘±s‚·‚é‚É‚ÍuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+
+; *** "User Information" wizard page
+WizardUserInfo=ƒ†[ƒU[î•ñ
+UserInfoDesc=ƒ†[ƒU[î•ñ‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B
+UserInfoName=ƒ†[ƒU[–¼(&U):
+UserInfoOrg=‘gD(&O):
+UserInfoSerial=ƒVƒŠƒAƒ‹”Ô†(&S):
+UserInfoNameRequired=ƒ†[ƒU[–¼‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=ƒCƒ“ƒXƒg[ƒ‹æ‚ÌŽw’è
+SelectDirDesc=[name] ‚̃Cƒ“ƒXƒg[ƒ‹æ‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B
+SelectDirLabel3=[name] ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚éƒtƒHƒ‹ƒ_‚ðŽw’肵‚ÄAuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+SelectDirBrowseLabel=‘±‚¯‚é‚É‚ÍuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B•Ê‚̃tƒHƒ‹ƒ_‚ð‘I‘ð‚·‚é‚É‚ÍuŽQÆv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+DiskSpaceMBLabel=‚±‚̃vƒƒOƒ‰ƒ€‚ÍÅ’á [mb] MB‚̃fƒBƒXƒN‹ó‚«—̈æ‚ð•K—v‚Æ‚µ‚Ü‚·B
+ToUNCPathname=ƒZƒbƒgƒAƒbƒv‚ÍUNCƒtƒHƒ‹ƒ_‚ɃCƒ“ƒXƒg[ƒ‹‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñBƒlƒbƒgƒ[ƒN‚ɃCƒ“ƒXƒg[ƒ‹‚·‚éꇂ̓lƒbƒgƒ[ƒNƒhƒ‰ƒCƒu‚ÉŠ„‚è“–‚Ä‚Ä‚­‚¾‚³‚¢B
+InvalidPath=ƒhƒ‰ƒCƒu•¶Žš‚ðŠÜ‚ÞŠ®‘S‚ȃpƒX‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B%n%n—áFC:\APP%n%n‚Ü‚½‚ÍUNCŒ`Ž®‚̃pƒX‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B%n%n—áF\\server\share
+InvalidDrive=Žw’肵‚½ƒhƒ‰ƒCƒu‚Ü‚½‚ÍUNCƒpƒX‚ªŒ©‚‚©‚ç‚È‚¢‚©ƒAƒNƒZƒX‚Å‚«‚Ü‚¹‚ñB•Ê‚̃pƒX‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B
+DiskSpaceWarningTitle=ƒfƒBƒXƒN‹ó‚«—̈æ‚Ì•s‘«
+DiskSpaceWarning=ƒCƒ“ƒXƒg[ƒ‹‚É‚ÍÅ’á %1 KB‚̃fƒBƒXƒN‹ó‚«—̈悪•K—v‚Å‚·‚ªAŽw’肳‚ꂽƒhƒ‰ƒCƒu‚É‚Í %2 KB‚̋󂫗̈悵‚©‚ ‚è‚Ü‚¹‚ñB%n%n‚±‚Ì‚Ü‚Ü‘±s‚µ‚Ü‚·‚©H
+DirNameTooLong=ƒhƒ‰ƒCƒu–¼–”‚̓pƒX‚ª’·‰ß‚¬‚Ü‚·B
+InvalidDirName=ƒtƒHƒ‹ƒ_–¼‚ª–³Œø‚Å‚·B
+BadDirName32=ˆÈ‰º‚Ì•¶Žš‚ðŠÜ‚ÞƒtƒHƒ‹ƒ_–¼‚ÍŽw’è‚Å‚«‚Ü‚¹‚ñB:%n%n%1
+DirExistsTitle=Šù‘¶‚̃tƒHƒ‹ƒ_
+DirExists=ƒtƒHƒ‹ƒ_ %n%n%1%n%n‚ªŠù‚É‘¶Ý‚µ‚Ü‚·B‚±‚Ì‚Ü‚Ü‚±‚̃tƒHƒ‹ƒ_‚ÖƒCƒ“ƒXƒg[ƒ‹‚µ‚Ü‚·‚©H
+DirDoesntExistTitle=ƒtƒHƒ‹ƒ_‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB
+DirDoesntExist=ƒtƒHƒ‹ƒ_ %n%n%1%n%n‚ªŒ©‚‚©‚è‚Ü‚¹‚ñBV‚µ‚¢ƒtƒHƒ‹ƒ_‚ð쬂µ‚Ü‚·‚©H
+
+; *** "Select Components" wizard page
+WizardSelectComponents=ƒRƒ“ƒ|[ƒlƒ“ƒg‚Ì‘I‘ð
+SelectComponentsDesc=ƒCƒ“ƒXƒg[ƒ‹ƒRƒ“ƒ|[ƒlƒ“ƒg‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B
+SelectComponentsLabel2=ƒCƒ“ƒXƒg[ƒ‹‚·‚éƒRƒ“ƒ|[ƒlƒ“ƒg‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢BƒCƒ“ƒXƒg[ƒ‹‚·‚é•K—v‚Ì‚È‚¢ƒRƒ“ƒ|[ƒlƒ“ƒg‚̓`ƒFƒbƒN‚ðŠO‚µ‚Ä‚­‚¾‚³‚¢B‘±s‚·‚é‚É‚ÍuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+FullInstallation=ƒtƒ‹ƒCƒ“ƒXƒg[ƒ‹
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=ƒRƒ“ƒpƒNƒgƒCƒ“ƒXƒg[ƒ‹
+CustomInstallation=ƒJƒXƒ^ƒ€ƒCƒ“ƒXƒg[ƒ‹
+NoUninstallWarningTitle=Šù‘¶‚̃Rƒ“ƒ|[ƒlƒ“ƒg
+NoUninstallWarning=ƒZƒbƒgƒAƒbƒv‚͈ȉº‚̃Rƒ“ƒ|[ƒlƒ“ƒg‚ªŠù‚ɃCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚邱‚Æ‚ðŒŸo‚µ‚Ü‚µ‚½B%n%n%1%n%n‚±‚ê‚ç‚̃Rƒ“ƒ|[ƒlƒ“ƒg‚Ì‘I‘ð‚ð‰ðœ‚µ‚Ä‚àƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Í‚³‚ê‚Ü‚¹‚ñB%n%n‚±‚Ì‚Ü‚Ü‘±s‚µ‚Ü‚·‚©H
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceMBLabel=Œ»Ý‚Ì‘I‘ð‚ÍÅ’á [mb] MB‚̃fƒBƒXƒN‹ó‚«—̈æ‚ð•K—v‚Æ‚µ‚Ü‚·B
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=’ljÁƒ^ƒXƒN‚Ì‘I‘ð
+SelectTasksDesc=ŽÀs‚·‚é’ljÁƒ^ƒXƒN‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B
+SelectTasksLabel2=[name] ƒCƒ“ƒXƒg[ƒ‹Žž‚ÉŽÀs‚·‚é’ljÁƒ^ƒXƒN‚ð‘I‘ð‚µ‚ÄAuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=ƒvƒƒOƒ‰ƒ€ƒOƒ‹[ƒv‚ÌŽw’è
+SelectStartMenuFolderDesc=ƒvƒƒOƒ‰ƒ€ƒAƒCƒRƒ“‚ð쬂·‚éꊂðŽw’肵‚Ä‚­‚¾‚³‚¢B
+SelectStartMenuFolderLabel3=ƒZƒbƒgƒAƒbƒv‚̓Xƒ^[ƒgƒƒjƒ…[‚ɃvƒƒOƒ‰ƒ€‚̃Vƒ‡[ƒgƒJƒbƒg‚ð쬂µ‚Ü‚·B
+SelectStartMenuFolderBrowseLabel=‘±‚¯‚é‚É‚ÍuŽŸ‚Öv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢Bˆá‚¤ƒfƒBƒŒƒNƒgƒŠ‚ð‘I‘ð‚·‚é‚É‚ÍuŽQÆv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+MustEnterGroupName=ƒOƒ‹[ƒv–¼‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B
+GroupNameTooLong=ƒtƒHƒ‹ƒ_–¼–”‚̓pƒX‚ª’·‰ß‚¬‚Ü‚·B
+InvalidGroupName=ƒOƒ‹[ƒv–¼‚ª–³Œø‚Å‚·B
+BadGroupName=ˆÈ‰º‚Ì•¶Žš‚ðŠÜ‚ÞƒOƒ‹[ƒv–¼‚ÍŽw’è‚Å‚«‚Ü‚¹‚ñB:%n%n%1
+NoProgramGroupCheck2=ƒvƒƒOƒ‰ƒ€ƒOƒ‹[ƒv‚ð쬂µ‚È‚¢(&D)
+
+; *** "Ready to Install" wizard page
+WizardReady=ƒCƒ“ƒXƒg[ƒ‹€”õŠ®—¹
+ReadyLabel1=‚²Žg—p‚̃Rƒ“ƒsƒ…[ƒ^‚Ö [name] ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚途õ‚ª‚Å‚«‚Ü‚µ‚½B
+ReadyLabel2a=ƒCƒ“ƒXƒg[ƒ‹‚ð‘±s‚·‚é‚É‚ÍuƒCƒ“ƒXƒg[ƒ‹v‚ðAÝ’è‚ÌŠm”F‚â•ÏX‚ðs‚¤‚É‚Íu–ß‚év‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+ReadyLabel2b=ƒCƒ“ƒXƒg[ƒ‹‚ð‘±s‚·‚é‚É‚ÍuƒCƒ“ƒXƒg[ƒ‹v‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+ReadyMemoUserInfo=ƒ†[ƒU[î•ñ:
+ReadyMemoDir=ƒCƒ“ƒXƒg[ƒ‹æ:
+ReadyMemoType=ƒZƒbƒgƒAƒbƒv‚ÌŽí—Þ:
+ReadyMemoComponents=‘I‘ðƒRƒ“ƒ|[ƒlƒ“ƒg:
+ReadyMemoGroup=ƒvƒƒOƒ‰ƒ€ƒOƒ‹[ƒv:
+ReadyMemoTasks=’ljÁƒ^ƒXƒNˆê——:
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=ƒCƒ“ƒXƒg[ƒ‹€”õ’†
+PreparingDesc=‚²Žg—p‚̃Rƒ“ƒsƒ…[ƒ^‚Ö [name] ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚途õ‚ð‚µ‚Ä‚¢‚Ü‚·B
+PreviousInstallNotCompleted=‘O‰ñs‚Á‚½ƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚̃Cƒ“ƒXƒg[ƒ‹‚Ü‚½‚Í휂ªŠ®—¹‚µ‚Ä‚¢‚Ü‚¹‚ñBŠ®—¹‚·‚é‚ɂ̓Rƒ“ƒsƒ…[ƒ^‚ðÄ‹N“®‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B%n%n[name] ‚̃Cƒ“ƒXƒg[ƒ‹‚ðŠ®—¹‚·‚邽‚ß‚É‚ÍAÄ‹N“®Œã‚É‚à‚¤ˆê“xƒZƒbƒgƒAƒbƒv‚ðŽÀs‚µ‚Ä‚­‚¾‚³‚¢B
+CannotContinue=ƒZƒbƒgƒAƒbƒv‚ð‘±s‚Å‚«‚Ü‚¹‚ñBuƒLƒƒƒ“ƒZƒ‹v‚ðƒNƒŠƒbƒN‚µ‚ăZƒbƒgƒAƒbƒv‚ðI—¹‚µ‚Ä‚­‚¾‚³‚¢B
+
+; *** "Installing" wizard page
+WizardInstalling=ƒCƒ“ƒXƒg[ƒ‹ó‹µ
+InstallingLabel=‚²Žg—p‚̃Rƒ“ƒsƒ…[ƒ^‚É [name] ‚ðƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚¢‚Ü‚·B‚µ‚΂炭‚¨‘Ò‚¿‚­‚¾‚³‚¢B
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=[name] ƒZƒbƒgƒAƒbƒvƒEƒBƒU[ƒh‚ÌŠ®—¹
+FinishedLabelNoIcons=‚²Žg—p‚̃Rƒ“ƒsƒ…[ƒ^‚É [name] ‚ªƒZƒbƒgƒAƒbƒv‚³‚ê‚Ü‚µ‚½B
+FinishedLabel=‚²Žg—p‚̃Rƒ“ƒsƒ…[ƒ^‚É [name] ‚ªƒZƒbƒgƒAƒbƒv‚³‚ê‚Ü‚µ‚½BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚ðŽÀs‚·‚é‚ɂ̓Cƒ“ƒXƒg[ƒ‹‚³‚ꂽƒAƒCƒRƒ“‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B
+ClickFinish=ƒZƒbƒgƒAƒbƒv‚ðI—¹‚·‚é‚É‚ÍuŠ®—¹v‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+FinishedRestartLabel=[name] ‚̃Cƒ“ƒXƒg[ƒ‹‚ðŠ®—¹‚·‚邽‚ß‚É‚ÍAƒRƒ“ƒsƒ…[ƒ^‚ðÄ‹N“®‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚·‚®‚ÉÄ‹N“®‚µ‚Ü‚·‚©H
+FinishedRestartMessage=[name] ‚̃Cƒ“ƒXƒg[ƒ‹‚ðŠ®—¹‚·‚邽‚ß‚É‚ÍAƒRƒ“ƒsƒ…[ƒ^‚ðÄ‹N“®‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B%n%n‚·‚®‚ÉÄ‹N“®‚µ‚Ü‚·‚©H
+ShowReadmeCheck=READMEƒtƒ@ƒCƒ‹‚ð•\Ž¦‚·‚éB
+YesRadio=‚·‚®Ä‹N“®(&Y)
+NoRadio=Œã‚ÅŽè“®‚ÅÄ‹N“®(&N)
+; used for example as 'Run MyProg.exe'
+RunEntryExec=%1 ‚ÌŽÀs
+; used for example as 'View Readme.txt'
+RunEntryShellExec=%1 ‚Ì•\Ž¦
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=ƒfƒBƒXƒN‚Ì‘}“ü
+SelectDiskLabel2=ƒfƒBƒXƒN %1 ‚ð‘}“ü‚µAuOKv‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B%n%n‚±‚̃fƒBƒXƒN‚̃tƒ@ƒCƒ‹‚ª‰º‚É•\Ž¦‚³‚ê‚Ä‚¢‚éƒtƒHƒ‹ƒ_ˆÈŠO‚Ìꊂɂ ‚éꇂÍA³‚µ‚¢ƒpƒX‚ð“ü—Í‚·‚é‚©uŽQÆvƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+PathLabel=ƒpƒX(&P):
+FileNotInDir2=ƒtƒ@ƒCƒ‹ %1 ‚ª %2 ‚ÉŒ©‚‚©‚è‚Ü‚¹‚ñB³‚µ‚¢ƒfƒBƒXƒN‚ð‘}“ü‚·‚é‚©A•Ê‚̃tƒHƒ‹ƒ_‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B
+SelectDirectoryLabel=ŽŸ‚̃fƒBƒXƒN‚Ì‚ ‚éꊂðŽw’肵‚Ä‚­‚¾‚³‚¢B
+
+; *** Installation phase messages
+SetupAborted=ƒZƒbƒgƒAƒbƒv‚ÍŠ®—¹‚µ‚Ä‚¢‚Ü‚¹‚ñB%n%n–â‘è‚ð‰ðŒˆ‚µ‚Ä‚©‚çA‚à‚¤ˆê“xƒZƒbƒgƒAƒbƒv‚ðŽÀs‚µ‚Ä‚­‚¾‚³‚¢B
+EntryAbortRetryIgnore=‚à‚¤ˆê“x‚â‚è‚È‚¨‚·‚É‚ÍuÄŽŽsvAƒGƒ‰[‚𖳎‹‚µ‚Ä‘±s‚·‚é‚É‚Íu–³Ž‹vAƒCƒ“ƒXƒg[ƒ‹‚𒆎~‚·‚é‚É‚Íu’†Ž~v‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+
+; *** Installation status messages
+StatusCreateDirs=ƒtƒHƒ‹ƒ_‚ð쬂µ‚Ä‚¢‚Ü‚·...
+StatusExtractFiles=ƒtƒ@ƒCƒ‹‚ð“WŠJ‚µ‚Ä‚¢‚Ü‚·...
+StatusCreateIcons=ƒVƒ‡|ƒgƒJƒbƒg‚ð쬂µ‚Ä‚¢‚Ü‚·...
+StatusCreateIniEntries=INIƒtƒ@ƒCƒ‹‚ðݒ肵‚Ä‚¢‚Ü‚·...
+StatusCreateRegistryEntries=ƒŒƒWƒXƒgƒŠ‚ðݒ肵‚Ä‚¢‚Ü‚·...
+StatusRegisterFiles=ƒtƒ@ƒCƒ‹‚ð“o˜^‚µ‚Ä‚¢‚Ü‚·...
+StatusSavingUninstall=ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹î•ñ‚ð•Û‘¶‚µ‚Ä‚¢‚Ü‚·...
+StatusRunProgram=ƒCƒ“ƒXƒg[ƒ‹‚ðŠ®—¹‚µ‚Ä‚¢‚Ü‚·...
+StatusRollback=•ÏX‚ðŒ³‚É–ß‚µ‚Ä‚¢‚Ü‚·...
+
+; *** Misc. errors
+ErrorInternal2=“à•”ƒGƒ‰[: %1
+ErrorFunctionFailedNoCode=%1 ƒGƒ‰[
+ErrorFunctionFailed=%1 ƒGƒ‰[: ƒR[ƒh %2
+ErrorFunctionFailedWithMessage=%1 ƒGƒ‰[: ƒR[ƒh %2.%n%3
+ErrorExecutingProgram=ƒtƒ@ƒCƒ‹ŽÀsƒGƒ‰[:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=ƒŒƒWƒXƒgƒŠƒL[ƒI[ƒvƒ“ƒGƒ‰[:%n%1\%2
+ErrorRegCreateKey=ƒŒƒWƒXƒgƒŠƒL[쬃Gƒ‰[:%n%1\%2
+ErrorRegWriteKey=ƒŒƒWƒXƒgƒŠƒL[‘‚«ž‚݃Gƒ‰[:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=INIƒtƒ@ƒCƒ‹ƒGƒ“ƒgƒŠì¬ƒGƒ‰[: ƒtƒ@ƒCƒ‹ %1
+
+; *** File copying errors
+FileAbortRetryIgnore=‚à‚¤ˆê“x‚â‚è‚È‚¨‚·‚É‚ÍuÄŽŽsvA‚±‚̃tƒ@ƒCƒ‹‚ðƒXƒLƒbƒv‚µ‚Ä‘±s‚·‚é‚É‚Íu–³Ž‹vi„§‚³‚ê‚Ü‚¹‚ñjAƒCƒ“ƒXƒg[ƒ‹‚𒆎~‚·‚é‚É‚Íu’†Ž~v‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+FileAbortRetryIgnore2=‚à‚¤ˆê“x‚â‚è‚È‚¨‚·‚É‚ÍuÄŽŽsvA‚±‚̃tƒ@ƒCƒ‹‚ðƒXƒLƒbƒv‚µ‚Ä‘±s‚·‚é‚É‚Íu–³Ž‹vi„§‚³‚ê‚Ü‚¹‚ñjAƒCƒ“ƒXƒg[ƒ‹‚𒆎~‚·‚é‚É‚Íu’†Ž~v‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+SourceIsCorrupted=ƒRƒs[Œ³‚̃tƒ@ƒCƒ‹‚ª‰ó‚ê‚Ä‚¢‚Ü‚·B
+SourceDoesntExist=ƒRƒs[Œ³‚̃tƒ@ƒCƒ‹ %1 ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB
+ExistingFileReadOnly=Šù‘¶‚̃tƒ@ƒCƒ‹‚Í“Ç‚ÝŽæ‚èê—p‚Å‚·B%n%n“Ç‚ÝŽæ‚èê—p‘®«‚ð‰ðœ‚µ‚Ä‚à‚¤ˆê“x‚â‚è‚È‚¨‚·‚É‚ÍuÄŽŽsvA‚±‚̃tƒ@ƒCƒ‹‚ðƒXƒLƒbƒv‚µ‚Ä‘±s‚·‚é‚É‚Íu–³Ž‹vAƒCƒ“ƒXƒg[ƒ‹‚𒆎~‚·‚é‚É‚Íu’†Ž~v‚ðƒNƒŠƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B
+ErrorReadingExistingDest=Šù‘¶‚̃tƒ@ƒCƒ‹‚ð“Ç‚Ýž‚Ý’†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B:
+FileExists=ƒtƒ@ƒCƒ‹‚ÍŠù‚É‘¶Ý‚µ‚Ü‚·B%n%nã‘‚«‚µ‚Ü‚·‚©H
+ExistingFileNewer=ƒCƒ“ƒXƒg[ƒ‹‚µ‚悤‚Æ‚µ‚Ä‚¢‚éƒtƒ@ƒCƒ‹‚æ‚è‚àV‚µ‚¢ƒtƒ@ƒCƒ‹‚ª‘¶Ý‚µ‚Ü‚·BŠù‘¶‚̃tƒ@ƒCƒ‹‚ðŽc‚·‚±‚Æ‚ð‚¨§‚ß‚µ‚Ü‚·B%n%nŠù‘¶‚̃tƒ@ƒCƒ‹‚ðŽc‚µ‚Ü‚·‚©B
+ErrorChangingAttr=Šù‘¶ƒtƒ@ƒCƒ‹‚Ì‘®«‚ð•ÏX’†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B:
+ErrorCreatingTemp=ƒRƒs[æ‚̃tƒHƒ‹ƒ_‚Ƀtƒ@ƒCƒ‹‚ð쬒†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B:
+ErrorReadingSource=ƒRƒs[Œ³‚̃tƒ@ƒCƒ‹‚ð“Ç‚Ýž‚Ý’†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B:
+ErrorCopying=ƒtƒ@ƒCƒ‹‚ðƒRƒs[’†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B:
+ErrorReplacingExistingFile=Šù‘¶ƒtƒ@ƒCƒ‹‚ð’u‚«Š·‚¦’†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B:
+ErrorRestartReplace=’u‚«Š·‚¦ÄŠJ’†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B:
+ErrorRenamingTemp=ƒRƒs[æƒtƒHƒ‹ƒ_‚̃tƒ@ƒCƒ‹–¼‚ð•ÏX’†‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B:
+ErrorRegisterServer=DLL/OCX‚Ì“o˜^‚ÉŽ¸”s‚µ‚Ü‚µ‚½B: %1
+ErrorRegSvr32Failed=RegSvr32‚̓Gƒ‰[ƒR[ƒh %1 ‚É‚æ‚莸”s‚µ‚Ü‚µ‚½B
+ErrorRegisterTypeLib=ƒ^ƒCƒvƒ‰ƒCƒuƒ‰ƒŠ‚Ö‚Ì“o˜^‚ÉŽ¸”s‚µ‚Ü‚µ‚½B: %1
+
+; *** Post-installation errors
+ErrorOpeningReadme=READMEƒtƒ@ƒCƒ‹‚̃I[ƒvƒ“‚ÉŽ¸”s‚µ‚Ü‚µ‚½B
+ErrorRestartingComputer=ƒRƒ“ƒsƒ…[ƒ^‚ÌÄ‹N“®‚ÉŽ¸”s‚µ‚Ü‚µ‚½BŽè“®‚ÅÄ‹N“®‚µ‚Ä‚­‚¾‚³‚¢B
+
+; *** Uninstaller messages
+UninstallNotFound=ƒtƒ@ƒCƒ‹ %1 ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñBƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ðŽÀs‚Å‚«‚Ü‚¹‚ñB
+UninstallOpenError=ƒtƒ@ƒCƒ‹ %1 ‚ðŠJ‚¯‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñBƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ðŽÀs‚Å‚«‚Ü‚¹‚ñB
+UninstallUnsupportedVer=ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹ƒƒOƒtƒ@ƒCƒ‹ %1 ‚ÍA‚±‚̃o[ƒWƒ‡ƒ“‚̃Aƒ“ƒCƒ“ƒXƒg[ƒ‹ƒvƒƒOƒ‰ƒ€‚ª”FŽ¯‚Å‚«‚È‚¢Œ`Ž®‚Å‚·BƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ðŽÀs‚Å‚«‚Ü‚¹‚ñB
+UninstallUnknownEntry=ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹ƒƒO‚É•s–¾‚̃Gƒ“ƒgƒŠ %1 ‚ªŒ©‚‚©‚è‚Ü‚µ‚½B
+ConfirmUninstall=%1 ‚Æ‚»‚ÌŠÖ˜AƒRƒ“ƒ|[ƒlƒ“ƒg‚ð‚·‚×‚Ä휂µ‚Ü‚·B‚æ‚낵‚¢‚Å‚·‚©H
+UninstallOnlyOnWin64=‚±‚̃vƒƒOƒ‰ƒ€‚Í64-bit”ÅWindowsã‚ł̂݃Aƒ“ƒCƒ“ƒXƒg[ƒ‹‚Å‚«‰Â”\‚Å‚·B
+OnlyAdminCanUninstall=ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚·‚邽‚ß‚É‚ÍŠÇ—ŽÒŒ ŒÀ‚ª•K—v‚Å‚·B
+UninstallStatusLabel=‚²Žg—p‚̃Rƒ“ƒsƒ…[ƒ^‚©‚ç %1 ‚ð휂µ‚Ä‚¢‚Ü‚·B‚µ‚΂炭‚¨‘Ò‚¿‚­‚¾‚³‚¢B
+UninstalledAll=%1 ‚Í‚²Žg—p‚̃Rƒ“ƒsƒ…[ƒ^‚©‚ç³í‚É휂³‚ê‚Ü‚µ‚½B
+UninstalledMost=%1 ‚̃Aƒ“ƒCƒ“ƒXƒg[ƒ‹‚ªŠ®—¹‚µ‚Ü‚µ‚½B%n%n‚¢‚­‚‚©‚Ì€–Ú‚ªíœ‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½BŽè“®‚Å휂µ‚Ä‚­‚¾‚³‚¢B
+UninstalledAndNeedsRestart=%1 ‚Ìíœ‚ðŠ®—¹‚·‚邽‚ß‚É‚ÍAƒRƒ“ƒsƒ…[ƒ^‚ðÄ‹N“®‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B‚·‚®‚ÉÄ‹N“®‚µ‚Ü‚·‚©H
+UninstallDataCorrupted=ƒtƒ@ƒCƒ‹ "%1" ‚ª‰ó‚ê‚Ä‚¢‚Ü‚·BƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚ðŽÀs‚Å‚«‚Ü‚¹‚ñB
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=‹¤—Lƒtƒ@ƒCƒ‹‚Ìíœ
+ConfirmDeleteSharedFile2=ƒVƒXƒeƒ€ã‚ÅAŽŸ‚Ì‹¤—Lƒtƒ@ƒCƒ‹‚͂ǂ̃vƒƒOƒ‰ƒ€‚Å‚àŽg—p‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB‚±‚Ì‹¤—Lƒtƒ@ƒCƒ‹‚ð휂µ‚Ü‚·‚©H%n%n‘¼‚̃vƒƒOƒ‰ƒ€‚ª‚Ü‚¾‚±‚̃tƒ@ƒCƒ‹‚ðŽg—p‚·‚éê‡A휂·‚é‚ƃvƒƒOƒ‰ƒ€‚ª“®ì‚µ‚È‚­‚È‚é‹°‚ꂪ‚ ‚è‚Ü‚·B‚ ‚Ü‚èŠmŽÀ‚Å‚È‚¢ê‡‚Íu‚¢‚¢‚¦v‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢BƒVƒXƒeƒ€‚Ƀtƒ@ƒCƒ‹‚ðŽc‚µ‚Ä‚à–â‘è‚ðˆø‚«‹N‚±‚·‚±‚Æ‚Í‚ ‚è‚Ü‚¹‚ñB
+SharedFileNameLabel=ƒtƒ@ƒCƒ‹–¼:
+SharedFileLocationLabel=êŠ:
+WizardUninstalling=ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹ó‹µ
+StatusUninstalling=%1 ‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚µ‚Ä‚¢‚Ü‚·...
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1 ƒo[ƒWƒ‡ƒ“ %2
+AdditionalIcons=ƒAƒCƒRƒ“‚ð’ljÁ‚·‚é:
+CreateDesktopIcon=ƒfƒXƒNƒgƒbƒvã‚ɃAƒCƒRƒ“‚ð쬂·‚é(&d)
+CreateQuickLaunchIcon=&Quick Launch ƒAƒCƒRƒ“‚ð쬂·‚é
+ProgramOnTheWeb=%1 on the Web
+UninstallProgram=%1 ‚ðƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚·‚é
+LaunchProgram=%1 ‚ðŽÀs‚·‚é
+AssocFileExtension=%2 ƒtƒ@ƒCƒ‹Šg’£‚É %1‚ðŠÖ˜A•t‚¯‚Ü‚·B
+AssocingFileExtension=%2 ‚É %1‚ðŠÖ˜A•t‚¯‚Ü‚·B
diff --git a/tools/innosetup/ja_JP_scilab.isl b/tools/innosetup/ja_JP_scilab.isl
new file mode 100755
index 000000000..d52d13261
--- /dev/null
+++ b/tools/innosetup/ja_JP_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+ja_JP.LANGUAGE =ja_JP
+
+ja_JP.MsgBoxJRENotFound =Java Runtime Environment not detected.
+ja_JP.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/ja_JP/download/
+ja_JP.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+ja_JP.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+ja_JP.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+ja_JP.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+ja_JP.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+ja_JP.MsgBoxWebOpen =Can not open web page.
+ja_JP.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+ja_JP.MsgBoxDevToolsRequired2 =Please install development_tools module.
+ja_JP.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+ja_JP.MsgBoxTclsciRequired2 =Please install tclsci module.
+ja_JP.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+ja_JP.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+ja_JP.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+ja_JP.MsgBoxFftw4 =Can not open web page.
+ja_JP.MsgBoxWinVer =Windows 2000 is required.
+ja_JP.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+ja_JP.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+ja_JP.ButtonAboutModules =&About modules ...
+;
+ja_JP.DescriptionEquDif =Differential Equations Module
+ja_JP.DescriptionInterpolation =Interpolation Module
+ja_JP.DescriptionPolynomials =Polynomials Module
+ja_JP.DescriptionSymbolic =Symbolic Module
+ja_JP.DescriptionStats =Statistics Module
+ja_JP.DescriptionSparse =Sparse Matrix Module
+ja_JP.DescriptionLinAlg =Linear Algebra Module
+ja_JP.DescriptionSigProc =Signal processing Module
+ja_JP.DescriptionCacsd =C.A.C.S.D Module
+ja_JP.DescriptionGraphics =Graphics Module
+ja_JP.DescriptionOptim =Optimization Module
+ja_JP.DescriptionMetanet =Metanet Toolbox
+ja_JP.DescriptionScicos =Scicos Toolbox
+ja_JP.DescriptionArnoldi =ARnoldi PACKage Toolbox
+ja_JP.DescriptionUmfpack =UMFPACK for Scilab
+ja_JP.DescriptionCompatFunctions =Compatibility functions
+ja_JP.DescriptionM2sci =M2SCI Toolbox
+ja_JP.DescriptionMatio =MAT File Input/Output Toolbox
+ja_JP.DescriptionExternalObjects =External objects
+ja_JP.DescriptionSound =Sound file handling Toolbox
+ja_JP.DescriptionRandlib =Randlib Toolbox
+ja_JP.DescriptionMexlib =Mexlib Tools
+ja_JP.DescriptionIntersci =Intersci Toolbox
+ja_JP.DescriptionTclTK =TCL/TK in Scilab
+ja_JP.DescriptionSpreadsheet =Spreadsheet Toolbox
+ja_JP.DescriptionJVM =Java Runtime
+ja_JP.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+ja_JP.DescriptionFftwModule =FFTW interface for Scilab
+ja_JP.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+ja_JP.DescriptionRefFftwLibrary =Reference FFTW library
+ja_JP.DescriptionParametersTlbx =Parameters Toolbox
+ja_JP.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+ja_JP.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+ja_JP.DescriptionDevTools =Development Tools
+ja_JP.DescriptionTests =Tests for Scilab
+ja_JP.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+ja_JP.DescriptionComConnector =COM connector
+ja_JP.DescriptionSciNotes =SciNotes: Editor for Scilab
+ja_JP.DescriptionXcos =Xcos
+ja_JP.DescriptionParallel =Parallel Computing with Scilab
+ja_JP.DescriptionModulesManager =Tools for management of extern modules
+ja_JP.DescriptionModuleJVM =JVM Module
+;
+ja_JP.ConsoleIconName =Scilab Console
+;
+ja_JP.WebIconScilab =Scilab on the Web
+;
+ja_JP.ReadMeIcon =Read Me
+;
+ja_JP.UnInstallIcon =Uninstall Scilab
+;
+ja_JP.RegKeyRunWith =Run with
+;
+ja_JP.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+ja_JP.DescriptionConfigureAtlas =Configure Atlas
+;
+ja_JP.DescriptionLaunchScilab =Launch Scilab
+;
+ja_JP.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+ja_JP.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+ja_JP.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+ja_JP.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+ja_JP.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+ja_JP.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+ja_JP.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+ja_JP.DescriptionDefaultInstall =Installation (Default)
+ja_JP.DescriptionFullInstall =Full installation
+ja_JP.DescriptionCustomInstall =Custom installation
+ja_JP.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+ja_JP.DescriptionCPUOptimization =CPU Optimization for Scilab
+ja_JP.DescriptionATLASLibrary =Atlas Library for Scilab
+ja_JP.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+ja_JP.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+ja_JP.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+ja_JP.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+ja_JP.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+ja_JP.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+ja_JP.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+ja_JP.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+ja_JP.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+ja_JP.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+; \ No newline at end of file
diff --git a/tools/innosetup/languages.iss b/tools/innosetup/languages.iss
new file mode 100755
index 000000000..76da9ee5c
--- /dev/null
+++ b/tools/innosetup/languages.iss
@@ -0,0 +1,30 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+Name: "en_US"; MessagesFile: "compiler:Default.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "ru_RU"; MessagesFile: "compiler:Languages\Russian.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "zh_CN"; MessagesFile: "{#BinariesSourcePath}\tools\innosetup\zh_CN.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "zh_TW"; MessagesFile: "{#BinariesSourcePath}\tools\innosetup\zh_TW.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "ja_JP"; MessagesFile: "{#BinariesSourcePath}\tools\innosetup\ja_JP.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "uk_UA"; MessagesFile: "{#BinariesSourcePath}\tools\innosetup\uk_UA.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "pl_PL"; MessagesFile: "{#BinariesSourcePath}\tools\innosetup\pl_PL.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "es_ES"; MessagesFile: "compiler:Languages\Spanish.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "it_IT"; MessagesFile: "compiler:Languages\Italian.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "ca_ES"; MessagesFile: "compiler:Languages\Catalan.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "de_DE"; MessagesFile: "compiler:Languages\German.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "pt_BR"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+Name: "fr_FR"; MessagesFile: "compiler:Languages\French.isl"; LicenseFile: {#BinariesSourcePath}\COPYING-FR
+Name: "cs_CZ"; MessagesFile: "compiler:Languages\Czech.isl"; LicenseFile: {#BinariesSourcePath}\COPYING
+;-------------------------------------------------------------------------------
diff --git a/tools/innosetup/pl_PL.isl b/tools/innosetup/pl_PL.isl
new file mode 100755
index 000000000..d9dd58d6d
--- /dev/null
+++ b/tools/innosetup/pl_PL.isl
@@ -0,0 +1,309 @@
+; *** Inno Setup version 5.1.11+ Polish messages ***
+; Krzysztof Cynarski <krzysztof at cynarski.net>
+;
+; To download user-contributed translations of this file, go to:
+; http://www.jrsoftware.org/is3rdparty.php
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+;
+; $jrsoftware: issrc/Files/Languages/Polish.isl,v 1.16 2007/03/09 16:56:52 jr Exp $
+
+[LangOptions]
+LanguageName=Polski
+LanguageID=$0415
+LanguageCodePage=1250
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=Instalator
+SetupWindowTitle=Instalacja - %1
+UninstallAppTitle=Deinstalacja
+UninstallAppFullTitle=Odinstaluj %1
+
+; *** Misc. common
+InformationTitle=Informacja
+ConfirmTitle=PotwierdŸ
+ErrorTitle=B³¹d
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=Ten program zainstaluje aplikacjê %1. Czy chcesz kontynuowaæ?
+LdrCannotCreateTemp=Nie mo¿na utworzyæ pliku tymczasowego. Instalacja przerwana
+LdrCannotExecTemp=Nie mo¿na uruchomiæ pliku w folderze tymczasowym. Instalacja przerwana
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%nB³¹d %2: %3
+SetupFileMissing=W folderze instalacyjnym brak pliku %1.%nProszê usun¹æ problem lub uzyskaæ now¹ kopiê programu instalacyjnego.
+SetupFileCorrupt=Pliki sk³adowe Instalatora s¹ uszkodzone. Proszê uzyskaæ now¹ kopiê Instalatora od producenta.
+SetupFileCorruptOrWrongVer=Pliki sk³adowe instalatora s¹ uszkodzone lub niezgodne z t¹ wersj¹ Instalatora. Proszê rozwi¹zaæ ten problem lub uzyskaæ now¹ kopiê Instalatora od producenta.
+NotOnThisPlatform=Tego programu nie mo¿na uruchomiæ w systemie %1.
+OnlyOnThisPlatform=Ten program wymaga systemu %1.
+OnlyOnTheseArchitectures=Ten program mo¿e byæ uruchomiony tylko w systemie Windows zaprojektowanym na procesory o architekturach:%n%n%1
+MissingWOW64APIs=Ta wersja systemu Windows nie zawiera komponentów niezbêdnych do przeprowadzenia 64 bitowej instalacji. Aby usun¹æ ten problem, proszê zainstalowaæ Service Pack %1.
+WinVersionTooLowError=Ten program wymaga %1 w wersji %2 lub póŸniejszej.
+WinVersionTooHighError=Ten program nie mo¿e byæ zainstalowany w wersji %2 lub póŸniejszej systemu %1.
+AdminPrivilegesRequired=Aby przeprowadziæ instalacjê tego programu, U¿ytkownik musi byæ zalogowany z uprawnieniami administratora.
+PowerUserPrivilegesRequired=Aby przeprowadziæ instalacjê tego programu, U¿ytkownik musi byæ zalogowany z uprawnieniami administratora lub u¿ytkownika zaawansowanego.
+SetupAppRunningError=Instalator wykry³, ¿e %1 jest aktualnie uruchomiony.%n%nZamknij wszystkie okienka tej aplikacji, a potem wybierz przycisk OK, aby kontynuowaæ, lub Anuluj, aby przerwaæ instalacjê.
+UninstallAppRunningError=Deinstalator wykry³, ¿e %1 jest aktualnie uruchomiony.%n%nZamknij teraz wszystkie okna tej aplikacji, a nastêpnie wybierz przycisk OK, aby kontynuowaæ, lub Anuluj, aby przerwaæ deinstalacje.
+
+; *** Misc. errors
+ErrorCreatingDir=Instalator nie móg³ utworzyæ foldera "%1"
+ErrorTooManyFilesInDir=Nie mo¿na utworzyæ pliku w folderze %1, poniewa¿ zawiera on za du¿o plików
+
+; *** Setup common messages
+ExitSetupTitle=Zakoñcz instalacjê
+ExitSetupMessage=Instalacja nie jest zakoñczona. Je¿eli przerwiesz j¹ teraz, program nie zostanie zainstalowany. Mo¿na ponowiæ instalacjê póŸniej, uruchamiaj¹c pakiet Instalatora.%n%nCzy chcesz przerwaæ instalacjê ?
+AboutSetupMenuItem=&O Instalatorze...
+AboutSetupTitle=O Instalatorze
+AboutSetupMessage=%1 wersja %2%n%3%n%n Strona domowa %1:%n%4
+AboutSetupNote=
+TranslatorNote=Wersja Polska: Krzysztof Cynarski%n<krzysztof at cynarski.net>
+
+; *** Buttons
+ButtonBack=< &Wstecz
+ButtonNext=&Dalej >
+ButtonInstall=&Instaluj
+ButtonOK=OK
+ButtonCancel=Anuluj
+ButtonYes=&Tak
+ButtonYesToAll=Tak na &wszystkie
+ButtonNo=&Nie
+ButtonNoToAll=N&ie na wszystkie
+ButtonFinish=&Zakoñcz
+ButtonBrowse=&Przegl¹daj...
+ButtonWizardBrowse=P&rzegl¹daj...
+ButtonNewFolder=&Utwórz nowy folder
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=Wybierz jêzyk instalacji
+SelectLanguageLabel=Wybierz jêzyk u¿ywany podczas instalacji:
+
+; *** Common wizard text
+ClickNext=Wybierz przycisk Dalej, aby kontynuowaæ, lub Anuluj, aby zakoñczyæ instalacjê.
+BeveledLabel=
+BrowseDialogTitle=Wska¿ folder
+BrowseDialogLabel=Wybierz folder z poni¿szej listy, a nastêpnie wybierz przycisk OK.
+NewFolderName=Nowy folder
+
+; *** "Welcome" wizard page
+WelcomeLabel1=Witamy w Kreatorze instalacji programu [name].
+WelcomeLabel2=Instalator zainstaluje teraz program [name/ver] na Twoim komputerze.%n%nZalecane jest zamkniêcie wszystkich innych uruchomionych programów przed rozpoczêciem procesu instalacji.
+
+; *** "Password" wizard page
+WizardPassword=Has³o
+PasswordLabel1=Ta instalacja jest zabezpieczona has³em.
+PasswordLabel3=Podaj has³o, potem wybierz przycisk Dalej, aby kontynuowaæ. W has³ach rozró¿niane s¹ du¿e i ma³e litery.
+PasswordEditLabel=&Has³o:
+IncorrectPassword=Wprowadzone has³o nie jest poprawne. Spróbuj ponownie.
+
+; *** "License Agreement" wizard page
+WizardLicense=Umowa Licencyjna
+LicenseLabel=Przed kontynuacj¹ proszê przeczytaæ poni¿sze wa¿ne informacje.
+LicenseLabel3=Proszê przeczytaæ tekst Umowy Licencyjnej. Musisz zgodziæ siê na warunki tej umowy przed kontynuacj¹ instalacji.
+LicenseAccepted=&Akceptujê warunki umowy
+LicenseNotAccepted=&Nie akceptujê warunków umowy
+
+; *** "Information" wizard pages
+WizardInfoBefore=Informacja
+InfoBeforeLabel=Przed przejœciem do dalszego etapu instalacji, proszê przeczytaæ poni¿sz¹ informacjê.
+InfoBeforeClickLabel=Kiedy bêdziesz gotowy do instalacji, kliknij przycisk Dalej.
+WizardInfoAfter=Informacja
+InfoAfterLabel=Przed przejœciem do dalszego etapu instalacji, proszê przeczytaæ poni¿sz¹ informacjê.
+InfoAfterClickLabel=Gdy bêdziesz gotowy do zakoñczenia instalacji, kliknij przycisk Dalej.
+
+; *** "User Information" wizard page
+WizardUserInfo=Dane U¿ytkownika
+UserInfoDesc=Proszê podaæ swoje dane.
+UserInfoName=&Nazwisko:
+UserInfoOrg=&Organizacja:
+UserInfoSerial=Numer &seryjny:
+UserInfoNameRequired=Musisz podaæ nazwisko.
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=Wybierz docelow¹ lokalizacjê
+SelectDirDesc=Gdzie ma byæ zainstalowany program [name]?
+SelectDirLabel3=Instalator zainstaluje program [name] do poni¿szego folderu.
+SelectDirBrowseLabel=Kliknij przycisk Dalej, aby kontynuowaæ. Jeœli chcesz okreœliæ inny folder, kliknij przycisk Przegl¹daj.
+DiskSpaceMBLabel=Potrzeba przynajmniej [mb] MB wolnego miejsca na dysku.
+ToUNCPathname=Instalator nie mo¿e instalowaæ do œcie¿ki UNC. Jeœli próbujesz zainstalowaæ program na dysku sieciowym, najpierw zmapuj ten dysk.
+InvalidPath=Musisz wprowadziæ pe³n¹ œcie¿kê wraz z liter¹ dysku, np.:%n%nC:\PROGRAM%n%nlub scie¿kê sieciow¹ (UNC) w formacie:%n%n\\serwer\udzia³
+InvalidDrive=Wybrany dysk lub udostêpniony folder sieciowy nie istnieje. Proszê wybraæ inny.
+DiskSpaceWarningTitle=Niewystarczaj¹ca iloœæ wolnego miejsca na dysku
+DiskSpaceWarning=Instalator wymaga co najmniej %1 KB wolnego miejsca na dysku. Wybrany dysk posiada tylko %2 KB dostêpnego miejsca.%n%nCzy pomimo to chcesz kontynuowaæ?
+DirNameTooLong=Nazwa folderu lub œcie¿ki jest za d³uga.
+InvalidDirName=Niepoprawna nazwa folderu.
+BadDirName32=Nazwa folderu nie mo¿e zawieraæ ¿adnego z nastêpuj¹cych znaków:%n%n%1
+DirExistsTitle=Ten folder ju¿ istnieje
+DirExists=Folder%n%n%1%n%nju¿ istnieje. Czy pomimo to chcesz zainstalowaæ program w tym folderze?
+DirDoesntExistTitle=Nie ma takiego folderu
+DirDoesntExist=Folder:%n%n%1%n%nnie istnieje. Czy chcesz, aby zosta³ utworzony?
+
+; *** "Select Components" wizard page
+WizardSelectComponents=Zaznacz komponenty
+SelectComponentsDesc=Które komponenty maj¹ byæ zainstalowane?
+SelectComponentsLabel2=Zaznacz komponenty, które chcesz zainstalowaæ, odznacz te, których nie chcesz zainstalowaæ. Kliknij przycisk Dalej, aby kontynuowaæ.
+FullInstallation=Instalacja pe³na
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=Instalacja podstawowa
+CustomInstallation=Instalacja u¿ytkownika
+NoUninstallWarningTitle=Zainstalowane komponenty
+NoUninstallWarning=Instalator wykry³, ¿e w twoim komputerze s¹ ju¿ zainstalowane nastêpuj¹ce komponenty:%n%n%1%n%nOdznaczenie któregokolwiek z nich nie spowoduje ich deinstalacji.%n%nCzy pomimo tego chcesz kontynuowaæ?
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceMBLabel=Wybrane komponenty wymagaj¹ co najmniej [mb] MB na dysku.
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=Zaznacz dodatkowe zadania
+SelectTasksDesc=Które dodatkowe zadania maj¹ byæ wykonane?
+SelectTasksLabel2=Zaznacz dodatkowe zadania, które Instalator ma wykonaæ podczas instalacji programu [name], a nastêpnie kliknij przycisk Dalej, aby kontynuowaæ.
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=Wybierz folder Menu Start
+SelectStartMenuFolderDesc=Gdzie maj¹ byæ umieszczone skróty do programu?
+SelectStartMenuFolderLabel3=Instalator stworzy skróty do programu w poni¿szym folderze Menu Start.
+SelectStartMenuFolderBrowseLabel=Kliknij przycisk Dalej, aby kontynuowaæ. Jeœli chcesz okreœliæ inny folder, kliknij przycisk Przegl¹daj.
+MustEnterGroupName=Musisz wprowadziæ nazwê folderu.
+GroupNameTooLong=Nazwa folderu lub œcie¿ki jest za d³uga.
+InvalidGroupName=Niepoprawna nazwa folderu.
+BadGroupName=Nazwa folderu nie mo¿e zawieraæ ¿adnego z nastêpuj¹cych znaków:%n%n%1
+NoProgramGroupCheck2=Nie twórz folderu w &Menu Start
+
+; *** "Ready to Install" wizard page
+WizardReady=Gotowy do rozpoczêcia instalacji
+ReadyLabel1=Instalator jest ju¿ gotowy do rozpoczêcia instalacji programu [name] na twoim komputerze.
+ReadyLabel2a=Kliknij przycisk Instaluj, aby rozpocz¹æ instalacjê lub Wstecz, jeœli chcesz przejrzeæ lub zmieniæ ustawienia.
+ReadyLabel2b=Kliknij przycisk Instaluj, aby kontynuowaæ instalacjê.
+ReadyMemoUserInfo=Informacje u¿ytkownika:
+ReadyMemoDir=Lokalizacja docelowa:
+ReadyMemoType=Rodzaj instalacji:
+ReadyMemoComponents=Wybrane komponenty:
+ReadyMemoGroup=Folder w Menu Start:
+ReadyMemoTasks=Dodatkowe zadania:
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=Przygotowanie do instalacji
+PreparingDesc=Instalator przygotowuje instalacjê programu [name] na Twoim komputerze.
+PreviousInstallNotCompleted=Instalacja (usuniêcie) poprzedniej wersji programu nie zosta³a zakoñczona. Bêdziesz musia³ ponownie uruchomiæ komputer, aby zakoñczyæ instalacjê. %n%nPo ponownym uruchomieniu komputera uruchom ponownie instalatora, aby zakoñczyæ instalacjê aplikacji [name].
+CannotContinue=Instalator nie mo¿e kontynuowaæ. Kliknij przycisk Anuluj, aby przerwaæ instalacjê.
+
+
+; *** "Installing" wizard page
+WizardInstalling=Instalacja
+InstallingLabel=Poczekaj, a¿ instalator zainstaluje aplikacjê [name] na Twoim komputerze.
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=Zakoñczono instalacjê programu [name]
+FinishedLabelNoIcons=Instalator zakoñczy³ instalacjê programu [name] na Twoim komputerze.
+FinishedLabel=Instalator zakoñczy³ instalacjê programu [name] na Twoim komputerze. Aplikacja mo¿e byæ uruchomiona poprzez u¿ycie zainstalowanych skrótów.
+ClickFinish=Kliknij przycisk Zakoñcz, aby zakoñczyæ instalacjê.
+FinishedRestartLabel=Aby zakoñczyæ instalacjê programu [name], Instalator musi ponownie uruchomiæ Twój komputer. Czy chcesz teraz wykonaæ restart komputera?
+FinishedRestartMessage=Aby zakoñczyæ instalacjê programu [name], Instalator musi ponownie uruchomiæ Twój komputer.%n%nCzy chcesz teraz wykonaæ restart komputera?
+ShowReadmeCheck=Tak, chcê przeczytaæ dodatkowe informacje
+YesRadio=&Tak, teraz uruchom ponownie
+NoRadio=&Nie, sam zrestartujê póŸniej
+; used for example as 'Run MyProg.exe'
+RunEntryExec=Uruchom %1
+; used for example as 'View Readme.txt'
+RunEntryShellExec=Poka¿ %1
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=Instalator potrzebuje nastêpnej dyskietki
+SelectDiskLabel2=Proszê w³o¿yæ dyskietkê %1 i klikn¹æ przycisk OK.%n%nJeœli pokazany poni¿ej folder nie okreœla po³o¿enia plików z tej dyskietki, wprowadŸ poprawn¹ œcie¿kê lub kliknij przycisk Przegl¹daj.
+PathLabel=Œ&cie¿ka:
+FileNotInDir2=Plik "%1" nie zosta³ znaleziony na dyskietce "%2". Proszê w³o¿yæ w³aœciw¹ dyskietkê lub wybraæ inny folder.
+SelectDirectoryLabel=Proszê okreœliæ lokalizacjê nastêpnej dyskietki.
+
+; *** Installation phase messages
+SetupAborted=Instalacja nie zosta³a zakoñczona.%n%nProszê rozwi¹zaæ problem i ponownie rozpocz¹æ instalacjê.
+EntryAbortRetryIgnore=Mo¿esz ponowiæ nieudan¹ czynnoœæ, zignorowaæ j¹ (nie zalecane) lub przerwaæ instalacjê.
+
+; *** Installation status messages
+StatusCreateDirs=Tworzenie folderów...
+StatusExtractFiles=Dekompresja plików...
+StatusCreateIcons=Tworzenie ikon aplikacji...
+StatusCreateIniEntries=Tworzenie zapisów w plikach INI...
+StatusCreateRegistryEntries=Tworzenie zapisów w rejestrze...
+StatusRegisterFiles=Rejestracja plików...
+StatusSavingUninstall=Zachowanie informacji deinstalatora...
+StatusRunProgram=Koñczenie instalacji...
+StatusRollback=Cofanie zmian...
+
+; *** Misc. errors
+ErrorInternal2=Wewnêtrzny b³¹d: %1
+ErrorFunctionFailedNoCode=B³¹d podczas wykonywania %1
+ErrorFunctionFailed=B³¹d podczas wykonywania %1; kod %2
+ErrorFunctionFailedWithMessage=B³¹d podczas wykonywania %1; code %2.%n%3
+ErrorExecutingProgram=Nie mo¿na uruchomiæ:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=B³¹d podczas otwierania klucza rejestru:%n%1\%2
+ErrorRegCreateKey=B³¹d podczas tworzenia klucza rejestru:%n%1\%2
+ErrorRegWriteKey=B³¹d podczas zapisu do klucza rejestru:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=B³¹d podczas tworzenia pozycji w pliku INI: "%1".
+
+; *** File copying errors
+FileAbortRetryIgnore=Mo¿esz ponowiæ nieudan¹ czynnoœæ, zignorowaæ j¹, aby omin¹æ ten plik (nie zalecane), lub przerwaæ instalacjê.
+FileAbortRetryIgnore2=Mo¿esz ponowiæ nieudan¹ czynnoœæ, zignorowaæ j¹ (nie zalecane) lub przerwaæ instalacjê.
+SourceIsCorrupted=Plik Ÿród³owy jest uszkodzony
+SourceDoesntExist=Plik Ÿród³owy "%1" nie istnieje
+ExistingFileReadOnly=Istniej¹cy plik jest oznaczony jako tylko-do-odczytu.%n%nMo¿esz ponowiæ (aby usun¹æ oznaczenie) zignorowaæ (aby omin¹æ ten plik) lub przerwaæ instalacjê.
+ErrorReadingExistingDest=Wyst¹pi³ b³¹d podczas próby odczytu istniej¹cego pliku:
+FileExists=Plik ju¿ istnieje.%n%nCzy chcesz, aby Instalator zamieni³ go na nowy?
+ExistingFileNewer=Istniej¹cy plik jest nowszy ni¿ ten, który Instalator próbuje skopiowaæ. Zalecanym jest zachowanie istniej¹cego pliku.%n%nCzy chcesz zachowaæ istniej¹cy plik?
+ErrorChangingAttr=Wyst¹pi³ b³¹d podczas próby zmiany atrybutów docelowego pliku:
+ErrorCreatingTemp=Wyst¹pi³ b³¹d podczas próby utworzenia pliku w folderze docelowym:
+ErrorReadingSource=Wyst¹pi³ b³¹d podczas próby odczytu pliku Ÿród³owego:
+ErrorCopying=Wyst¹pi³ b³¹d podczas próby kopiowania pliku:
+ErrorReplacingExistingFile=Wyst¹pi³ b³¹d podczas próby zamiany istniej¹cego pliku:
+ErrorRestartReplace=Próba zast¹pienia plików podczas restartu komputera nie powiod³a siê.
+ErrorRenamingTemp=Wyst¹pi³ b³¹d podczas próby zmiany nazwy pliku w folderze docelowym:
+ErrorRegisterServer=Nie mo¿na zarejestrowaæ DLL/OCX: %1
+ErrorRegSvr32Failed=Funkcja RegSvr32 zakoñczy³a sie z kodem b³êdu %1
+ErrorRegisterTypeLib=Nie mogê zarejestrowaæ biblioteki typów: %1
+
+; *** Post-installation errors
+ErrorOpeningReadme=Wyst¹pi³ b³¹d podczas próby otwarcia pliku README.
+ErrorRestartingComputer=Instalator nie móg³ zrestartowaæ tego komputera. Proszê zrobiæ to samodzielnie.
+
+; *** Uninstaller messages
+UninstallNotFound=Plik "%1" nie istnieje. Nie mo¿na go odinstalowaæ.
+UninstallOpenError=Plik "%1" nie móg³ byæ otwarty. Nie mo¿na odinstalowaæ
+UninstallUnsupportedVer=Ta wersja programu deinstalacyjnego nie rozpoznaje formatu logu deinstalacji. Nie mo¿na odinstalowaæ
+UninstallUnknownEntry=W logu deinstalacji wyst¹pi³a nieznana pozycja (%1)
+ConfirmUninstall=Czy na pewno chcesz usun¹æ program %1 i wszystkie jego sk³adniki?
+UninstallOnlyOnWin64=Ten program moze byæ odinstalowany tylo w 64 bitowej wersji systemu Windows.
+OnlyAdminCanUninstall=Ta instalacja mo¿e byæ odinstalowana tylko przez u¿ytkownika z prawami administratora.
+UninstallStatusLabel=Poczekaj a¿ program %1 zostanie usuniêty z Twojego komputera.
+UninstalledAll=%1 zosta³ usuniêty z Twojego komputera.
+UninstalledMost=Odinstalowywanie programu %1 zakoñczone.%n%nNiektóre elementy nie mog³y byæ usuniête. Mo¿esz je usun¹æ rêcznie.
+UninstalledAndNeedsRestart=Twój komputer musi byæ ponownie uruchomiony, aby zakoñczyæ odinstalowywanie %1.%n%nCzy chcesz teraz ponownie uruchomiæ komputer?
+UninstallDataCorrupted=Plik "%1" jest uszkodzony. Nie mo¿na odinstalowaæ
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=Usun¹æ plik wspó³dzielony?
+ConfirmDeleteSharedFile2=System wykry³, ¿e nastêpuj¹cy plik nie jest ju¿ u¿ywany przez ¿aden program. Czy chcesz odinstalowaæ ten plik wspó³dzielony?%n%nJeœli inne programy nadal u¿ywaj¹ tego pliku, a zostanie on usuniêty, mog¹ one przestaæ dzia³aæ prawid³owo. Jeœli nie jesteœ pewny, wybierz przycisk Nie. Pozostawienie tego pliku w Twoim systemie nie spowoduje ¿adnych szkód.
+SharedFileNameLabel=Nazwa pliku:
+SharedFileLocationLabel=Po³o¿enie:
+WizardUninstalling=Stan deinstalacji
+StatusUninstalling=Deinstalacja %1...
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1 wersja %2
+AdditionalIcons=Dodatkowe ikony:
+CreateDesktopIcon=Utwórz ikonê na &pulpicie
+CreateQuickLaunchIcon=Utwórz ikonê na pasku &szybkiego uruchamiania
+ProgramOnTheWeb=Strona WWW programu %1
+UninstallProgram=Deinstalacja programu %1
+LaunchProgram=Uruchom program %1
+AssocFileExtension=&Przypisz program %1 do rozszerzenia pliku %2
+AssocingFileExtension=Przypisywanie programu %1 do rozszerzenia pliku %2...
diff --git a/tools/innosetup/pl_PL_scilab.isl b/tools/innosetup/pl_PL_scilab.isl
new file mode 100755
index 000000000..9e0aa4017
--- /dev/null
+++ b/tools/innosetup/pl_PL_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+pl_PL.LANGUAGE =pl_PL
+
+pl_PL.MsgBoxJRENotFound =Java Runtime Environment not detected.
+pl_PL.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+pl_PL.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+pl_PL.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+pl_PL.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+pl_PL.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+pl_PL.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+pl_PL.MsgBoxWebOpen =Can not open web page.
+pl_PL.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+pl_PL.MsgBoxDevToolsRequired2 =Please install development_tools module.
+pl_PL.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+pl_PL.MsgBoxTclsciRequired2 =Please install tclsci module.
+pl_PL.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+pl_PL.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+pl_PL.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+pl_PL.MsgBoxFftw4 =Can not open web page.
+pl_PL.MsgBoxWinVer =Windows 2000 is required.
+pl_PL.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+pl_PL.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+pl_PL.ButtonAboutModules =&About modules ...
+;
+pl_PL.DescriptionEquDif =Differential Equations Module
+pl_PL.DescriptionInterpolation =Interpolation Module
+pl_PL.DescriptionPolynomials =Polynomials Module
+pl_PL.DescriptionSymbolic =Symbolic Module
+pl_PL.DescriptionStats =Statistics Module
+pl_PL.DescriptionSparse =Sparse Matrix Module
+pl_PL.DescriptionLinAlg =Linear Algebra Module
+pl_PL.DescriptionSigProc =Signal processing Module
+pl_PL.DescriptionCacsd =C.A.C.S.D Module
+pl_PL.DescriptionGraphics =Graphics Module
+pl_PL.DescriptionOptim =Optimization Module
+pl_PL.DescriptionMetanet =Metanet Toolbox
+pl_PL.DescriptionScicos =Scicos Toolbox
+pl_PL.DescriptionArnoldi =ARnoldi PACKage Toolbox
+pl_PL.DescriptionUmfpack =UMFPACK for Scilab
+pl_PL.DescriptionCompatFunctions =Compatibility functions
+pl_PL.DescriptionM2sci =M2SCI Toolbox
+pl_PL.DescriptionMatio =MAT File Input/Output Toolbox
+pl_PL.DescriptionExternalObjects =External objects
+pl_PL.DescriptionSound =Sound file handling Toolbox
+pl_PL.DescriptionRandlib =Randlib Toolbox
+pl_PL.DescriptionMexlib =Mexlib Tools
+pl_PL.DescriptionIntersci =Intersci Toolbox
+pl_PL.DescriptionTclTK =TCL/TK in Scilab
+pl_PL.DescriptionSpreadsheet =Spreadsheet Toolbox
+pl_PL.DescriptionJVM =Java Runtime
+pl_PL.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+pl_PL.DescriptionFftwModule =FFTW interface for Scilab
+pl_PL.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+pl_PL.DescriptionRefFftwLibrary =Reference FFTW library
+pl_PL.DescriptionParametersTlbx =Parameters Toolbox
+pl_PL.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+pl_PL.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+pl_PL.DescriptionDevTools =Development Tools
+pl_PL.DescriptionTests =Tests for Scilab
+pl_PL.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+pl_PL.DescriptionComConnector =COM connector
+pl_PL.DescriptionSciNotes =SciNotes: Editor for Scilab
+pl_PL.DescriptionXcos =Xcos
+pl_PL.DescriptionParallel =Parallel Computing with Scilab
+pl_PL.DescriptionModulesManager =Tools for management of extern modules
+pl_PL.DescriptionModuleJVM =JVM Module
+;
+pl_PL.ConsoleIconName =Scilab Console
+;
+pl_PL.WebIconScilab =Scilab on the Web
+;
+pl_PL.ReadMeIcon =Read Me
+;
+pl_PL.UnInstallIcon =Uninstall Scilab
+;
+pl_PL.RegKeyRunWith =Run with
+;
+pl_PL.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+pl_PL.DescriptionConfigureAtlas =Configure Atlas
+;
+pl_PL.DescriptionLaunchScilab =Launch Scilab
+;
+pl_PL.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+pl_PL.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+pl_PL.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+pl_PL.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+pl_PL.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+pl_PL.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+pl_PL.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+pl_PL.DescriptionDefaultInstall =Installation (Default)
+pl_PL.DescriptionFullInstall =Full installation
+pl_PL.DescriptionCustomInstall =Custom installation
+pl_PL.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+pl_PL.DescriptionCPUOptimization =CPU Optimization for Scilab
+pl_PL.DescriptionATLASLibrary =Atlas Library for Scilab
+pl_PL.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+pl_PL.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+pl_PL.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+pl_PL.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+pl_PL.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+pl_PL.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+pl_PL.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+pl_PL.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+pl_PL.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+pl_PL.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/pt_BR_scilab.isl b/tools/innosetup/pt_BR_scilab.isl
new file mode 100755
index 000000000..f4e5cc6b1
--- /dev/null
+++ b/tools/innosetup/pt_BR_scilab.isl
@@ -0,0 +1,137 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+pt_BR.LANGUAGE =pt_BR
+
+pt_BR.MsgBoxJRENotFound =Java Runtime Environment not detected.
+pt_BR.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+pt_BR.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+pt_BR.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+pt_BR.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+pt_BR.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+pt_BR.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+pt_BR.MsgBoxWebOpen =Can not open web page.
+pt_BR.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+pt_BR.MsgBoxDevToolsRequired2 =Please install development_tools module.
+pt_BR.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+pt_BR.MsgBoxTclsciRequired2 =Please install tclsci module.
+pt_BR.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+pt_BR.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+pt_BR.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+pt_BR.MsgBoxFftw4 =Can not open web page.
+pt_BR.MsgBoxWinVer =Windows 2000 is required.
+pt_BR.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+pt_BR.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+pt_BR.ButtonAboutModules =&About modules ...
+;
+pt_BR.DescriptionEquDif =Differential Equations Module
+pt_BR.DescriptionInterpolation =Interpolation Module
+pt_BR.DescriptionPolynomials =Polynomials Module
+pt_BR.DescriptionSymbolic =Symbolic Module
+pt_BR.DescriptionStats =Statistics Module
+pt_BR.DescriptionSparse =Sparse Matrix Module
+pt_BR.DescriptionLinAlg =Linear Algebra Module
+pt_BR.DescriptionSigProc =Signal processing Module
+pt_BR.DescriptionCacsd =C.A.C.S.D Module
+pt_BR.DescriptionGraphics =Graphics Module
+pt_BR.DescriptionOptim =Optimization Module
+pt_BR.DescriptionMetanet =Metanet Toolbox
+pt_BR.DescriptionScicos =Scicos Toolbox
+pt_BR.DescriptionArnoldi =ARnoldi PACKage Toolbox
+pt_BR.DescriptionUmfpack =UMFPACK for Scilab
+pt_BR.DescriptionCompatFunctions =Compatibility functions
+pt_BR.DescriptionM2sci =M2SCI Toolbox
+pt_BR.DescriptionMatio =MAT File Input/Output Toolbox
+pt_BR.DescriptionExternalObjects =External objects
+pt_BR.DescriptionSound =Sound file handling Toolbox
+pt_BR.DescriptionRandlib =Randlib Toolbox
+pt_BR.DescriptionMexlib =Mexlib Tools
+pt_BR.DescriptionIntersci =Intersci Toolbox
+pt_BR.DescriptionTclTK =TCL/TK in Scilab
+pt_BR.DescriptionSpreadsheet =Spreadsheet Toolbox
+pt_BR.DescriptionJVM =Java Runtime
+pt_BR.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+pt_BR.DescriptionFftwModule =FFTW interface for Scilab
+pt_BR.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+pt_BR.DescriptionRefFftwLibrary =Reference FFTW library
+pt_BR.DescriptionParametersTlbx =Parameters Toolbox
+pt_BR.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+pt_BR.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+pt_BR.DescriptionDevTools =Development Tools
+pt_BR.DescriptionTests =Tests for Scilab
+pt_BR.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+pt_BR.DescriptionComConnector =COM connector
+pt_BR.DescriptionSciNotes =SciNotes: Editor for Scilab
+pt_BR.DescriptionXcos =Xcos
+pt_BR.DescriptionParallel =Parallel Computing with Scilab
+pt_BR.DescriptionModulesManager =Tools for management of extern modules
+pt_BR.DescriptionModuleJVM =JVM Module
+;
+pt_BR.ConsoleIconName =Scilab Console
+;
+pt_BR.WebIconScilab =Scilab on the Web
+;
+pt_BR.ReadMeIcon =Read Me
+;
+pt_BR.UnInstallIcon =Uninstall Scilab
+;
+pt_BR.RegKeyRunWith =Run with
+;
+pt_BR.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+pt_BR.DescriptionConfigureAtlas =Configure Atlas
+;
+pt_BR.DescriptionLaunchScilab =Launch Scilab
+;
+pt_BR.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+pt_BR.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+pt_BR.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+pt_BR.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+pt_BR.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+pt_BR.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+pt_BR.DescriptionAssociateScicos =Associate *.cos *.cosf files with Scilab
+;
+pt_BR.DescriptionDefaultInstall =Installation (Default)
+pt_BR.DescriptionFullInstall =Full installation
+pt_BR.DescriptionCustomInstall =Custom installation
+pt_BR.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+pt_BR.DescriptionCPUOptimization =CPU Optimization for Scilab
+pt_BR.DescriptionATLASLibrary =Atlas Library for Scilab
+pt_BR.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+pt_BR.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+pt_BR.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+pt_BR.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+pt_BR.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+pt_BR.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+pt_BR.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+pt_BR.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+pt_BR.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+pt_BR.DescriptionAtoms =ATOMS
+;------------------------------------------------------------------------------
+; \ No newline at end of file
diff --git a/tools/innosetup/registry.iss b/tools/innosetup/registry.iss
new file mode 100755
index 000000000..919d674f0
--- /dev/null
+++ b/tools/innosetup/registry.iss
@@ -0,0 +1,185 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+; files assocociation .sce .sci .tst .bin .sav .sod
+;-------------------------------------------------------------------------------
+; Files Association (registry input)
+;-------------------------------------------------------------------------------
+;http://msdn2.microsoft.com/en-us/library/bb776870(VS.85).aspx
+;http://msdn2.microsoft.com/en-us/library/bb776883.aspx
+;http://msdn2.microsoft.com/en-us/library/bb776820.aspx
+;-------------------------------------------------------------------------------
+;Scilab PATH
+Root: HKLM; Subkey: "SOFTWARE\Scilab"; ValueType: string; ValueData: {#ScilabName}; Flags: noerror; ValueName: LASTINSTALL
+;-------------------------------------------------------------------------------
+Root: HKLM; Subkey: "SOFTWARE\Scilab\{#ScilabName}"; ValueType: string; ValueData: {app}; Flags: createvalueifdoesntexist uninsdeletekey noerror; ValueName: SCIPATH
+Root: HKLM; Subkey: "SOFTWARE\Scilab\{#ScilabName}"; ValueType: string; ValueData: {cm:LANGUAGE}; Flags: createvalueifdoesntexist uninsdeletekey noerror; ValueName: LANGUAGE
+;-------------------------------------------------------------------------------
+#ifdef SCILAB_X64
+Root: HKLM; Subkey: "SOFTWARE\Scilab\{#ScilabName}"; ValueType: string; ValueData: X64; Flags: createvalueifdoesntexist uninsdeletekey noerror; ValueName: OS_ARCH
+#else
+Root: HKLM; Subkey: "SOFTWARE\Scilab\{#ScilabName}"; ValueType: string; ValueData: X86; Flags: createvalueifdoesntexist uninsdeletekey noerror; ValueName: OS_ARCH
+#endif
+;-------------------------------------------------------------------------------
+#define ARGUMENT_ACTION_OPEN "-O"
+#define ARGUMENT_ACTION_RUN "-X"
+#define ARGUMENT_ACTION_PRINT "-P"
+;-------------------------------------------------------------------------------
+;Files .sce
+#define APPLICATION_EXTENSION_SCE "Scilab5.sce"
+#define SCE_ENTRY ".sce"
+#define ICON_SCE_POS 7
+;
+Root: HKCR; Subkey: {#SCE_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_SCE}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+Root: HKCR; Subkey: {#SCE_ENTRY}\ShellNew; ValueName : NullFile ;ValueType: string; ValueData: ""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCE}; ValueType: string; ValueData: "{#ScilabName} Application ({#SCE_ENTRY})"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCE}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_SCE_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCE}\shell\open\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_OPEN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCE}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI;
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCE}\shell\print\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_PRINT} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+;-------------------------------------------------------------------------------
+;Files .sci
+#define APPLICATION_EXTENSION_SCI "Scilab5.sci"
+#define SCI_ENTRY ".sci"
+#define ICON_SCI_POS 8
+;
+Root: HKCR; Subkey: {#SCI_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_SCI}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+Root: HKCR; Subkey: {#SCI_ENTRY}\ShellNew; ValueName : NullFile ; ValueType: string; ValueData: ""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCI}; ValueType: string; ValueData: "{#ScilabName} Application ({#SCI_ENTRY})"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCI}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_SCI_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCI}\shell\open\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_OPEN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCI}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI;
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SCI}\shell\print\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_PRINT} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCESCI
+;
+;-------------------------------------------------------------------------------
+;Files .tst
+#define APPLICATION_EXTENSION_TST "Scilab5.tst"
+#define TST_ENTRY ".tst"
+#define ICON_TST_POS 9
+;
+Root: HKCR; Subkey: {#TST_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_TST}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_TST}; ValueType: string; ValueData: "{#ScilabName} Application"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_TST}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_TST_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_TST}\shell\open\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_OPEN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_TST}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM;
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_TST}\shell\print\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_PRINT} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+;-------------------------------------------------------------------------------
+;Files .dem
+#define APPLICATION_EXTENSION_DEM "Scilab5.dem"
+#define DEM_ENTRY ".dem"
+#define ICON_DEM_POS 4
+;
+Root: HKCR; Subkey: {#DEM_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_DEM}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_DEM}; ValueType: string; ValueData: "{#ScilabName} Application"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_DEM}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_DEM_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_DEM}\shell\open\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_OPEN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_DEM}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM;
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_DEM}\shell\print\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_PRINT} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateTSTDEM
+;
+;-------------------------------------------------------------------------------
+;Files .zcos
+#define APPLICATION_EXTENSION_ZCOS "Scilab5.zcos"
+#define ZCOS_ENTRY ".zcos"
+#define ICON_ZCOS_POS 11
+;
+Root: HKCR; Subkey: {#ZCOS_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_ZCOS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_ZCOS}; ValueType: string; ValueData: "{#ScilabName} Application"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_ZCOS}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_ZCOS_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_ZCOS}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS;
+;
+;-------------------------------------------------------------------------------
+;Files .xcos
+#define APPLICATION_EXTENSION_XCOS "Scilab5.xcos"
+#define XCOS_ENTRY ".xcos"
+#define ICON_XCOS_POS 2
+;
+Root: HKCR; Subkey: {#XCOS_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_XCOS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_XCOS}; ValueType: string; ValueData: "{#ScilabName} Application"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_XCOS}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_XCOS_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_XCOS}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS;
+;
+;-------------------------------------------------------------------------------
+;Files .cos
+#define APPLICATION_EXTENSION_COS "Scilab5.cos"
+#define COS_ENTRY ".cos"
+#define ICON_COS_POS 2
+;
+Root: HKCR; Subkey: {#COS_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_COS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_COS}; ValueType: string; ValueData: "{#ScilabName} Application"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_COS}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_COS_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_COS}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS;
+;
+;-------------------------------------------------------------------------------
+;Files .cosf
+#define APPLICATION_EXTENSION_COSF "Scilab5.cosf"
+#define COSF_ENTRY ".cosf"
+#define ICON_COSF_POS 3
+;
+Root: HKCR; Subkey: {#COSF_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_COSF}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_COSF}; ValueType: string; ValueData: "{#ScilabName} Application"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_COSF}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_COSF_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_COSF}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSCICOS;
+;-------------------------------------------------------------------------------
+;Files .sod
+#define APPLICATION_EXTENSION_SOD "Scilab5.sod"
+#define SOD_ENTRY ".sod"
+#define ICON_SOD_POS 10
+;
+Root: HKCR; Subkey: {#SOD_ENTRY}; ValueType: string; ValueData: {#APPLICATION_EXTENSION_SOD}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSOD
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SOD}; ValueType: string; ValueData: "{#ScilabName} Application"; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSOD
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SOD}\DefaultIcon; ValueType: string; ValueData: {app}\bin\wscilex.exe,{#ICON_SOD_POS}; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSOD
+;
+Root: HKCR; Subkey: {#APPLICATION_EXTENSION_SOD}\shell\{cm:RegKeyRunWith} {#ScilabName}\command; ValueType: string; ValueData: """{app}\bin\wscilex.exe"" {#ARGUMENT_ACTION_RUN} ""%1"""; Flags: deletekey uninsdeletekey noerror; Tasks: AssociateSOD;
+;-------------------------------------------------------------------------------
+Root: HKCU; Subkey: SOFTWARE\Scilab\{#ScilabName}\Settings; ValueType: string; ValueData: {cm:LANGUAGE}; Flags: createvalueifdoesntexist uninsdeletekey noerror; ValueName: LANGUAGE
+;
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/ru_RU_scilab.isl b/tools/innosetup/ru_RU_scilab.isl
new file mode 100755
index 000000000..ce55cc7f9
--- /dev/null
+++ b/tools/innosetup/ru_RU_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+ru_RU.LANGUAGE =ru_RU
+
+ru_RU.MsgBoxJRENotFound =Java Runtime Environment not detected.
+ru_RU.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/ru/download/
+ru_RU.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+ru_RU.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+ru_RU.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+ru_RU.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+ru_RU.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+ru_RU.MsgBoxWebOpen =Can not open web page.
+ru_RU.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+ru_RU.MsgBoxDevToolsRequired2 =Please install development_tools module.
+ru_RU.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+ru_RU.MsgBoxTclsciRequired2 =Please install tclsci module.
+ru_RU.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+ru_RU.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+ru_RU.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+ru_RU.MsgBoxFftw4 =Can not open web page.
+ru_RU.MsgBoxWinVer =Windows 2000 is required.
+ru_RU.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+ru_RU.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+ru_RU.ButtonAboutModules =&About modules ...
+;
+ru_RU.DescriptionEquDif =Differential Equations Module
+ru_RU.DescriptionInterpolation =Interpolation Module
+ru_RU.DescriptionPolynomials =Polynomials Module
+ru_RU.DescriptionSymbolic =Symbolic Module
+ru_RU.DescriptionStats =Statistics Module
+ru_RU.DescriptionSparse =Sparse Matrix Module
+ru_RU.DescriptionLinAlg =Linear Algebra Module
+ru_RU.DescriptionSigProc =Signal processing Module
+ru_RU.DescriptionCacsd =C.A.C.S.D Module
+ru_RU.DescriptionGraphics =Graphics Module
+ru_RU.DescriptionOptim =Optimization Module
+ru_RU.DescriptionMetanet =Metanet Toolbox
+ru_RU.DescriptionScicos =Scicos Toolbox
+ru_RU.DescriptionArnoldi =ARnoldi PACKage Toolbox
+ru_RU.DescriptionUmfpack =UMFPACK for Scilab
+ru_RU.DescriptionCompatFunctions =Compatibility functions
+ru_RU.DescriptionM2sci =M2SCI Toolbox
+ru_RU.DescriptionMatio =MAT File Input/Output Toolbox
+ru_RU.DescriptionExternalObjects =External objects
+ru_RU.DescriptionSound =Sound file handling Toolbox
+ru_RU.DescriptionRandlib =Randlib Toolbox
+ru_RU.DescriptionMexlib =Mexlib Tools
+ru_RU.DescriptionIntersci =Intersci Toolbox
+ru_RU.DescriptionTclTK =TCL/TK in Scilab
+ru_RU.DescriptionSpreadsheet =Spreadsheet Toolbox
+ru_RU.DescriptionJVM =Java Runtime
+ru_RU.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+ru_RU.DescriptionFftwModule =FFTW interface for Scilab
+ru_RU.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+ru_RU.DescriptionRefFftwLibrary =Reference FFTW library
+ru_RU.DescriptionParametersTlbx =Parameters Toolbox
+ru_RU.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+ru_RU.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+ru_RU.DescriptionDevTools =Development Tools
+ru_RU.DescriptionTests =Tests for Scilab
+ru_RU.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+ru_RU.DescriptionComConnector =COM connector
+ru_RU.DescriptionSciNotes =SciNotes: Editor for Scilab
+ru_RU.DescriptionXcos =Xcos
+ru_RU.DescriptionParallel =Parallel Computing with Scilab
+ru_RU.DescriptionModulesManager =Tools for management of extern modules
+ru_RU.DescriptionModuleJVM =JVM Module
+;
+ru_RU.ConsoleIconName =Scilab Console
+;
+ru_RU.WebIconScilab =Scilab on the Web
+;
+ru_RU.ReadMeIcon =Read Me
+;
+ru_RU.UnInstallIcon =Uninstall Scilab
+;
+ru_RU.RegKeyRunWith =Run with
+;
+ru_RU.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+ru_RU.DescriptionConfigureAtlas =Configure Atlas
+;
+ru_RU.DescriptionLaunchScilab =Launch Scilab
+;
+ru_RU.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+ru_RU.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+ru_RU.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+ru_RU.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+ru_RU.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+ru_RU.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+ru_RU.DescriptionAssociateScicos =Associate *.cos *.cosf files with Scilab
+;
+ru_RU.DescriptionDefaultInstall =Installation (Default)
+ru_RU.DescriptionFullInstall =Full installation
+ru_RU.DescriptionCustomInstall =Custom installation
+ru_RU.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+ru_RU.DescriptionCPUOptimization =CPU Optimization for Scilab
+ru_RU.DescriptionATLASLibrary =Atlas Library for Scilab
+ru_RU.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+ru_RU.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+ru_RU.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+ru_RU.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+ru_RU.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+ru_RU.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+ru_RU.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+ru_RU.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+ru_RU.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+ru_RU.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+; \ No newline at end of file
diff --git a/tools/innosetup/run.iss b/tools/innosetup/run.iss
new file mode 100755
index 000000000..6ddfd94a3
--- /dev/null
+++ b/tools/innosetup/run.iss
@@ -0,0 +1,22 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+#ifndef SCILAB_X64
+Filename: {app}\bin\SetupAtlas.exe; Description:{cm:DescriptionConfigureAtlas}; Flags: nowait; Components: {#COMPN_ATLAS_CPU_LIBRARY}
+#endif
+Filename: {code:getExecNameForDesktop}; Description: {cm:DescriptionLaunchScilab}; WorkingDir: "{userdocs}"; Flags: nowait postinstall skipifsilent;Components: {#COMPN_JVM_MODULE}
+Filename: {code:getExecNameForDesktop};Parameters: "-nwni"; Description: {cm:DescriptionLaunchScilab}; WorkingDir: "{userdocs}"; Flags: nowait postinstall skipifsilent;Components: not {#COMPN_JVM_MODULE}
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/setup.iss b/tools/innosetup/setup.iss
new file mode 100755
index 000000000..14d32edeb
--- /dev/null
+++ b/tools/innosetup/setup.iss
@@ -0,0 +1,60 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+; data to modify with version
+#ifdef SCILAB_X64
+ArchitecturesAllowed=x64
+ArchitecturesInstallIn64BitMode=x64
+#endif
+; Detect if scilab runs
+AppMutex={#ScilabBaseDirectory}
+;
+SourceDir={#BinariesSourcePath}
+#ifndef SCILAB_WITHOUT_JRE
+OutputBaseFilename={#ScilabBaseFilename}
+#else
+OutputBaseFilename={#ScilabBaseFilename}-nojre
+#endif
+AppName={#ScilabName}
+AppVerName={#ScilabName}
+DefaultDirName={code:DefDirRoot}\{#ScilabBaseDirectory}
+DefaultGroupName={#ScilabName}
+SetupIconFile=tools\innosetup\scilab.ico
+;InfoAfterfile=README_Windows.txt
+LicenseFile=COPYING
+ChangesAssociations=yes
+WindowVisible=false
+AppPublisher=Scilab Enterprises
+AppPublisherURL=http://www.scilab.org
+AppSupportURL=http://bugzilla.scilab.org/
+AppUpdatesURL=http://www.scilab.org/products/scilab/download
+WizardImageStretch=no
+WizardImageBackColor=clBlack
+WizardImageFile=tools\innosetup\ScilabLogo.bmp
+WizardSmallImageFile=tools\innosetup\ScilabLogoSmall.bmp
+BackColor=clGray
+BackColor2=clBlack
+BackColorDirection=lefttoright
+AppCopyright=Scilab Enterprises - Copyright © {#CurrentYear}
+UninstallDisplayIcon={app}\bin\wscilex.exe
+Compression=lzma/ultra64
+InternalCompressLevel=ultra64
+SolidCompression=true
+VersionInfoVersion={#ScilabVersion}
+VersionInfoCompany=Scilab Enterprises
+; minimun right to install Scilab
+PrivilegesRequired=none
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/tasks.iss b/tools/innosetup/tasks.iss
new file mode 100755
index 000000000..a17dab2be
--- /dev/null
+++ b/tools/innosetup/tasks.iss
@@ -0,0 +1,25 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+
+Name: desktopicon; Description:{cm:DescriptionCreateDesktopIcon}; GroupDescription: Additional icons:; MinVersion: 4,4
+;
+Name: AssociateSCESCI; Description:{cm:DescriptionAssociateSceSci}; GroupDescription: Files Association:; Components: {#COMPN_SCINOTES}; Check: IsAdminUser
+;
+Name: AssociateTSTDEM; Description:{cm:DescriptionAssociateTstDem}; GroupDescription: Files Association:; Components: {#COMPN_SCINOTES}; Check: IsAdminUser
+;
+Name: AssociateSCICOS; Description:{cm:DescriptionAssociateScicos}; GroupDescription: Files Association:; Components: {#COMPN_XCOS}; Check: IsAdminUser
+;
+Name: AssociateSOD; Description:{cm:DescriptionAssociateSOD}; GroupDescription: Files Association:; Components: {#COMPN_SCILAB}; Check: IsAdminUser
diff --git a/tools/innosetup/types.iss b/tools/innosetup/types.iss
new file mode 100755
index 000000000..173945b26
--- /dev/null
+++ b/tools/innosetup/types.iss
@@ -0,0 +1,18 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+Name: full; Description: {cm:DescriptionFullInstall}
+Name: custom; Description: {cm:DescriptionCustomInstall}; Flags: iscustom
+Name: cli; Description: {cm:DescriptionCLIInstall};
+;-------------------------------------------------------------------------------
diff --git a/tools/innosetup/uk_UA.isl b/tools/innosetup/uk_UA.isl
new file mode 100755
index 000000000..f662dc546
--- /dev/null
+++ b/tools/innosetup/uk_UA.isl
@@ -0,0 +1,319 @@
+; *** Inno Setup version 5.1.11+ Ukrainian messages ***
+;
+; Translation was made by Oleg Romanyk, olegu4ok@ya.ru
+; The highest accuracy was the first priority.
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+;
+; $jrsoftware: issrc/Files/Languages/Ukrainian.isl, ver. 2007.12.29 16:34:40 jr Exp $
+
+[LangOptions]
+; The following three entries are very important. Be sure to read and
+; understand the '[LangOptions] section' topic in the help file.
+LanguageName=<0423><043A><0440><0430><0457><043D><0441><044C><043A><0430>
+LanguageID=$0422
+LanguageCodePage=1251
+; If the language you are translating to requires special font faces or
+; sizes, uncomment any of the following entries and change them accordingly.
+;DialogFontName=
+;DialogFontSize=8
+;WelcomeFontName=Verdana
+;WelcomeFontSize=12
+;TitleFontName=Arial
+;TitleFontSize=29
+;CopyrightFontName=Arial
+;CopyrightFontSize=8
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=²íñòàëÿö³ÿ
+SetupWindowTitle=²íñòàëÿö³ÿ — %1
+UninstallAppTitle=Äå³íñòàëÿö³ÿ
+UninstallAppFullTitle=Äå³íñòàëÿö³ÿ — %1
+
+; *** Misc. common
+InformationTitle=²íôîðìàö³ÿ
+ConfirmTitle=ϳäòâåðäæåííÿ
+ErrorTitle=Ïîìèëêà
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=Öÿ ïðîãðàìà âñòàíîâèòü %1 íà Âàø êîìï'þòåð, ïðîäîâæèòè?
+LdrCannotCreateTemp=Íåìîæëèâî ñòâîðèòè òèì÷àñîâèé ôàéë. ²íñòàëÿö³ÿ ïåðåðâàíà
+LdrCannotExecTemp=Íåìîæëèâî âèêîíàòè ôàéë ó òèì÷àñîâîìó êàòàëîç³. ²íñòàëÿö³ÿ ïåðåðâàíà
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%nÏîìèëêà %2: %3
+SetupFileMissing=Ôàéë %1 â³äñóòí³é â ïàïö³ ³íñòàëÿö³¿. Áóäü ëàñêà, óñóíüòå ïðîáëåìó àáî îòðèìàéòå íîâó âåðñ³þ ïðîãðàìè.
+SetupFileCorrupt=²íñòàëÿö³éí³ ôàéëè ïîøêîäæåíí³. Áóäü ëàñêà, îòðèìàéòå íîâó êîï³þ ïðîãðàìè.
+SetupFileCorruptOrWrongVer=Ö³ ³íñòàëÿö³éí³ ôàéëè ïîøêîäæåíí³ àáî íåñóì³ñí³ ç äàíîþ âåðñ³ºþ ïðîãðàìè ³íñòàëÿö³é. Áóäü ëàñêà, óñóíüòå ïðîáëåìó àáî îòðèìàéòå íîâó êîï³þ ïðîãðàìè.
+NotOnThisPlatform=Öÿ ïðîãðàìà íå áóäå ïðàöþâàòè ó %1.
+OnlyOnThisPlatform=Öþ ïðîãðàìó ìîæíà çàïóñêàòè ò³ëüêè ó %1.
+OnlyOnTheseArchitectures=²íñòàëÿö³ÿ ö³º¿ ïðîãðàìè ìîæëèâà ò³ëüêè ó âåðñ³ÿõ Windows äëÿ íàñòóïíèõ àðõ³òåêòóð ïðîöåñîð³â:%n%n%1
+MissingWOW64APIs=Ó âåðñ³¿ Windows, â ÿê³é Âè ïðàöþºòå, â³äñóòí³ ôóíêö³¿, íåîáõ³äí³ äëÿ âèêîíàííÿ 64-á³òíî¿ ³íñòàëÿö³¿. Ùîá óñóíóòè öþ ïðîáëåìó, Âàì íåîáõ³äíî âñòàíîâèòè ïàêåò îíîâëåíü (Service Pack) %1.
+WinVersionTooLowError=Öÿ ïðîãðàìà ïîòðåáóº %1 âåðñ³¿ %2 àáî âèùå.
+WinVersionTooHighError=Ïðîãðàìà íå ìîæå áóòè âñòàíîâëåíà ó %1 âåðñ³¿ %2 àáî âèùå.
+AdminPrivilegesRequired=Ùîá âñòàíîâèòè öþ ïðîãðàìó, Âàì ïîòð³áíî âèêîíàòè âõ³ä ó ñèñòåìó ÿê Àäì³í³ñòðàòîð.
+PowerUserPrivilegesRequired=Ùîá âñòàíîâèòè öþ ïðîãðàìó, Âè ïîâèíí³ âèêîíàòè âõ³ä ó ñèñòåìó ÿê Àäì³í³ñòðàòîð àáî ÷ëåí ãðóïè "Äîñâ³ä÷åí³ êîðèñòóâà÷³" (Power Users).
+SetupAppRunningError=Âèÿâëåíî çàïóùåíèé åêçåìïëÿð %1.%n%nÁóäü ëàñêà, çàêðèéòå óñ³ åêçåìïëÿðè äîäàòêó, ïîò³ì íàòèñí³òü «OK», ùîá ïðîäîâæèòè, àáî «Ñêàñóâàòè», ùîá âèéòè.
+UninstallAppRunningError=Äå³íñòàëÿòîð âèÿâèâ çàïóùåíèé åêçåìïëÿð %1.%n%nÁóäü ëàñêà, çàêðèéòå óñ³ åêçåìïëÿðè äîäàòêó, ïîò³ì íàòèñí³òü «OK», ùîá ïðîäîâæèòè, àáî «Ñêàñóâàòè», ùîá âèéòè.
+
+; *** Misc. errors
+ErrorCreatingDir=Íåìîæëèâî ñòâîðèòè ïàïêó "%1"
+ErrorTooManyFilesInDir=Íåìîæëèâî ñòâîðèòè ôàéë â ïàïö³ "%1", òàê ÿê â í³é çàíàäòî áàãàòî ôàéë³â
+
+; *** Setup common messages
+ExitSetupTitle=Âèõ³ä ³ç ïðîãðàìè ³íñòàëÿö³¿
+ExitSetupMessage=Âñòàíîâëåííÿ íå çàâåðøåíî. ßêùî Âè âèéäåòå, ïðîãðàìà íå áóäå âñòàíîâëåíà.%n%nÂè çìîæåòå çàâåðøèòè âñòàíîâëåííÿ, çàïóñòèâøè ïðîãðàìó ³íñòàëÿö³¿ ï³çí³øå.%n%nÂèéòè ³ç ïðîãðàìè ³íñòàëÿö³¿?
+AboutSetupMenuItem=&Ïðî ïðîãðàìó...
+AboutSetupTitle=Ïðî ïðîãðàìó
+AboutSetupMessage=%1, âåðñ³ÿ %2%n%3%n%nÑàéò %1:%n%4
+AboutSetupNote=
+TranslatorNote=Ukrainian translation by Oleg Romanyk, olegu4ok@ya.ru
+
+; *** Buttons
+ButtonBack=< &Íàçàä
+ButtonNext=&Äàë³ >
+ButtonInstall=&Âñòàíîâèòè
+ButtonOK=OK
+ButtonCancel=Ñêàñóâàòè
+ButtonYes=&Òàê
+ButtonYesToAll=Òàê äëÿ &Âñ³õ
+ButtonNo=&ͳ
+ButtonNoToAll=Í&³ äëÿ Âñ³õ
+ButtonFinish=&Çàâåðøèòè
+ButtonBrowse=&Îãëÿä...
+ButtonWizardBrowse=&Îãëÿä...
+ButtonNewFolder=&Ñòâîðèòè ïàïêó
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=Âèáåð³òü ìîâó ³íñòàëÿö³¿
+SelectLanguageLabel=Âèáåð³òü ìîâó, ÿêà áóäå âèêîðèñòîâóâàòèñÿ â ïðîöåñ³ ³íñòàëÿö³¿:
+
+; *** Common wizard text
+ClickNext=Íàòèñí³òü «Äàë³», ùîá ïðîäîâæèòè, àáî «Ñêàñóâàòè», ùîá âèéòè ³ç ïðîãðàìè ³íñòàëÿö³¿.
+BeveledLabel=
+BrowseDialogTitle=Îãëÿä ïàïîê
+BrowseDialogLabel=Âèáåð³òü ïàïêó ³ç ñïèñêó ³ íàòèñí³òü «ÎÊ».
+NewFolderName=Íîâà ïàïêà
+
+; *** "Welcome" wizard page
+WelcomeLabel1=Ëàñêàâî ïðîñèìî äî Ìàéñòðà ³íñòàëÿö³¿ [name]
+WelcomeLabel2=Ïðîãðàìà âñòàíîâèòü [name/ver] íà Âàø êîìï'þòåð.%n%nÐåêîìåíäóºìî çàêðèòè âñ³ ³íø³ ïðîãðàìè ïåðåä òèì, ÿê ïðîäîâæèòè.
+
+; *** "Password" wizard page
+WizardPassword=Ïàðîëü
+PasswordLabel1=Öÿ ïðîãðàìà çàõèùåíà ïàðîëåì.
+PasswordLabel3=Áóäü ëàñêà, ââåä³òü ïàðîëü, ïîò³ì íàòèñí³òü «Äàë³». Ïàðîë³ íåîáõ³äíî ââîäèòè ç âðàõóâàííÿì ðåºñòðó.
+PasswordEditLabel=&Ïàðîëü:
+IncorrectPassword=Ââåäåíèé âàìè ïàðîëü íåâ³ðíèé. Áóäü ëàñêà, ñïðîáóéòå ùå ðàç.
+
+; *** "License Agreement" wizard page
+WizardLicense=˳öåíç³éíà Óãîäà
+LicenseLabel=Áóäü ëàñêà, ïðî÷èòàéòå íàñòóïíó âàæëèâó ³íôîðìàö³þ ïåðåä òèì, ÿê ïðîäîâæèòè.
+LicenseLabel3=Áóäü ëàñêà, ïðî÷èòàéòå íàñòóïíó ˳öåíç³éíó Óãîäó. Âè ïîâèíí³ ïðèéíÿòè óìîâè óãîäè ïåðåä òèì, ÿê ïðîäîâæèòè.
+LicenseAccepted=ß &ïðèéìàþ óìîâè óãîäè
+LicenseNotAccepted=ß &íå ïðèéìàþ óìîâè óãîäè
+
+; *** "Information" wizard pages
+WizardInfoBefore=²íôîðìàö³ÿ
+InfoBeforeLabel=Áóäü ëàñêà, ïðî÷èòàéòå íàñòóïíó âàæëèâó ³íôîðìàö³þ ïåðåä òèì, ÿê ïðîäîâæèòè.
+InfoBeforeClickLabel=Êîëè Âè áóäåòå ãîòîâ³ ïðîäîâæèòè ³íñòàëÿö³þ, íàòèñí³òü «Äàë³».
+WizardInfoAfter=²íôîðìàö³ÿ
+InfoAfterLabel=Áóäü ëàñêà, ïðî÷èòàéòå íàñòóïíó âàæëèâó ³íôîðìàö³þ ïåðåä òèì, ÿê ïðîäîâæèòè.
+InfoAfterClickLabel=Êîëè Âè áóäåòå ãîòîâ³ ïðîäîâæèòè ³íñòàëÿö³þ, íàòèñí³òü «Äàë³».
+
+; *** "User Information" wizard page
+WizardUserInfo=²íôîðìàö³ÿ ïðî êîðèñòóâà÷à
+UserInfoDesc=Áóäü ëàñêà, ââåä³òü äàí³ ïðî ñåáå.
+UserInfoName=&²ì'ÿ ³ ïð³çâèùå êîðèñòóâà÷à:
+UserInfoOrg=&Îðãàí³çàö³ÿ:
+UserInfoSerial=&Ñåð³éíèé íîìåð:
+UserInfoNameRequired=Âè ïîâèíí³ ââåñòè ³ì'ÿ.
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=Âèá³ð ïàïêè âñòàíîâëåííÿ
+SelectDirDesc=Ó ÿêó ïàïêó Âè õî÷åòå âñòàíîâèòè [name]?
+SelectDirLabel3=Ïðîãðàìà âñòàíîâèòü [name] ó íàñòóïíó ïàïêó.
+SelectDirBrowseLabel=Íàòèñí³òü «Äàë³», ùîá ïðîäîâæèòè. ßêùî Âè õî÷åòå âèáðàòè ³íøó ïàïêó, íàòèñí³òü «Îãëÿä...».
+DiskSpaceMBLabel=Ïîòð³áíî ÿê ì³í³ìóì [mb] Ìá â³ëüíîãî äèñêîâîãî ïðîñòîðó.
+ToUNCPathname=²íñòàëÿö³ÿ íå ìîæå âèêîíóâàòèñÿ â ïàïêó ïî ¿¿ ìåðåæåâîìó ³ìåí³. ßêùî Âè ³íñòàëþºòå â ìåðåæåâó ïàïêó, Âè ïîâèíí³ ï³ä'ºäíàòè ¿¿ ó âèãëÿä³ ìåðåæåâîãî äèñêó.
+InvalidPath=Âè ïîâèíí³ âêàçàòè ïîâíèé øëÿõ ç áóêâîþ äèñêó; %níàïðèêëàä:%n%nC:\APP%n%nàáî ó ôîðìàò³ UNC:%n%n\\³ì'ÿ_ñåðâåðà\³ì'ÿ_ðåñóðñó
+InvalidDrive=Âèáðàíèé Âàìè äèñê ÷è ìåðåæåâèé øëÿõ íå ³ñíóº àáî íåäîñòóïíèé. Áóäü ëàñêà, âèáåð³òü ³íøèé.
+DiskSpaceWarningTitle=Íåäîñòàòíüî ïðîñòîðó íà äèñêó
+DiskSpaceWarning=²íñòàëÿö³ÿ ïîòðåáóº íå ìåíøå %1 ÊÁ â³ëüíîãî ïðîñòîðó, à íà âèáðàíîìó Âàìè äèñêó ò³ëüêè %2 ÊÁ.%n%nÂè áàæàºòå òèì ïà÷å ïðîäîâæèòè ³íñòàëÿö³þ?
+DirNameTooLong=²ì'ÿ ïàïêè ÷è øëÿõ äî íå¿ ïåðåâèùóþòü ïðèïóñòèìó äîâæèíó.
+InvalidDirName=Âêàçàíå ³ì'ÿ ïàïêè íåïðèïóñòèìå.
+BadDirName32=²ì'ÿ ïàïêè íå ìîæå ì³ñòèòè òàêèõ ñèìâîë³â: %n%n%1
+DirExistsTitle=Ïàïêà ³ñíóº
+DirExists=Ïàïêà%n%n%1%n%nâæå ³ñíóº. Âñå ð³âíî âñòàíîâèòè â öþ ïàïêó?
+DirDoesntExistTitle=Ïàïêà íå ³ñíóº
+DirDoesntExist=Ïàïêà%n%n%1%n%níå ³ñíóº. Âè õî÷åòå ñòâîðèòè ¿¿?
+
+; *** "Select Components" wizard page
+WizardSelectComponents=Âèá³ð êîìïîíåíò³â
+SelectComponentsDesc=ßê³ êîìïîíåíòè ïîâèíí³ áóòè âñòàíîâëåí³?
+SelectComponentsLabel2=Âèáåð³òü êîìïîíåíòè, ÿê³ ïîòð³áíî âñòàíîâèòè; çí³ì³òü ïðàïîðö³ ç êîìïîíåíò³â, âñòàíîâëþâàòè êîòð³ íå ïîòð³áíî. Íàòèñí³òü «Äàë³», êîëè Âè áóäåòå ãîòîâ³ ïðîäîâæèòè.
+FullInstallation=Ïîâíà ³íñòàëÿö³ÿ
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=Êîìïàêòíà ³íñòàëÿö³ÿ
+CustomInstallation=Âèá³ðêîâà ³íñòàëÿö³ÿ
+NoUninstallWarningTitle=Âñòàíîâëåí³ êîìïîíåíòè
+NoUninstallWarning=Ïðîãðàìà ³íñòàëÿö³¿ âèÿâèëà, ùî íàñòóïí³ êîìïîíåíòè âæå âñòàíîâëåí³ íà Âàøîìó êîìï'þòåð³:%n%n%1%n%nÑêàñóâàííÿ âèáîðó öèõ êîìïîíåíò³â íå âèäàëèòü ¿õ.%n%nÏðîäîâæèòè?
+ComponentSize1=%1 ÊÁ
+ComponentSize2=%1 ÌÁ
+ComponentsDiskSpaceMBLabel=Ïîòî÷íèé âèá³ð ïîòðåáóº íå ìåíøå [mb] Ìá íà äèñêó.
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=Âèáåð³òü äîäàòêîâ³ çàâäàííÿ
+SelectTasksDesc=ßê³ äîäàòêîâ³ çàâäàííÿ íåîáõ³äíî âèêîíàòè?
+SelectTasksLabel2=Âèáåð³òü äîäàòêîâ³ çàâäàííÿ, êîòð³ ïîâèíí³ âèêîíàòè ïðî ³íñòàëÿö³¿ [name], ï³ñëÿ öüîãî íàòèñí³òü «Äàë³».
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=Âèáåð³òü ïàïêó â ìåíþ «Ñòàðò»
+SelectStartMenuFolderDesc=Äå ïðîãðàìà ³íñòàëÿö³¿ ïîâèííà ñòâîðèòè ÿðëèêè?
+SelectStartMenuFolderLabel3=Ïðîãðàìà ³íñòàëÿö³¿ ñòâîðèòü ÿðëèêè â íàñòóïí³é ïàïö³ ìåíþ «Ñòàðò».
+SelectStartMenuFolderBrowseLabel=Íàòèñí³òü «Äàë³», ùîá ïðîäîâæèòè. ßêùî Âè õî÷åòå âèáðàòè ³íøó ïàïêó, íàòèñí³òü «Îãëÿä...».
+MustEnterGroupName=Âè ïîâèíí³ ââåñòè ³ì'ÿ ïàïêè.
+GroupNameTooLong=²ì'ÿ ïàïêè ÷è øëÿõ äî íå¿ ïåðåâèùóþòü ïðèïóñòèìó äîâæèíó.
+InvalidGroupName=Âêàçàíå ³ì'ÿ ïàïêè íåïðèïóñòèìå.
+BadGroupName=²ì'ÿ ïàïêè íå ìîæå ì³ñòèòè ñèìâîë³â:%n%n%1
+NoProgramGroupCheck2=&Íå ñòâîðþâàòè ïàïêó â ìåíþ «Ñòàðò»
+
+; *** "Ready to Install" wizard page
+WizardReady=Âñå ãîòîâî äëÿ ³íñòàëÿö³¿
+ReadyLabel1=Ïðîãðàìà ³íñòàëÿö³¿ ãîòîâà ïî÷àòè âñòàíîâëåííÿ [name] íà Âàø êîìï'þòåð.
+ReadyLabel2a=Íàòèñí³òü «Âñòàíîâèòè», ùîá ïðîäîâæèòè, àáî «Íàçàä», ÿêùî âè õî÷åòå ïðîäèâèòèñÿ ÷è çì³íèòè îïö³¿ ³íñòàëÿö³¿.
+ReadyLabel2b=Íàòèñí³òü «Âñòàíîâèòè», ùîá ïðîäîâæèòè.
+ReadyMemoUserInfo=²íôîðìàö³ÿ ïðî êîðèñòóâà÷à:
+ReadyMemoDir=Ïàïêà ³íñòàëÿö³¿:
+ReadyMemoType=Òèï ³íñòàëÿö³¿:
+ReadyMemoComponents=Âèáðàí³ êîìïîíåíòè:
+ReadyMemoGroup=Ïàïêà â ìåíþ «Ñòàðò»:
+ReadyMemoTasks=Äîäàòêîâ³ çàâäàííÿ:
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=ϳäãîòîâêà äî ³íñòàëÿö³¿
+PreparingDesc=Ïðîãðàìà ³íñòàëÿö³¿ ãîòóºòüñÿ äî âñòàíîâëåííÿ [name] íà Âàø êîìï'þòåð.
+PreviousInstallNotCompleted=²íñòàëÿö³ÿ àáî äå³íñòàëÿö³ÿ ïîïåðåäíüî¿ ïðîãðàìè íå áóëè çàâåðøåí³. Âàì çíàäîáèòüñÿ ïåðåçàâàíòàæèòè Âàø êîìï'þòåð, ùîáè çàâåðøèòè öþ ³íñòàëÿö³þ.%n%nϳñëÿ ïåðåçàâàíòàæåííÿ çàïóñò³òü çíîâó Ïðîãðàìó ³íñòàëÿö³¿, ùîáè çàâåðøèòè âñòàíîâëåííÿ [name].
+CannotContinue=Íåìîæëèâî ïðîäîâæèòè ³íñòàëÿö³þ. Íàòèñí³òü «Ñêàñóâàòè» äëÿ âèõîäó ³ç ïðîãðàìè.
+
+; *** "Installing" wizard page
+WizardInstalling=²íñòàëÿö³ÿ...
+InstallingLabel=Áóäü ëàñêà, ïî÷åêàéòå, ïîêè [name] âñòàíîâèòüñÿ íà Âàø êîìï'þòåð.
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=Çàâåðøåííÿ Ìàéñòðà ³íñòàëÿö³¿ [name]
+FinishedLabelNoIcons=Ïðîãðàìà [name] âñòàíîâëåíà íà Âàø êîìï'þòåð.
+FinishedLabel=Ïðîãðàìà [name] âñòàíîâëåíà íà Âàø êîìï'þòåð. Äîäàòîê ìîæíà çàïóñòèòè ç äîïîìîãîþ â³äïîâ³äíîãî çíà÷êà.
+ClickFinish=Íàòèñí³òü «Çàâåðøèòè», ùîáè âèéòè ³ç ïðîãðàìè ³íñòàëÿö³¿.
+FinishedRestartLabel=Äëÿ çàâåðøåííÿ ³íñòàëÿö³¿ [name] ïîòðåáóºòüñÿ ïåðåçàâàíòàæèòè êîìï'þòåð. Ïåðåçàâàíòàæèòè çàðàç?
+FinishedRestartMessage=Äëÿ çàâåðøåííÿ ³íñòàëÿö³¿ [name] ïîòðåáóºòüñÿ ïåðåçàâàíòàæèòè êîìï'þòåð.%n%nÏåðåçàâàíòàæèòè çàðàç?
+ShowReadmeCheck=ß õî÷ó ïåðåãëÿíóòè ôàéë README
+YesRadio=&Òàê, ïåðåçàâàíòàæèòè êîìï'þòåð çàðàç
+NoRadio=&ͳ, ÿ ïåðåçàâàíòàæó êîìï'þòåð ï³çí³øå
+; used for example as 'Run MyProg.exe'
+RunEntryExec=Çàïóñòèòè %1
+; used for example as 'View Readme.txt'
+RunEntryShellExec=Ïåðåãëÿíóòè %1
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=Íåîáõ³äíî âñòàâèòè íàñòóïíèé äèñê
+SelectDiskLabel2=Áóäü ëàñêà, âñòàâòå äèñê %1 ³ íàòèñí³òü «OK».%n%nßêùî ôàéëè öüîãî äèñêà ìîæóòü áóòè çíàéäåí³ â ïàïö³, ÿêà â³äð³çíÿºòüñÿ â³ä ïîêàçàíî¿ íèæ÷å, ââåä³òü ïðàâèëüíèé øëÿõ àáî íàòèñí³òü «Îãëÿä...».
+PathLabel=&Øëÿõ:
+FileNotInDir2=Ôàéë "%1" íå çíàéäåíèé ó "%2". Áóäü ëàñêà, âñòàâòå ïðàâèëüíèé äèñê àáî âèáåð³òü ³íøó ïàïêó.
+SelectDirectoryLabel=Áóäü ëàñêà, âêàæ³òü øëÿõ äî íàñòóïíîãî äèñêó.
+
+; *** Installation phase messages
+SetupAborted=²íñòàëÿö³ÿ áóëà íå çàâåðøåíà.%n%nÁóäü ëàñêà, óñóíüòå ïðîáëåìó ³ çàïóñò³òü ³íñòàëÿö³þ çíîâó.
+EntryAbortRetryIgnore=Íàòèñí³òü «Ïîâòîð», ùîáè ïîâòîðèòè ñïðîáó, «Ïðîïóñòèòè», ùîáè ïðîïóñòèòè ôàéë, àáî «Ñêàñóâàòè» äëÿ ñêàñóâàííÿ ³íñòàëÿö³¿.
+
+; *** Installation status messages
+StatusCreateDirs=Ñòâîðåííÿ ïàïîê...
+StatusExtractFiles=Ðîçïàêóâàííÿ ôàéë³â...
+StatusCreateIcons=Ñòâîðåííÿ ÿðëèê³â...
+StatusCreateIniEntries=Ñòâîðåííÿ INI-ôàéë³â...
+StatusCreateRegistryEntries=Ñòâîðåííÿ çàïèñ³â ðåºñòðó...
+StatusRegisterFiles=Ðåºñòðàö³ÿ ôàéë³â...
+StatusSavingUninstall=Çáåðåæåííÿ ³íôîðìàö³¿ äëÿ äå³íñòàëÿö³¿...
+StatusRunProgram=Çàâåðøåííÿ ³íñòàëÿö³¿...
+StatusRollback=Ñêàñóâàííÿ çì³í...
+
+; *** Misc. errors
+ErrorInternal2=Âíóòð³øíÿ ïîìèëêà: %1
+ErrorFunctionFailedNoCode=%1: çá³é
+ErrorFunctionFailed=%1: çá³é; êîä %2
+ErrorFunctionFailedWithMessage=%1: çá³é; êîä %2.%n%3
+ErrorExecutingProgram=Íåìîæëèâî âèêîíàòè ôàéë:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=Ïîìèëêà â³äêðèòòÿ êëþ÷à ðåºñòðó:%n%1\%2
+ErrorRegCreateKey=Ïîìèëêà ñòâîðåííÿ êëþ÷à ðåºñòðó:%n%1\%2
+ErrorRegWriteKey=Ïîìèëêà çàïèñó â êëþ÷ ðåºñòðó:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=Ïîìèëêà ñòâîðåííÿ çàïèñó â INI-ôàéë³ "%1".
+
+; *** File copying errors
+FileAbortRetryIgnore=Íàòèñí³òü «Ïîâòîð», ùîáè ïîâòîðèòè, «Ïðîïóñòèòè», ùîáè ïðîïóñòèòè ôàéë (íå ðåêîìåíäóºòüñÿ) àáî «Ñêàñóâàòè» äëÿ âèõîäó.
+FileAbortRetryIgnore2=Íàòèñí³òü «Ïîâòîð», ùîáè ïîâòîðèòè, «Ïðîïóñòèòè», ùîáè ³ãíîðóâàòè ïîìèëêó (íå ðåêîìåíäóºòüñÿ) àáî «Ñêàñóâàòè» äëÿ âèõîäó.
+SourceIsCorrupted=Âèõ³äíèé ôàéë ïîøêîäæåíèé
+SourceDoesntExist=Âèõ³äíèé ôàéë "%1" íå ³ñíóº
+ExistingFileReadOnly=²ñíóþ÷èé ôàéë ïîì³÷åíèé ÿê «ôàéë ò³ëüêè äëÿ ÷èòàííÿ».%n%nÍàòèñí³òü «Ïîâòîð», ùîáè âèäàëèòè àòðèáóò «ò³ëüêè äëÿ ÷èòàííÿ», «Ïðîïóñòèòè», ùîáè ïðîïóñòèòè ôàéë àáî «Ñêàñóâàòè» äëÿ âèõîäó.
+ErrorReadingExistingDest=³äáóëàñÿ ïîìèëêà ïðè ñïðîá³ ÷èòàííÿ ³ñíóþ÷îãî ôàéëó:
+FileExists=Ôàéë âæå ³ñíóº.%n%nÏåðåçàïèñàòè éîãî?
+ExistingFileNewer=²ñíóþ÷èé ôàéë á³ëüø íîâèé, ÷èì âñòàíîâëþâàíèé. Ðåêîìåíäóºòüñÿ çáåðåãòè ³ñíóþ÷èé ôàéë.%n%nÂè õî÷åòå çáåðåãòè ³ñíóþ÷èé ôàéë?
+ErrorChangingAttr=³äáóëàñÿ ïîìèëêà ïðè ñïðîá³ çì³íè àòðèáóò³â ³ñíóþ÷îãî ôàéëó:
+ErrorCreatingTemp=³äáóëàñÿ ïîìèëêà ïðè ñïðîá³ ñòâîðåííÿ ôàéëó â ïàïö³ ïðèçíà÷åííÿ:
+ErrorReadingSource=³äáóëàñÿ ïîìèëêà ïðè ñïðîá³ ÷èòàííÿ âèõ³äíîãî ôàéëó:
+ErrorCopying=³äáóëàñÿ ïîìèëêà ïðè ñïðîá³ êîï³þâàííÿ ôàéëó:
+ErrorReplacingExistingFile=³äáóëàñÿ ïîìèëêà ïðè ñïðîá³ çàì³íè ³ñíóþ÷îãî ôàéëó:
+ErrorRestartReplace=Ïîìèëêà RestartReplace:
+ErrorRenamingTemp=³äáóëàñÿ ïîìèëêà ïðè ñïðîá³ ïåðåéìåíîâóâàííÿ ôàéëó â ïàïö³ ïðèçíà÷åííÿ:
+ErrorRegisterServer=Íåìîæëèâî çàðåºñòðóâàòè DLL/OCX: %1
+ErrorRegSvr32Failed=Ïîìèëêà ïðè âèêîíàíí³ RegSvr32, êîä ïîâåðíåííÿ %1
+ErrorRegisterTypeLib=Íåìîæëèâî çàðåºñòðóâàòè á³áë³îòåêó òèï³â (Type Library): %1
+
+; *** Post-installation errors
+ErrorOpeningReadme=³äáóëàñÿ ïîìèëêà ïðè ñïðîá³ â³äêðèòòÿ ôàéëó README.
+ErrorRestartingComputer=Ïðîãðàì³ ³íñòàëÿö³é íå âäàëîñÿ ïåðåçàâàíòàæèòè êîìï'þòåð. Áóäü ëàñêà, âèêîíàéòå öå ñàìîñò³éíî.
+
+; *** Uninstaller messages
+UninstallNotFound=Ôàéë "%1" íå ³ñíóº, äå³íñòàëÿö³ÿ íåìîæëèâà.
+UninstallOpenError=Íåìîæëèâî â³äêðèòè ôàéë "%1". Äå³íñòàëÿö³ÿ íåìîæëèâà
+UninstallUnsupportedVer=Ôàéë ïðîòîêîëó äëÿ äå³íñòàëÿö³¿ "%1" íå ðîçï³çíàíèé äàíîþ âåðñ³ºþ ïðîãðàìè-äå³íñòàëÿö³¿. Äå³íñòàëÿö³ÿ íåìîæëèâà
+UninstallUnknownEntry=Çóñòð³âñÿ íåâ³äîìèé ïóíêò (%1) â ôàéë³ ïðîòîêîëó äëÿ äå³íñòàëÿö³¿
+ConfirmUninstall=Âè âïåâíåí³, ùî õî÷åòå âèäàëèòè %1 ³ âñ³ êîìïîíåíòè ïðîãðàìè?
+UninstallOnlyOnWin64=Öþ ïðîãðàìó ìîæëèâî äå³íñòàëþâàòè ò³ëüêè ó ñåðåäîâèù³ 64-á³òíî¿ Windows.
+OnlyAdminCanUninstall=Öÿ ïðîãðàìà ìîæå áóòè äå³íñòàëüîâàíà ò³ëüêè êîðèñòóâà÷àìè ç àäì³í³ñòðàòîðñüêèìè ïðèâ³ëåÿìè.
+UninstallStatusLabel=Áóäü ëàñêà, ïî÷åêàéòå, ïîêè %1 áóäå âèäàëåíà ç Âàøîãî êîìï'þòåðà .
+UninstalledAll=Ïðîãðàìà %1 áóëà ïîâí³ñòþ âèäàëåíà ç Âàøîãî êîìï'þòåðà.
+UninstalledMost=Äå³íñòàëÿö³ÿ %1 çàâåðøåíà.%n%n×àñòèíó åëåìåíò³â íå âäàëîñÿ âèäàëèòè. Âè ìîæåòå âèäàëèòè ¿é ñàìîñò³éíî.
+UninstalledAndNeedsRestart=Äëÿ çàâåðøåííÿ äå³íñòàëÿö³¿ %1 íåîáõ³äíî âèêîíàòè ïåðåçàâàíòàæåííÿ Âàøîãî êîìï'þòåðà.%n%nÂèêîíàòè ïåðåçàâàíòàæåííÿ çàðàç?
+UninstallDataCorrupted=Ôàéë "%1" ïîøêîäæåíèé. Äå³íñòàëÿö³ÿ íåìîæëèâà
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=Âèäàëèòè ñï³ëüíî âèêîðèñòîâóâàíèé ôàéë?
+ConfirmDeleteSharedFile2=Ñèñòåìà âêàçóº, ùî íàñòóïíèé ñï³ëüíî âèêîðèñòîâóâàíèé ôàéë á³ëüøå íå âèêîðèñòîâóºòüñÿ í³ÿêèìè ³íøèìè çàñòîñóâàííÿìè. ϳäòâåðäæóºòå âèäàëåííÿ ôàéëó?%n%nßêùî ÿê³-íåáóäü ïðîãðàìè âñå ùå âèêîðèñòîâóþòü öåé ôàéë, ³ â³í áóäå âèäàëåíèé, âîíè íå çìîæóòü ïðàöþâàòè ïðàâèëüíî. ßêùî Âè íå óïåâíåí³, âèáåð³òü «Í³». Çàëèøåíèé ôàéë íå íàøêîäèòü Âàø³é ñèñòåì³.
+SharedFileNameLabel=²ì'ÿ ôàéëó:
+SharedFileLocationLabel=Ðîçì³ùåííÿ:
+WizardUninstalling=Ñòàí äå³íñòàëÿö³¿
+StatusUninstalling=Äå³íñòàëÿö³ÿ %1...
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1, âåðñ³ÿ %2
+AdditionalIcons=Äîäàòêîâ³ ÿðëèêè:
+CreateDesktopIcon=Ñòâîðèòè ÿðëèêè íà &Ðîáî÷îìó ñòîë³
+CreateQuickLaunchIcon=Ñòâîðèòè ÿðëèêè ó &Ïàíåë³ øâèäêîãî ñòàðòó
+ProgramOnTheWeb=Ñàéò %1 â ²íòåðíåò³
+UninstallProgram=Äå³íñòàëþâàòè %1
+LaunchProgram=Çàïóñòèòè %1
+AssocFileExtension=Çâ&'ÿçàòè %1 ç ôàéëàìè, ùî ìàþòü ðîçøèðåííÿ %2
+AssocingFileExtension=Çâ'ÿçóâàííÿ %1 ç ôàéëàìè %2...
diff --git a/tools/innosetup/uk_UA_scilab.isl b/tools/innosetup/uk_UA_scilab.isl
new file mode 100755
index 000000000..19a42e2e3
--- /dev/null
+++ b/tools/innosetup/uk_UA_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+uk_UA.LANGUAGE =uk_UA
+
+uk_UA.MsgBoxJRENotFound =Java Runtime Environment not detected.
+uk_UA.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+uk_UA.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+uk_UA.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+uk_UA.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+uk_UA.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+uk_UA.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+uk_UA.MsgBoxWebOpen =Can not open web page.
+uk_UA.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+uk_UA.MsgBoxDevToolsRequired2 =Please install development_tools module.
+uk_UA.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+uk_UA.MsgBoxTclsciRequired2 =Please install tclsci module.
+uk_UA.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+uk_UA.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+uk_UA.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+uk_UA.MsgBoxFftw4 =Can not open web page.
+uk_UA.MsgBoxWinVer =Windows 2000 is required.
+uk_UA.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+uk_UA.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+uk_UA.ButtonAboutModules =&About modules ...
+;
+uk_UA.DescriptionEquDif =Differential Equations Module
+uk_UA.DescriptionInterpolation =Interpolation Module
+uk_UA.DescriptionPolynomials =Polynomials Module
+uk_UA.DescriptionSymbolic =Symbolic Module
+uk_UA.DescriptionStats =Statistics Module
+uk_UA.DescriptionSparse =Sparse Matrix Module
+uk_UA.DescriptionLinAlg =Linear Algebra Module
+uk_UA.DescriptionSigProc =Signal processing Module
+uk_UA.DescriptionCacsd =C.A.C.S.D Module
+uk_UA.DescriptionGraphics =Graphics Module
+uk_UA.DescriptionOptim =Optimization Module
+uk_UA.DescriptionMetanet =Metanet Toolbox
+uk_UA.DescriptionScicos =Scicos Toolbox
+uk_UA.DescriptionArnoldi =ARnoldi PACKage Toolbox
+uk_UA.DescriptionUmfpack =UMFPACK for Scilab
+uk_UA.DescriptionCompatFunctions =Compatibility functions
+uk_UA.DescriptionM2sci =M2SCI Toolbox
+uk_UA.DescriptionMatio =MAT File Input/Output Toolbox
+uk_UA.DescriptionExternalObjects =External objects
+uk_UA.DescriptionSound =Sound file handling Toolbox
+uk_UA.DescriptionRandlib =Randlib Toolbox
+uk_UA.DescriptionMexlib =Mexlib Tools
+uk_UA.DescriptionIntersci =Intersci Toolbox
+uk_UA.DescriptionTclTK =TCL/TK in Scilab
+uk_UA.DescriptionSpreadsheet =Spreadsheet Toolbox
+uk_UA.DescriptionJVM =Java Runtime
+uk_UA.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+uk_UA.DescriptionFftwModule =FFTW interface for Scilab
+uk_UA.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+uk_UA.DescriptionRefFftwLibrary =Reference FFTW library
+uk_UA.DescriptionParametersTlbx =Parameters Toolbox
+uk_UA.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+uk_UA.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+uk_UA.DescriptionDevTools =Development Tools
+uk_UA.DescriptionTests =Tests for Scilab
+uk_UA.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+uk_UA.DescriptionComConnector =COM connector
+uk_UA.DescriptionSciNotes =SciNotes: Editor for Scilab
+uk_UA.DescriptionXcos =Xcos
+uk_UA.DescriptionParallel =Parallel Computing with Scilab
+uk_UA.DescriptionModulesManager =Tools for management of extern modules
+uk_UA.DescriptionModuleJVM =JVM Module
+;
+uk_UA.ConsoleIconName =Scilab Console
+;
+uk_UA.WebIconScilab =Scilab on the Web
+;
+uk_UA.ReadMeIcon =Read Me
+;
+uk_UA.UnInstallIcon =Uninstall Scilab
+;
+uk_UA.RegKeyRunWith =Run with
+;
+uk_UA.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+uk_UA.DescriptionConfigureAtlas =Configure Atlas
+;
+uk_UA.DescriptionLaunchScilab =Launch Scilab
+;
+uk_UA.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+uk_UA.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+uk_UA.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+uk_UA.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+uk_UA.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+uk_UA.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+uk_UA.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+uk_UA.DescriptionDefaultInstall =Installation (Default)
+uk_UA.DescriptionFullInstall =Full installation
+uk_UA.DescriptionCustomInstall =Custom installation
+uk_UA.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+uk_UA.DescriptionCPUOptimization =CPU Optimization for Scilab
+uk_UA.DescriptionATLASLibrary =Atlas Library for Scilab
+uk_UA.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+uk_UA.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+uk_UA.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+uk_UA.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+uk_UA.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+uk_UA.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+uk_UA.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+uk_UA.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+uk_UA.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+uk_UA.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/uninstalldelete.iss b/tools/innosetup/uninstalldelete.iss
new file mode 100755
index 000000000..2a86b319d
--- /dev/null
+++ b/tools/innosetup/uninstalldelete.iss
@@ -0,0 +1,25 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010-2011 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+Type: files; Name: {app}\scilabwebsite.url
+Type: files; Name: {app}\bin\*.dll
+Type: files; Name: {app}\bin\*.txt
+Type: files; Name: {app}\bin
+Type: filesandordirs; Name: {app}\bin\fftw
+Type: filesandordirs; Name: {app}\contrib
+Type: filesandordirs; Name: {app}\.atoms
+Type: filesandordirs; Name: {app}\etc
+Type: filesandordirs; Name: {app}\modules
+;-------------------------------------------------------------------------------
diff --git a/tools/innosetup/zh_CN.isl b/tools/innosetup/zh_CN.isl
new file mode 100755
index 000000000..9a9bed028
--- /dev/null
+++ b/tools/innosetup/zh_CN.isl
@@ -0,0 +1,320 @@
+; *** Inno Setup version 5.1.11+ Simplified Chinese messages ***
+;
+; Based on previous version by Peng Bai
+; Update by Mack Zhang (hua_wuxin@21cn.com) on Apr. 10, 2008
+;
+; To download user-contributed translations of this file, go to:
+; http://www.jrsoftware.org/files/istrans/
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+
+[LangOptions]
+; The following three entries are very important. Be sure to read and
+; understand the '[LangOptions] section' topic in the help file.
+LanguageName=<4E2D><6587> (<7B80><4F53>)
+LanguageID=$0804
+LanguageCodePage=936
+; If the language you are translating to requires special font faces or
+; sizes, uncomment any of the following entries and change them accordingly.
+DialogFontName=ËÎÌå
+DialogFontSize=9
+;WelcomeFontName=Verdana
+;WelcomeFontSize=12
+;TitleFontName=Arial
+;TitleFontSize=29
+;CopyrightFontName=Arial
+;CopyrightFontSize=8
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=°²×°Ïòµ¼
+SetupWindowTitle=°²×°Ïòµ¼ - %1
+UninstallAppTitle=жÔØÏòµ¼
+UninstallAppFullTitle=%1 жÔØÏòµ¼
+
+; *** Misc. common
+InformationTitle=ÐÅÏ¢
+ConfirmTitle=È·ÈÏ
+ErrorTitle=´íÎó
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=°²×°Ïòµ¼½«ÔÚÄãµÄµçÄÔÉÏ°²×° %1¡£ÄãÈ·¶¨Òª¼ÌÐøÂð£¿
+LdrCannotCreateTemp=ÎÞ·¨´´½¨ÁÙʱÎļþ¡£°²×°ÖÐÖ¹
+LdrCannotExecTemp=ÎÞ·¨ÔËÐÐÁÙʱÎļþ¼ÐÖеÄÎļþ¡£°²×°ÖÐÖ¹
+
+; *** Startup error messages
+LastErrorMessage=%1.%n%n´íÎó %2£º%3
+SetupFileMissing=°²×°Îļþ¼ÐȱÉÙÎļþ %1¡£Çë¾ÀÕý´ËÎÊÌâ»òÕßË÷È¡Èí¼þµÄа汾¡£
+SetupFileCorrupt=°²×°ÎļþÒÑË𻵡£ÇëË÷È¡Èí¼þµÄа汾¡£
+SetupFileCorruptOrWrongVer=°²×°ÎļþÒÑË𻵣¬»òÕßÓë´Ë°²×°Ïòµ¼µÄ°æ±¾²»¼æÈÝ¡£Çë¾ÀÕý´ËÎÊÌâ»òÕßË÷È¡Èí¼þµÄа汾¡£
+NotOnThisPlatform=´Ë³ÌÐò²»ÄÜÔÚ %1 ÉÏÔËÐС£
+OnlyOnThisPlatform=´Ë³ÌÐò±ØÐëÔÚ %1 ÉÏÔËÐС£
+OnlyOnTheseArchitectures=´Ë³ÌÐòÖ»ÄÜ°²×°ÔÚΪÏÂÁд¦ÀíÆ÷¼Ü¹¹Éè¼ÆµÄ Windows °æ±¾ÖУº%n%n%1
+MissingWOW64APIs=µ±Ç°µÄ Windows °æ±¾Ã»Óаüº¬Ö´ÐÐ 64 λ°²×°Ïòµ¼ËùÐèµÄº¯Êý¡£ÈôÒª¾ÀÕý´ËÎÊÌ⣬Çë°²×° Service Pack %1¡£
+WinVersionTooLowError=´Ë³ÌÐòÐèÒª %1 v%2 »ò¸ü¸ß°æ±¾¡£
+WinVersionTooHighError=´Ë³ÌÐò²»ÄÜ°²×°ÔÚ %1 v%2 »ò¸ü¸ß°æ±¾ÉÏ¡£
+AdminPrivilegesRequired=°²×°´Ë³ÌÐòʱÄã±ØÐëÒÔ¹ÜÀíÔ±Éí·ÝµÇ¼¡£
+PowerUserPrivilegesRequired=°²×°´Ë³ÌÐòʱÄã±ØÐëÒÔ¹ÜÀíÔ±»ò Power Users ×é³ÉÔ±µÄÉí·ÝµÇ¼¡£
+SetupAppRunningError=°²×°Ïòµ¼·¢ÏÖ %1 ÕýÔÚÔËÐС£%n%nÇëÁ¢¼´¹Ø±ÕÆäËùÓÐʵÀý£¬È»ºóµ¥»÷¡°È·¶¨¡±¼ÌÐø£¬»òµ¥»÷¡°È¡Ïû¡±Í˳ö¡£
+UninstallAppRunningError=жÔسÌÐò·¢ÏÖ %1 ÕýÔÚÔËÐС£%n%nÇëÁ¢¼´¹Ø±ÕÆäËùÓÐʵÀý£¬È»ºóµ¥»÷¡°È·¶¨¡±¼ÌÐø£¬»òµ¥»÷¡°È¡Ïû¡±Í˳ö¡£
+
+; *** Misc. errors
+ErrorCreatingDir=°²×°Ïòµ¼ÎÞ·¨´´½¨Îļþ¼Ð¡°%1¡±
+ErrorTooManyFilesInDir=ÎÞ·¨ÔÚÎļþ¼Ð¡°%1¡±Öд´½¨Îļþ£¬ÒòΪËü°üº¬ÁËÌ«¶àÎļþ
+
+; *** Setup common messages
+ExitSetupTitle=Í˳ö°²×°
+ExitSetupMessage=°²×°ÉÐδÍê³É¡£Èç¹ûÄãÏÖÔÚÍ˳ö£¬Èí¼þ½«²»»á°²×°¡£%n%nÄã¿ÉÒÔÔÚÆäËüʱ¼äÖØÐÂÔËÐа²×°Ïòµ¼À´Íê³É°²×°¡£%n%nÏÖÔÚÍ˳ö°²×°Âð£¿
+AboutSetupMenuItem=¹ØÓÚ°²×°Ïòµ¼(&A)...
+AboutSetupTitle=¹ØÓÚ°²×°Ïòµ¼
+AboutSetupMessage=%1 °æ±¾ %2%n%3%n%n%1 Ö÷Ò³£º%n%4
+AboutSetupNote=
+TranslatorNote=
+
+; *** Buttons
+ButtonBack=< ÉÏÒ»²½(&B)
+ButtonNext=ÏÂÒ»²½(&N) >
+ButtonInstall=°²×°(&I)
+ButtonOK=È·¶¨
+ButtonCancel=È¡Ïû
+ButtonYes=ÊÇ(&Y)
+ButtonYesToAll=È«ÊÇ(&A)
+ButtonNo=·ñ(&N)
+ButtonNoToAll=È«·ñ(&O)
+ButtonFinish=Íê³É(&F)
+ButtonBrowse=ä¯ÀÀ(&B)...
+ButtonWizardBrowse=ä¯ÀÀ(&R)...
+ButtonNewFolder=´´½¨Îļþ¼Ð(&M)
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=Ñ¡Ôñ°²×°ÓïÑÔ
+SelectLanguageLabel=Ñ¡Ôñ°²×°ÆÚ¼äҪʹÓõÄÓïÑÔ£º
+
+; *** Common wizard text
+ClickNext=µ¥»÷¡°ÏÂÒ»²½¡±¼ÌÐø£¬»òµ¥»÷¡°È¡Ïû¡±Í˳ö°²×°¡£
+BeveledLabel=
+BrowseDialogTitle=ä¯ÀÀÎļþ¼Ð
+BrowseDialogLabel=Ñ¡ÔñÒ»¸öÎļþ¼Ð£¬È»ºóµ¥»÷¡°È·¶¨¡±¡£
+NewFolderName=н¨Îļþ¼Ð
+
+; *** "Welcome" wizard page
+WelcomeLabel1=»¶Ó­Ê¹Óà [name] °²×°Ïòµ¼
+WelcomeLabel2=°²×°Ïòµ¼½«ÔÚÄãµÄµçÄÔÉÏ°²×° [name/ver]¡£%n%n½¨ÒéÄãÔÚ¼ÌÐø֮ǰ¹Ø±ÕËùÓÐÆäËüÓ¦ÓóÌÐò¡£
+
+; *** "Password" wizard page
+WizardPassword=ÃÜÂë
+PasswordLabel1=´Ë°²×°Ïòµ¼ÓÐÃÜÂë±£»¤¡£
+PasswordLabel3=ÇëÊäÈëÃÜÂ룬Ȼºóµ¥»÷¡°ÏÂÒ»²½¡±½øÈëÏÂÒ»²½¡£ÃÜÂëÇø·Ö´óСд¡£
+PasswordEditLabel=ÃÜÂë(&P)£º
+IncorrectPassword=ÄãÊäÈëµÄÃÜÂë²»ÕýÈ·¡£ÇëÖØÊÔ¡£
+
+; *** "License Agreement" wizard page
+WizardLicense=Ðí¿ÉЭÒé
+LicenseLabel=ÇëÔÚ¼ÌÐø֮ǰÔĶÁÒÔÏÂÖØÒªÐÅÏ¢¡£
+LicenseLabel3=ÇëÔĶÁÒÔÏÂÐí¿ÉЭÒé¡£ÔÚ¼ÌÐø°²×°Ö®Ç°£¬Äã±ØÐë½ÓÊÜ´ËЭÒéµÄÌõ¿î¡£
+LicenseAccepted=ÎÒ½ÓÊÜЭÒé(&A)
+LicenseNotAccepted=ÎÒ²»½ÓÊÜЭÒé(&D)
+
+; *** "Information" wizard pages
+WizardInfoBefore=ÐÅÏ¢
+InfoBeforeLabel=ÇëÔÚ¼ÌÐø֮ǰÔĶÁÒÔÏÂÖØÒªÐÅÏ¢¡£
+InfoBeforeClickLabel=µ±Äã×¼±¸ºÃ¼ÌÐø°²×°ºó£¬Çëµ¥»÷¡°ÏÂÒ»²½¡±¡£
+WizardInfoAfter=ÐÅÏ¢
+InfoAfterLabel=ÇëÔÚ¼ÌÐø֮ǰÔĶÁÒÔÏÂÖØÒªÐÅÏ¢¡£
+InfoAfterClickLabel=µ±Äã×¼±¸ºÃ¼ÌÐø°²×°ºó£¬Çëµ¥»÷¡°ÏÂÒ»²½¡±¡£
+
+; *** "User Information" wizard page
+WizardUserInfo=Óû§ÐÅÏ¢
+UserInfoDesc=ÇëÊäÈëÄãµÄÐÅÏ¢¡£
+UserInfoName=Óû§Ãû(&U)£º
+UserInfoOrg=×éÖ¯(&O)£º
+UserInfoSerial=ÐòÁкÅ(&S)£º
+UserInfoNameRequired=±ØÐëÊäÈëÓû§Ãû¡£
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=Ñ¡ÔñÄ¿±êλÖÃ
+SelectDirDesc=½« [name] °²×°µ½ÄÄÀ
+SelectDirLabel3=°²×°Ïòµ¼½«°Ñ [name] °²×°µ½ÒÔÏÂÎļþ¼ÐÖС£
+SelectDirBrowseLabel=ÈôÒª¼ÌÐø£¬µ¥»÷¡°ÏÂÒ»²½¡±¡£Èç¹ûÄãҪѡÔñ²»Í¬µÄÎļþ¼Ð£¬Çëµ¥»÷¡°ä¯ÀÀ¡±¡£
+DiskSpaceMBLabel=ÖÁÉÙÐèÒª [mb] MB µÄ¿ÕÏдÅÅ̿ռ䡣
+ToUNCPathname=°²×°Ïòµ¼²»ÄÜ°²×°µ½ UNC ·¾¶¡£Èç¹ûÄãÊÇҪͨ¹ýÍøÂç°²×°£¬ÇëÓ³ÉäÍøÂçÇý¶¯Æ÷¡£
+InvalidPath=Äã±ØÐëÊäÈë´øÓÐÅÌ·ûµÄÍêÕû·¾¶¡£ÀýÈ磺%n%nC:\APP%n%n»òÕß UNC ·¾¶¸ñʽ£º%n%n\\server\share
+InvalidDrive=ÄãÑ¡ÔñµÄÇý¶¯Æ÷»ò UNC ¹²Ïí²»´æÔÚ»ò²»¿É·ÃÎÊ¡£ÇëÖØÐÂÑ¡Ôñ¡£
+DiskSpaceWarningTitle=ûÓÐ×ã¹»µÄ´ÅÅÌ¿Õ¼ä
+DiskSpaceWarning=°²×°Ïòµ¼ÖÁÉÙÐèÒª %1 KB µÄÊ£Óà¿Õ¼ä£¬µ«ÊÇËùÑ¡Çý¶¯Æ÷Ö»ÓÐ %2 KB ¿ÉÓá£%n%nÄãÎÞÂÛÈçºÎÒ²Òª¼ÌÐøÂð£¿
+DirNameTooLong=Îļþ¼ÐÃû³Æ»ò·¾¶Ì«³¤¡£
+InvalidDirName=Îļþ¼ÐÃû³ÆÎÞЧ¡£
+BadDirName32=Îļþ¼ÐÃû³Æ²»ÄÜ°üº¬ÏÂÁÐ×Ö·û£º%n%n%1
+DirExistsTitle=Îļþ¼ÐÒÑ´æÔÚ
+DirExists=Îļþ¼Ð£º%n%n%1%n%nÒÑ´æÔÚ¡£ÄãÈ·¶¨Òª°²×°µ½¸ÃÎļþ¼ÐÂð£¿
+DirDoesntExistTitle=Îļþ¼Ð²»´æÔÚ
+DirDoesntExist=Îļþ¼Ð£º%n%n%1%n%n²»´æÔÚ¡£´´½¨¸ÃÎļþ¼ÐÂð£¿
+
+; *** "Select Components" wizard page
+WizardSelectComponents=Ñ¡Ôñ×é¼þ
+SelectComponentsDesc=Òª°²×°ÄÄЩ×é¼þ£¿
+SelectComponentsLabel2=ÇëÑ¡ÔñÄãÒª°²×°µÄ×é¼þ£¬Çå³ýÄã²»Ïë°²×°µÄ×é¼þ¡£×¼±¸ºÃºóµã»÷¡°ÏÂÒ»²½¡±¡£
+FullInstallation=ÍêÕû°²×°
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=¼ò½à°²×°
+CustomInstallation=¶¨ÖÆ°²×°
+NoUninstallWarningTitle=×é¼þÒÑ´æÔÚ
+NoUninstallWarning=°²×°Ïòµ¼·¢ÏÖÏÂÁÐ×é¼þÒѾ­°²×°£º%n%n%1%n%nÈ¡ÏûÑ¡¶¨²»»áжÔØÕâЩ×é¼þ¡£%n%n¼ÌÐø°²×°Âð£¿
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceMBLabel=µ±Ç°µÄÑ¡ÔñÖÁÉÙÐèÒª [mb] MB ´ÅÅ̿ռ䡣
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=Ñ¡Ôñ¸½¼ÓÈÎÎñ
+SelectTasksDesc=ÒªÖ´ÐÐÄÄЩ¸½¼ÓÈÎÎñ£¿
+SelectTasksLabel2=ÇëÑ¡ÔñÔÚ°²×° [name] Æڼ䰲װÏòµ¼ÒªÖ´Ðеĸ½¼ÓÈÎÎñ£¬È»ºóµã»÷¡°ÏÂÒ»²½¡±¡£
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=Ñ¡Ôñ¿ªÊ¼²Ëµ¥Îļþ¼Ð
+SelectStartMenuFolderDesc=°Ñ³ÌÐò¿ì½Ý·½Ê½·Åµ½ÄÄÀ
+SelectStartMenuFolderLabel3=°²×°Ïòµ¼½«ÔÚÒÔÏ¿ªÊ¼²Ëµ¥Îļþ¼ÐÖд´½¨³ÌÐò¿ì½Ý·½Ê½¡£
+SelectStartMenuFolderBrowseLabel=µã»÷¡°ÏÂÒ»²½¡±½øÈëÏÂÒ»²½¡£Èç¹ûÄãҪѡÔñ²»Í¬µÄÎļþ¼Ð£¬Çëµã»÷¡°ä¯ÀÀ¡±¡£
+MustEnterGroupName=Äã±ØÐëÊäÈëÎļþ¼ÐÃû³Æ
+GroupNameTooLong=Îļþ¼ÐÃû³Æ»ò·¾¶Ì«³¤
+InvalidGroupName=Îļþ¼ÐÃû³ÆÎÞЧ
+BadGroupName=Îļþ¼ÐÃû³Æ²»ÄÜ°üº¬ÏÂÁÐ×Ö·û£º%n%n%1
+NoProgramGroupCheck2=½ûÖ¹´´½¨¿ªÊ¼²Ëµ¥Îļþ¼Ð(&D)
+
+; *** "Ready to Install" wizard page
+WizardReady=×¼±¸°²×°
+ReadyLabel1=°²×°Ïòµ¼ÏÖÔÚ×¼±¸¿ªÊ¼°²×° [name]¡£
+ReadyLabel2a=µã»÷¡°°²×°¡±¼ÌÐø°²×°£¬Èç¹ûÄãÏëÒª²é¿´»òÕ߸ü¸ÄÉèÖÃÇëµã»÷¡°ÉÏÒ»²½¡±¡£
+ReadyLabel2b=µã»÷¡°°²×°¡±¼ÌÐø°²×°¡£
+ReadyMemoUserInfo=Óû§ÐÅÏ¢£º
+ReadyMemoDir=Ä¿±êλÖãº
+ReadyMemoType=°²×°ÀàÐÍ£º
+ReadyMemoComponents=ËùÑ¡×é¼þ£º
+ReadyMemoGroup=¿ªÊ¼²Ëµ¥Îļþ¼Ð£º
+ReadyMemoTasks=¸½¼ÓÈÎÎñ£º
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=ÕýÔÚ×¼±¸°²×°
+PreparingDesc=°²×°Ïòµ¼ÕýÔÚ×¼±¸°²×° [name]¡£
+PreviousInstallNotCompleted=ÏÈÇ°³ÌÐòµÄ°²×°/жÔØÉÐδÍê³É¡£ÄãÐèÒªÖØÆôµçÄÔÀ´Íê³É°²×°¡£%n%nµçÄÔÖØÆôÖ®ºó£¬ÇëÖØÐÂÔËÐа²×°Ïòµ¼À´Íê³É [name] µÄ°²×°¡£
+CannotContinue=°²×°Ïòµ¼²»ÄܼÌÐø¡£Çëµã»÷¡°È¡Ïû¡±Í˳ö¡£
+
+; *** "Installing" wizard page
+WizardInstalling=ÕýÔÚ°²×°
+InstallingLabel=ÕýÔÚÄãµÄ¼ÆËã»úÖа²×° [name]£¬ÇëÉÔµÈ...
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=Íê³É [name] °²×°
+FinishedLabelNoIcons=°²×°Ïòµ¼ÒÑÍê³É [name] µÄ°²×°¡£
+FinishedLabel=°²×°Ïòµ¼ÒÑÍê³É [name] µÄ°²×°¡£¿ÉÒÔͨ¹ýÑ¡ÔñÒÑ°²×°µÄͼ±êÀ´ÔËÐÐÓ¦ÓóÌÐò¡£
+ClickFinish=µã»÷¡°Íê³É¡±Í˳ö°²×°¡£
+FinishedRestartLabel=ΪÁËÍê³É [name] µÄ°²×°£¬°²×°Ïòµ¼±ØÐëÖØÆôµçÄÔ¡£ÄãÒªÁ¢¼´ÖØÆôÂð£¿
+FinishedRestartMessage=ΪÁËÍê³É [name] µÄ°²×°£¬°²×°Ïòµ¼±ØÐëÖØÆôµçÄÔ¡£%n%nÄãÒªÁ¢¼´ÖØÆôÂð£¿
+ShowReadmeCheck=ÊÇ£¬ÎÒÒª²é¿´×ÔÊöÎļþ
+YesRadio=ÊÇ£¬Á¢¼´ÖØÆôµçÄÔ(&Y)
+NoRadio=·ñ£¬ÉÔºóÖØÆôµçÄÔ(&N)
+; used for example as 'Run MyProg.exe'
+RunEntryExec=ÔËÐÐ %1
+; used for example as 'View Readme.txt'
+RunEntryShellExec=²é¿´ %1
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=°²×°Ïòµ¼ÐèÒªÏÂÒ»¸ö´ÅÅÌ
+SelectDiskLabel2=Çë²åÈë´ÅÅÌ %1 ²¢µã»÷¡°È·¶¨¡±¡£%n%nÈç¹ûÔÚ³ýÁËÏÂÃæÏÔʾµÄÎļþ¼ÐÒÔÍâµÄÎļþ¼ÐÖÐÕÒ²»µ½¸Ã´ÅÅÌÉϵÄÎļþ£¬¾ÍÇëÊäÈëÕýÈ·µÄ·¾¶»òµã»÷¡°ä¯ÀÀ¡±¡£
+PathLabel=·¾¶(&P)£º
+FileNotInDir2=Îļþ¡°%1¡±²»ÔÚ¡°%2¡±ÖС£Çë²åÈëÕýÈ·µÄ´ÅÅÌ»òÑ¡ÔñÆäËûÎļþ¼Ð¡£
+SelectDirectoryLabel=ÇëÖ¸¶¨ÏÂÒ»¸ö´ÅÅ̵ÄλÖá£
+
+; *** Installation phase messages
+SetupAborted=°²×°ÉÐδÍê³É¡£%n%nÇë¾ÀÕýÎÊÌâ²¢ÖØÐÂÔËÐа²×°Ïòµ¼¡£
+EntryAbortRetryIgnore=µã»÷¡°ÖØÊÔ¡±ÖØг¢ÊÔ£¬µã»÷¡°ºöÂÔ¡±¼ÌÐø°²×°£¬»òµã»÷¡°ÖÐÖ¹¡±È¡Ïû°²×°¡£
+
+; *** Installation status messages
+StatusCreateDirs=ÕýÔÚ´´½¨Îļþ¼Ð...
+StatusExtractFiles=ÕýÔÚÌáÈ¡Îļþ...
+StatusCreateIcons=ÕýÔÚ´´½¨¿ì½Ý·½Ê½...
+StatusCreateIniEntries=ÕýÔÚ´´½¨ INI ÏîÄ¿...
+StatusCreateRegistryEntries=ÕýÔÚ´´½¨×¢²á±íÏîÄ¿...
+StatusRegisterFiles=ÕýÔÚ×¢²áÎļþ...
+StatusSavingUninstall=ÕýÔÚ±£´æжÔØÐÅÏ¢...
+StatusRunProgram=ÕýÔÚÍê³É°²×°...
+StatusRollback=ÕýÔڻعö¸ü¸Ä...
+
+; *** Misc. errors
+ErrorInternal2=ÄÚ²¿´íÎó£º%1
+ErrorFunctionFailedNoCode=%1 ʧ°Ü
+ErrorFunctionFailed=%1 ʧ°Ü¡£´úÂë %2
+ErrorFunctionFailedWithMessage=%1 ʧ°Ü¡£´úÂë %2¡£%n%3
+ErrorExecutingProgram=ÎÞ·¨Ö´ÐÐÎļþ£º%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=´ò¿ª×¢²á±í¼üʱ³ö´í£º%n%1\%2
+ErrorRegCreateKey=´´½¨×¢²á±í¼üʱ³ö´í£º%n%1\%2
+ErrorRegWriteKey=дÈë×¢²á±í¼üʱ³ö´í£º%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=ÔÚÎļþ¡°%1¡±Öд´½¨ INI ÏîĿʱ³ö´í¡£
+
+; *** File copying errors
+FileAbortRetryIgnore=µã»÷¡°ÖØÊÔ¡±ÖØг¢ÊÔ£¬µã»÷¡°ºöÂÔ¡±Ìø¹ý´ËÎļþ (²»ÍƼö)£¬»òµã»÷¡°ÖÐÖ¹¡±È¡Ïû°²×°¡£
+FileAbortRetryIgnore2=µã»÷¡°ÖØÊÔ¡±ÖØг¢ÊÔ£¬µã»÷¡°ºöÂÔ¡±¼ÌÐø°²×° (²»ÍƼö)£¬»òµã»÷¡°ÖÐÖ¹¡±È¡Ïû°²×°¡£
+SourceIsCorrupted=Ô´ÎļþÒÑËð»µ
+SourceDoesntExist=Ô´Îļþ¡°%1¡±²»´æÔÚ
+ExistingFileReadOnly=ÏÖÓÐÎļþΪֻ¶Á¡£%n%nµã»÷¡°ÖØÊÔ¡±ÒƳýÖ»¶ÁÊôÐÔ²¢ÖØÊÔ£¬µã»÷¡°ºöÂÔ¡±Ìø¹ý´ËÎļþ£¬»òµã»÷¡°ÖÐÖ¹¡±È¡Ïû°²×°¡£
+ErrorReadingExistingDest=¶ÁÈ¡ÏÖÓÐÎļþʱ·¢Éú´íÎó£º
+FileExists=ÎļþÒÑ´æÔÚ¡£%n%nÄãÒª¸²¸ÇËüÂð£¿
+ExistingFileNewer=ÏÖÓÐÎļþ±È°²×°Ïòµ¼Òª°²×°µÄ»¹Ð¡£½¨ÒéÄã±£ÁôÏÖÓÐÎļþ¡£%n%n±£ÁôÏÖÓÐÎļþÂð£¿
+ErrorChangingAttr=¸ü¸ÄÏÖÓÐÎļþµÄÊôÐÔʱ·¢Éú´íÎó£º
+ErrorCreatingTemp=ÔÚÄ¿±êÎļþ¼ÐÖд´½¨Îļþʱ·¢Éú´íÎó£º
+ErrorReadingSource=¶ÁÈ¡Ô´Îļþʱ·¢Éú´íÎó£º
+ErrorCopying=¸´ÖÆÎļþʱ·¢Éú´íÎó£º
+ErrorReplacingExistingFile=Ìæ»»ÏÖÓÐÎļþʱ·¢Éú´íÎó£º
+ErrorRestartReplace=ÖØÆôºóÌ滻ʧ°Ü£º
+ErrorRenamingTemp=ÖØÃüÃûÄ¿±êÎļþ¼ÐÖеÄÎļþʱ·¢Éú´íÎó£º
+ErrorRegisterServer=ÎÞ·¨×¢²á DLL/OCX£º%1
+ErrorRegSvr32Failed=RegSvr32 ʧ°Ü¡£·µ»ØÖµ£º%1
+ErrorRegisterTypeLib=ÎÞ·¨×¢²áÀàÐͿ⣺%1
+
+; *** Post-installation errors
+ErrorOpeningReadme=´ò¿ª×ÔÊöÎļþʱ·¢Éú´íÎó¡£
+ErrorRestartingComputer=°²×°Ïòµ¼ÎÞ·¨ÖØÆôµçÄÔ¡£ÇëÊÖ¶¯ÖØÆô¡£
+
+; *** Uninstaller messages
+UninstallNotFound=Îļþ¡°%1¡±²»´æÔÚ¡£²»ÄÜжÔØ¡£
+UninstallOpenError=Îļþ¡°%1¡±²»ÄÜ´ò¿ª¡£²»ÄÜжÔØ
+UninstallUnsupportedVer=жÔØÈÕÖ¾Îļþ¡°%1¡±µÄ¸ñʽ²»Äܱ»´Ë°æ±¾µÄжÔسÌÐòʶ±ð¡£²»ÄÜжÔØ
+UninstallUnknownEntry=жÔØÈÕÖ¾ÖÐÓöµ½Ò»¸öδ֪µÄÏîÄ¿ (%1)
+ConfirmUninstall=ÄãÊÇ·ñÈ·¶¨ÒªÍêȫɾ³ý %1 ¼°ÆäËùÓÐ×é¼þ£¿
+UninstallOnlyOnWin64=´Ë°²×°Ö»ÄÜÔÚ 64 λ Windows ÉÏжÔØ¡£
+OnlyAdminCanUninstall=´Ë°²×°Ö»ÄÜÓɾ߱¸¹ÜÀíԱȨÏÞµÄÓû§Ð¶ÔØ¡£
+UninstallStatusLabel=ÕýÔÚɾ³ý %1£¬ÇëÉÔµÈ...
+UninstalledAll=%1 Òѳɹ¦É¾³ý¡£
+UninstalledMost=%1 жÔØÍê³É¡£%n%nijЩÏîÄ¿²»ÄÜɾ³ý£¬¿ÉÒÔÊÖ¶¯É¾³ý¡£
+UninstalledAndNeedsRestart=ÈôÒªÍê³É %1 µÄжÔØ£¬±ØÐëÖØÆôµçÄÔ¡£%n%nÄãÒªÁ¢¼´ÖØÆôÂð£¿
+UninstallDataCorrupted=Îļþ¡°%1¡±ÒÑË𻵡£²»ÄÜжÔØ
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=ɾ³ý¹²ÏíÎļþÂð£¿
+ConfirmDeleteSharedFile2=ÏÂÁй²ÏíÎļþ²»ÔÙ±»ÈκγÌÐòʹÓá£ÄãҪɾ³ý¸Ã¹²ÏíÎļþÂð£¿%n%nÈç¹û»¹ÓгÌÐòʹÓøÃÎļþ¶øËüÒѱ»É¾³ý£¬ÕâЩ³ÌÐò¿ÉÄÜÎÞ·¨Õý³£ÔËÐС£Èç¹ûÄ㲻ȷ¶¨£¬¾ÍÇëÑ¡Ôñ¡°·ñ¡±¡£ÁôϸÃÎļþ²»»á¶ÔϵͳÔì³ÉÈκÎΣº¦¡£
+SharedFileNameLabel=ÎļþÃû£º
+SharedFileLocationLabel=λÖãº
+WizardUninstalling=жÔØ״̬
+StatusUninstalling=ÕýÔÚжÔØ %1...
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1 °æ±¾ %2
+AdditionalIcons=¸½¼Óͼ±ê£º
+CreateDesktopIcon=´´½¨×ÀÃæͼ±ê(&D)
+CreateQuickLaunchIcon=´´½¨¿ìËÙÆô¶¯À¸Í¼±ê(&Q)
+ProgramOnTheWeb=%1 ÍøÕ¾
+UninstallProgram=жÔØ %1
+LaunchProgram=ÔËÐÐ %1
+AssocFileExtension=½« %1 Óë %2 ÎļþÀ©Õ¹Ãû¹ØÁª(&A)
+AssocingFileExtension=ÕýÔÚ½« %1 Óë %2 ÎļþÀ©Õ¹Ãû¹ØÁª...
diff --git a/tools/innosetup/zh_CN_scilab.isl b/tools/innosetup/zh_CN_scilab.isl
new file mode 100755
index 000000000..ca382f402
--- /dev/null
+++ b/tools/innosetup/zh_CN_scilab.isl
@@ -0,0 +1,137 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+zh_CN.LANGUAGE =zh_CN
+
+zh_CN.MsgBoxJRENotFound =Java Runtime Environment not detected.
+zh_CN.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/zh_CN/download/
+zh_CN.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+zh_CN.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+zh_CN.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+zh_CN.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+zh_CN.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+zh_CN.MsgBoxWebOpen =Can not open web page.
+zh_CN.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+zh_CN.MsgBoxDevToolsRequired2 =Please install development_tools module.
+zh_CN.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+zh_CN.MsgBoxTclsciRequired2 =Please install tclsci module.
+zh_CN.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+zh_CN.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+zh_CN.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+zh_CN.MsgBoxFftw4 =Can not open web page.
+zh_CN.MsgBoxWinVer =Windows 2000 is required.
+zh_CN.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+zh_CN.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+zh_CN.ButtonAboutModules =&About modules ...
+;
+zh_CN.DescriptionEquDif =Differential Equations Module
+zh_CN.DescriptionInterpolation =Interpolation Module
+zh_CN.DescriptionPolynomials =Polynomials Module
+zh_CN.DescriptionSymbolic =Symbolic Module
+zh_CN.DescriptionStats =Statistics Module
+zh_CN.DescriptionSparse =Sparse Matrix Module
+zh_CN.DescriptionLinAlg =Linear Algebra Module
+zh_CN.DescriptionSigProc =Signal processing Module
+zh_CN.DescriptionCacsd =C.A.C.S.D Module
+zh_CN.DescriptionGraphics =Graphics Module
+zh_CN.DescriptionOptim =Optimization Module
+zh_CN.DescriptionMetanet =Metanet Toolbox
+zh_CN.DescriptionScicos =Scicos Toolbox
+zh_CN.DescriptionArnoldi =ARnoldi PACKage Toolbox
+zh_CN.DescriptionUmfpack =UMFPACK for Scilab
+zh_CN.DescriptionCompatFunctions =Compatibility functions
+zh_CN.DescriptionM2sci =M2SCI Toolbox
+zh_CN.DescriptionMatio =MAT File Input/Output Toolbox
+zh_CN.DescriptionExternalObjects =External objects
+zh_CN.DescriptionSound =Sound file handling Toolbox
+zh_CN.DescriptionRandlib =Randlib Toolbox
+zh_CN.DescriptionMexlib =Mexlib Tools
+zh_CN.DescriptionIntersci =Intersci Toolbox
+zh_CN.DescriptionTclTK =TCL/TK in Scilab
+zh_CN.DescriptionSpreadsheet =Spreadsheet Toolbox
+zh_CN.DescriptionJVM =Java Runtime
+zh_CN.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+zh_CN.DescriptionFftwModule =FFTW interface for Scilab
+zh_CN.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+zh_CN.DescriptionRefFftwLibrary =Reference FFTW library
+zh_CN.DescriptionParametersTlbx =Parameters Toolbox
+zh_CN.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+zh_CN.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+zh_CN.DescriptionDevTools =Development Tools
+zh_CN.DescriptionTests =Tests for Scilab
+zh_CN.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+zh_CN.DescriptionComConnector =COM connector
+zh_CN.DescriptionSciNotes =SciNotes: Editor for Scilab
+zh_CN.DescriptionXcos =Xcos
+zh_CN.DescriptionParallel =Parallel Computing with Scilab
+zh_CN.DescriptionModulesManager =Tools for management of extern modules
+zh_CN.DescriptionModuleJVM =JVM Module
+;
+zh_CN.ConsoleIconName =Scilab Console
+;
+zh_CN.WebIconScilab =Scilab on the Web
+;
+zh_CN.ReadMeIcon =Read Me
+;
+zh_CN.UnInstallIcon =Uninstall Scilab
+;
+zh_CN.RegKeyRunWith =Run with
+;
+zh_CN.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+zh_CN.DescriptionConfigureAtlas =Configure Atlas
+;
+zh_CN.DescriptionLaunchScilab =Launch Scilab
+;
+zh_CN.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+zh_CN.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+zh_CN.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+zh_CN.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+zh_CN.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+zh_CN.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+zh_CN.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+zh_CN.DescriptionDefaultInstall =Installation (Default)
+zh_CN.DescriptionFullInstall =Full installation
+zh_CN.DescriptionCustomInstall =Custom installation
+zh_CN.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+zh_CN.DescriptionCPUOptimization =CPU Optimization for Scilab
+zh_CN.DescriptionATLASLibrary =Atlas Library for Scilab
+zh_CN.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+zh_CN.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+zh_CN.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+zh_CN.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+zh_CN.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+zh_CN.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+zh_CN.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+zh_CN.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+zh_CN.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+zh_CN.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/innosetup/zh_TW.isl b/tools/innosetup/zh_TW.isl
new file mode 100755
index 000000000..cc4f2a586
--- /dev/null
+++ b/tools/innosetup/zh_TW.isl
@@ -0,0 +1,317 @@
+; *** Inno Setup version 5.1.11+ Chinese (Traditional) messages ***
+;
+; To download user-contributed translations of this file, go to:
+; http://www.jrsoftware.org/is3rdparty.php
+;
+; Translated by: Patrick Pang (uncleleft at yahoo.com.hk)
+;
+; Note: When translating this text, do not add periods (.) to the end of
+; messages that didn't have them already, because on those messages Inno
+; Setup adds the periods automatically (appending a period would result in
+; two periods being displayed).
+
+[LangOptions]
+LanguageName=<7e41><9ad4><4e2d><6587>
+LanguageID=$0404
+LanguageCodepage=950
+; If the language you are translating to requires special font faces or
+; sizes, uncomment any of the following entries and change them accordingly.
+DialogFontName=·s²Ó©úÅé
+DialogFontSize=9
+TitleFontName=Arial
+TitleFontSize=28
+WelcomeFontName=·s²Ó©úÅé
+WelcomeFontSize=12
+CopyrightFontName=·s²Ó©úÅé
+CopyrightFontSize=9
+
+[Messages]
+
+; *** Application titles
+SetupAppTitle=¦w¸Ëµ{¦¡
+SetupWindowTitle=%1 ¦w¸Ëµ{¦¡
+UninstallAppTitle=¸Ñ°£¦w¸Ë
+UninstallAppFullTitle=¸Ñ°£¦w¸Ë %1
+
+; *** Misc. common
+InformationTitle=°T®§
+ConfirmTitle=½T»{
+ErrorTitle=¿ù»~
+
+; *** SetupLdr messages
+SetupLdrStartupMessage=³o±N·|¦w¸Ë %1¡C±z·Q­nÄ~Äò¶Ü?
+LdrCannotCreateTemp=µLªk«Ø¥ß¼È¦sÀɮסC¦w¸Ëµ{¦¡±N·|µ²§ô¡C
+LdrCannotExecTemp=µLªk°õ¦æ¼È¦sÀɮסC¦w¸Ëµ{¦¡±N·|µ²§ô¡C
+
+; *** Startup error messages
+LastErrorMessage=%1%n%n¿ù»~ %2: %3
+SetupFileMissing=¦w¸Ë¸ê®Æ§¨¤¤¿ò¥¢ÀÉ®× %1¡C½Ð­×¥¿¦¹°ÝÃD©Î­«·s¨ú±o¦¹³nÅé¡C
+SetupFileCorrupt=¦w¸ËÀɮפw¸g·l·´¡C½Ð­«·s¨ú±o¦¹³nÅé¡C
+SetupFileCorruptOrWrongVer=¦w¸ËÀɮפw¸g·l·´¡A©Î»P¦w¸Ëµ{¦¡ªºª©¥»¤£²Å¡C½Ð­«·s¨ú±o¦¹³nÅé¡C
+NotOnThisPlatform=³o­Óµ{¦¡µLªk¦b %1 °õ¦æ¡C
+OnlyOnThisPlatform=³o­Óµ{¦¡¥²¶·¦b %1 °õ¦æ¡C
+OnlyOnTheseArchitectures=³o­Óµ{¦¡¥u¯à¦b±Mªù¬°¥H¤U³B²z¾¹¬[ºc¦Ó³]­pªº Windows ¤W¦w¸Ë:%n%n%1
+MissingWOW64APIs=³o­Óª©¥»ªº Windows ¤£¥]§t¦w¸Ëµ{¦¡°õ¦æ 64 ¦ì¤¸¦w¸Ë©Ò»Ýªº¥\¯à¡C½Ð¦w¸Ë Service Pack %1 ¥h­×¥¿¦¹°ÝÃD¡C
+WinVersionTooLowError=³o­Óµ{¦¡¥²¶·¦b %1 ª©¥» %2 ©Î¥H¤Wªº¨t²Î°õ¦æ¡C
+WinVersionTooHighError=³o­Óµ{¦¡µLªk¦w¸Ë¦b %1 ª©¥» %2 ©Î¥H¤Wªº¨t²Î¡C
+AdminPrivilegesRequired=±z¥²¶·µn¤J¦¨¨t²ÎºÞ²z­û¥H¦w¸Ë³o­Óµ{¦¡¡C
+PowerUserPrivilegesRequired=±z¥²¶·µn¤J¦¨¨ã¦³¨t²ÎºÞ²z­û©Î Power User Åv­­ªº¨Ï¥ÎªÌ¥H¦w¸Ë³o­Óµ{¦¡¡C
+SetupAppRunningError=¦w¸Ëµ{¦¡°»´ú¨ì %1 ¥¿¦b°õ¦æ¡C%n%n½ÐÃö³¬¸Óµ{¦¡«á«ö [½T©w] Ä~Äò¡A©Î«ö [¨ú®ø] Â÷¶}¡C
+UninstallAppRunningError=¸Ñ°£¦w¸Ëµ{¦¡°»´ú¨ì %1 ¥¿¦b°õ¦æ¡C%n%n½ÐÃö³¬¸Óµ{¦¡«á«ö [½T©w] Ä~Äò¡A©Î«ö [¨ú®ø] Â÷¶}¡C
+
+; *** Misc. errors
+ErrorCreatingDir=¦w¸Ëµ{¦¡µLªk«Ø¥ß¸ê®Æ§¨ "%1"¡C
+ErrorTooManyFilesInDir=µLªk¦b¸ê®Æ§¨ "%1" ¤º«Ø¥ßÀɮסA¦]¬°¸ê®Æ§¨¤º¦³¤Ó¦hªºÀɮסC
+
+; *** Setup common messages
+ExitSetupTitle=µ²§ô¦w¸Ëµ{¦¡
+ExitSetupMessage=¦w¸Ë©|¥¼§¹¦¨¡C¦pªG±z²{¦bµ²§ô¦w¸Ëµ{¦¡¡A³o­Óµ{¦¡±N¤£·|³Q¦w¸Ë¡C%n%n±z¥i¥Hµy«á¦A°õ¦æ¦w¸Ëµ{¦¡¥H§¹¦¨¦w¸Ëµ{§Ç¡C±z²{¦b­nµ²§ô¦w¸Ëµ{¦¡¶Ü?
+AboutSetupMenuItem=Ãö©ó¦w¸Ëµ{¦¡(&A)...
+AboutSetupTitle=Ãö©ó¦w¸Ëµ{¦¡
+AboutSetupMessage=%1 ª©¥» %2%n%3%n%n%1 ºô§}:%n%4
+AboutSetupNote=
+TranslatorNote=ÁcÅ餤¤å»y¨t¥Ñ Patrick Pang (uncleleft@yahoo.com.hk) ºûÅ@¡C
+
+; *** Buttons
+ButtonBack=< ¤W¤@¨B(&B)
+ButtonNext=¤U¤@¨B(&N) >
+ButtonInstall=¦w¸Ë(&I)
+ButtonOK=½T©w
+ButtonCancel=¨ú®ø
+ButtonYes=¬O(&Y)
+ButtonYesToAll=¥þ³¡¬Ò¬O(&A)
+ButtonNo=§_(&N)
+ButtonNoToAll=¥þ³¡¬Ò§_(&O)
+ButtonFinish=§¹¦¨(&F)
+ButtonBrowse=ÂsÄý(&B)...
+ButtonWizardBrowse=ÂsÄý(&R)...
+ButtonNewFolder=«Ø¥ß·s¸ê®Æ§¨(&M)
+
+; *** "Select Language" dialog messages
+SelectLanguageTitle=¿ï¾Ü¦w¸Ë»y¨¥
+SelectLanguageLabel=¿ï¾Ü¦b¦w¸Ë¹Lµ{¤¤¨Ï¥Îªº»y¨¥:
+
+; *** Common wizard text
+ClickNext=«ö [¤U¤@¨B] Ä~Äò¦w¸Ë¡A©Î«ö [¨ú®ø] µ²§ô¦w¸Ëµ{¦¡¡C
+BeveledLabel=
+BrowseDialogTitle=ÂsÄý¸ê®Æ§¨
+BrowseDialogLabel=¦b¤U­±ªº¸ê®Æ§¨¦Cªí¤¤¿ï¾Ü¤@­Ó¸ê®Æ§¨¡AµM«á«ö [½T©w]¡C
+NewFolderName=·s¸ê®Æ§¨
+
+; *** "Welcome" wizard page
+WelcomeLabel1=Åwªï¨Ï¥Î [name] ¦w¸Ëµ{¦¡
+WelcomeLabel2=³o­Ó¦w¸Ëµ{¦¡±N·|¦w¸Ë [name/ver] ¨ì±zªº¹q¸£¡C%n%n§Ú­Ì±j¯P«Øij±z¦b¦w¸Ë¹Lµ{¤¤Ãö³¬¨ä¥¦ªºÀ³¥Îµ{¦¡¡A¥HÁקK»P¦w¸Ëµ{¦¡µo¥Í½Ä¬ð¡C
+
+; *** "Password" wizard page
+WizardPassword=±K½X
+PasswordLabel1=³o­Ó¦w¸Ëµ{¦¡¨ã¦³±K½X«OÅ@¡C
+PasswordLabel3=½Ð¿é¤J±K½X¡AµM«á«ö [¤U¤@¨B] Ä~Äò¡C±K½X¬O°Ï¤À¤j¤p¼gªº¡C
+PasswordEditLabel=±K½X(&P):
+IncorrectPassword=±z¿é¤Jªº±K½X¤£¥¿½T¡A½Ð­«·s¿é¤J¡C
+
+; *** "License Agreement" wizard page
+WizardLicense=±ÂÅv¦X¬ù
+LicenseLabel=½Ð¾\Ū¥H¤U±ÂÅv¦X¬ù¡C
+LicenseLabel3=½Ð¾\Ū¥H¤U±ÂÅv¦X¬ù¡A±z¥²¶·±µ¨ü¦X¬ùªº¦U¶µ±ø´Ú¤~¯àÄ~Äò¦w¸Ë¡C
+LicenseAccepted=§Ú¦P·N(&A)
+LicenseNotAccepted=§Ú¤£¦P·N(&D)
+
+; *** "Information" wizard pages
+WizardInfoBefore=°T®§
+InfoBeforeLabel=¦bÄ~Äò¦w¸Ë¤§«e½Ð¾\Ū¥H¤U­«­n¸ê°T¡C
+InfoBeforeClickLabel=·í±z·Ç³Æ¦nÄ~Äò¦w¸Ë¡A½Ð«ö [¤U¤@¨B]¡C
+WizardInfoAfter=°T®§
+InfoAfterLabel=¦bÄ~Äò¦w¸Ë¤§«e½Ð¾\Ū¥H¤U­«­n¸ê°T¡C
+InfoAfterClickLabel=·í±z·Ç³Æ¦nÄ~Äò¦w¸Ë¡A½Ð«ö [¤U¤@¨B]¡C
+
+; *** "User Information" wizard page
+WizardUserInfo=¨Ï¥ÎªÌ¸ê°T
+UserInfoDesc=½Ð¿é¤J±zªº¸ê®Æ¡C
+UserInfoName=¨Ï¥ÎªÌ¦WºÙ(&U):
+UserInfoOrg=²Õ´(&O):
+UserInfoSerial=§Ç¸¹(&S):
+UserInfoNameRequired=±z¥²¶·¿é¤J±zªº¦WºÙ¡C
+
+; *** "Select Destination Location" wizard page
+WizardSelectDir=¿ï¾Ü¥Øªº¸ê®Æ§¨
+SelectDirDesc=¿ï¾Ü¦w¸Ëµ{¦¡¦w¸Ë [name] ªº¦ì¸m¡C
+SelectDirLabel3=¦w¸Ëµ{¦¡±N·|§â [name] ¦w¸Ë¨ì¤U­±ªº¸ê®Æ§¨¡C
+SelectDirBrowseLabel=«ö [½T©w] Ä~Äò¡A¦pªG±z·Q¿ï¾Ü¥t¤@­Ó¸ê®Æ§¨¡A½Ð«ö [ÂsÄý]¡C
+DiskSpaceMBLabel=³Ì¤Ö»Ý­n [mb] MB ºÏºÐªÅ¶¡¡C
+ToUNCPathname=¦w¸Ëµ{¦¡µLªk¦w¸Ë©ó UNC ¸ô®|¦WºÙ¡C¦pªG±z§Æ±æ¦w¸Ë©óºô¸ô¤W¨ä¥L¹q¸£¤¤¡A±z¥²¶·«Ø¥ß¤@­Ó©T©w³s±µªººô¸ôºÏºÐ¾÷¡C
+InvalidPath=±z¥²¶·¿é¤J§¹¾ãªº¸ô®|¦WºÙ¤ÎºÏºÐ¾÷¥N½X¡C%n%n¨Ò¦p C:\App ©Î UNC ¸ô®|®æ¦¡ \\¦øªA¾¹\¦@¥Î¸ê®Æ§¨¡C
+InvalidDrive=±z¿ï¨úªººÏºÐ¾÷©Î UNC ¦WºÙ¤£¦s¦b©ÎµLªk¦s¨ú¡A½Ð¿ï¾Ü¨ä¥Lªº¥Øªº¦a¡C
+DiskSpaceWarningTitle=ºÏºÐªÅ¶¡¤£¨¬
+DiskSpaceWarning=¦w¸Ëµ{¦¡»Ý­n¦Ü¤Ö %1 KB ªººÏºÐªÅ¶¡¡A±z©Ò¿ï¨úªººÏºÐ¥u¦³ %2 KB ¥i¥ÎªÅ¶¡¡C%n%n±z­nÄ~Äò¦w¸Ë¶Ü?
+DirNameTooLong=¸ê®Æ§¨¦WºÙ©Î¸ô®|¤Óªø¡C
+InvalidDirName=¸ê®Æ§¨¦WºÙ¤£¥¿½T¡C
+BadDirName32=¸ê®Æ§¨¦WºÙ¤£±o¥]§t¥H¤U¯S®í¦r¤¸:%n%n%1
+DirExistsTitle=¸ê®Æ§¨¤w¸g¦s¦b
+DirExists=¸ê®Æ§¨ %1 ¤w¸g¦s¦b¡C%n%n±z­nÄ~Äò¦w¸Ë¨ì³o­Ó¸ê®Æ§¨¶Ü?
+DirDoesntExistTitle=¸ê®Æ§¨¤£¦s¦b
+DirDoesntExist=¸ê®Æ§¨ %1 ¤£¦s¦b¡C%n%n±z­n«Ø¥ß³o­Ó¸ê®Æ§¨¶Ü?
+
+; *** "Select Components" wizard page
+WizardSelectComponents=¿ï¾Ü¤¸¥ó
+SelectComponentsDesc=¿ï¾Ü±N·|³Q¦w¸Ëªº¤¸¥ó¡C
+SelectComponentsLabel2=¿ï¾Ü±z·Q­n¦w¸Ëªº¤¸¥ó¤Î²M°£±z¤£·Q¦w¸Ëªº¤¸¥ó¡AµM«á«ö [¤U¤@¨B] Ä~Äò¦w¸Ë¡C
+FullInstallation=§¹¾ã¦w¸Ë
+; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
+CompactInstallation=³Ì¤p¦w¸Ë
+CustomInstallation=¦Û­q¦w¸Ë
+NoUninstallWarningTitle=¤¸¥ó¤w¦s¦b
+NoUninstallWarning=¦w¸Ëµ{¦¡°»´ú¨ì¥H¤U¤¸¥ó¤w¸g¦w¸Ë¦b±zªº¹q¸£¤W:%n%n%1%n%n¨ú®ø¿ï¾Ü³o¨Ç¤¸¥ó±N¤£·|²¾°£¥¦­Ì¡C%n%n±z¤´µM­nÄ~Äò¶Ü?
+ComponentSize1=%1 KB
+ComponentSize2=%1 MB
+ComponentsDiskSpaceMBLabel=¥Ø«eªº¿ï¾Ü»Ý­n¦Ü¤Ö [mb] MB ºÏºÐªÅ¶¡¡C
+
+; *** "Select Additional Tasks" wizard page
+WizardSelectTasks=¿ï¾Üªþ¥[ªº¤u§@
+SelectTasksDesc=¿ï¾Ü­n°õ¦æªºªþ¥[¤u§@¡C
+SelectTasksLabel2=¿ï¾Ü¦w¸Ëµ{¦¡¦b¦w¸Ë [name] ®É­n°õ¦æªºªþ¥[¤u§@¡AµM«á«ö [¤U¤@¨B]¡C
+
+; *** "Select Start Menu Folder" wizard page
+WizardSelectProgramGroup=¿ï¾Ü¡u¶}©l¡v¥\¯àªíªº¸ê®Æ§¨
+SelectStartMenuFolderDesc=¿ï¾Ü¦w¸Ëµ{¦¡«Ø¥ßµ{¦¡ªº±¶®|ªº¦ì¸m¡C
+SelectStartMenuFolderLabel3=¦w¸Ëµ{¦¡±N·|§âµ{¦¡ªº±¶®|«Ø¥ß¦b¤U­±ªº¡u¶}©l¡v¥\¯àªí¸ê®Æ§¨¡C
+SelectStartMenuFolderBrowseLabel=«ö [½T©w] Ä~Äò¡A¦pªG±z·Q¿ï¾Ü¥t¤@­Ó¸ê®Æ§¨¡A½Ð«ö [ÂsÄý]¡C
+MustEnterGroupName=±z¥²¶·¿é¤J¤@­Ó¸ê®Æ§¨ªº¦WºÙ¡C
+GroupNameTooLong=¸ê®Æ§¨¦WºÙ©Î¸ô®|¤Óªø¡C
+InvalidGroupName=¸ê®Æ§¨¦WºÙ¤£¥¿½T¡C
+BadGroupName=¸ê®Æ§¨¦WºÙ¤£±o¥]§t¤U¦C¦r¤¸:%n%n%1
+NoProgramGroupCheck2=¤£­n¦b¡u¶}©l¡v¥\¯àªí¤¤«Ø¥ß¸ê®Æ§¨(&D)
+
+; *** "Ready to Install" wizard page
+WizardReady=·Ç³Æ¦w¸Ë
+ReadyLabel1=¦w¸Ëµ{¦¡±N¶}©l¦w¸Ë [name] ¨ì±zªº¹q¸£¤¤¡C
+ReadyLabel2a=«ö¤U [¦w¸Ë] Ä~Äò¦w¸Ë¡A©Î«ö [¤W¤@¨B] ­«·sÀ˵ø©Î³]©w¦U¿ï¶µªº¤º®e¡C
+ReadyLabel2b=«ö¤U [¦w¸Ë] Ä~Äò¦w¸Ë¡C
+ReadyMemoUserInfo=¨Ï¥ÎªÌ¸ê°T
+ReadyMemoDir=¥Øªº¸ê®Æ§¨:
+ReadyMemoType=¦w¸Ë«¬ºA:
+ReadyMemoComponents=¿ï¾Üªº¤¸¥ó:
+ReadyMemoGroup=¡u¶}©l¡v¥\¯àªí¸ê®Æ§¨:
+ReadyMemoTasks=ªþ¥[¤u§@:
+
+; *** "Preparing to Install" wizard page
+WizardPreparing=·Ç³Æ¦w¸Ëµ{¦¡
+PreparingDesc=¦w¸Ëµ{¦¡·Ç³Æ±N [name] ¦w¸Ë¨ì±zªº¹q¸£¤W¡C
+PreviousInstallNotCompleted=¥ý«eªº¦w¸Ë/ ¸Ñ°£¦w¸Ë©|¥¼§¹¦¨¡A±z¥²¶·­«·s±Ò°Ê¹q¸£¥H§¹¦¨¸Ó¦w¸Ë¡C%n%n¦b­«·s±Ò°Ê¹q¸£¤§«á¡A½Ð¦A°õ¦æ³o­Óµ{¦¡¨Ó¦w¸Ë [name]¡C
+CannotContinue=¦w¸Ëµ{¦¡µLªkÄ~Äò¡C½Ð«ö [¨ú®ø] Â÷¶}¡C
+
+; *** "Installing" wizard page
+WizardInstalling=¥¿¦b¦w¸Ë
+InstallingLabel=½Ðµy­Ô¡A¦w¸Ëµ{¦¡¥¿¦b±N [name] ¦w¸Ë¨ì±zªº¹q¸£¤W¡C
+
+; *** "Setup Completed" wizard page
+FinishedHeadingLabel=¦w¸Ë§¹¦¨
+FinishedLabelNoIcons=¦w¸Ëµ{¦¡¤w¸g±N [name] ¦w¸Ë¦b±zªº¹q¸£¤W¡C
+FinishedLabel=¦w¸Ëµ{¦¡¤w¸g±N [name] ¦w¸Ë¦b±zªº¹q¸£¤¤¡A±z¥i¥H¿ï¾Üµ{¦¡ªº¹Ï¥Ü¨Ó°õ¦æ¸ÓÀ³¥Îµ{¦¡¡C
+ClickFinish=«ö [§¹¦¨] ¥Hµ²§ô¦w¸Ëµ{¦¡¡C
+FinishedRestartLabel=­n§¹¦¨ [name] ªº¦w¸Ë¡A¦w¸Ëµ{¦¡¥²¶·­«·s±Ò°Ê±zªº¹q¸£¡C±z·Q­n²{¦b­«·s±Ò°Ê¹q¸£¶Ü?
+FinishedRestartMessage=­n§¹¦¨ [name] ªº¦w¸Ë¡A¦w¸Ëµ{¦¡¥²¶·­«·s±Ò°Ê±zªº¹q¸£¡C%n%n±z·Q­n²{¦b­«·s±Ò°Ê¹q¸£¶Ü?
+ShowReadmeCheck=¬O¡A§Ú­n¾\ŪŪ§ÚÀɮסC
+YesRadio=¬O¡A¥ß§Y­«·s±Ò°Ê¹q¸£(&Y)
+NoRadio=§_¡A§Úµy«á­«·s±Ò°Ê¹q¸£(&N)
+; used for example as 'Run MyProg.exe'
+RunEntryExec=°õ¦æ %1
+; used for example as 'View Readme.txt'
+RunEntryShellExec=À˵ø %1
+
+; *** "Setup Needs the Next Disk" stuff
+ChangeDiskTitle=¦w¸Ëµ{¦¡»Ý­n¤U¤@±iºÏ¤ù
+SelectDiskLabel2=½Ð´¡¤JºÏ¤ù %1¡AµM«á«ö [½T©w]¡C%n%n¦pªGÀɮפ£¦b¥H¤U©ÒÅã¥Üªº¸ê®Æ§¨¤§¤¤¡A½Ð¿é¤J¥¿½Tªº¸ê®Æ§¨¦WºÙ©Î«ö [ÂsÄý] ¿ï¨ú¡C
+PathLabel=¸ô®|(&P):
+FileNotInDir2=ÀÉ®× "%1" µLªk¦b "%2" §ä¨ì¡C½Ð´¡¤J¥¿½TªººÏ¤ù©Î¿ï¾Ü¨ä¥¦ªº¸ê®Æ§¨¡C
+SelectDirectoryLabel=½Ð«ü©w¤U¤@±iºÏ¤ùªº¦ì¸m¡C
+
+; *** Installation phase messages
+SetupAborted=¦w¸Ë¨S¦³§¹¦¨¡C%n%n½Ð§ó¥¿°ÝÃD«á­«·s¦w¸Ë¤@¦¸¡C
+EntryAbortRetryIgnore=«ö [­«¸Õ] ­«¸Õ¤@¦¸¡A«ö¤U [²¤¹L] ¸õ¹L³o­ÓÀɮסA©Î«ö¤U [¤¤¤î] µ²§ô¦w¸Ë¡C
+
+; *** Installation status messages
+StatusCreateDirs=¥¿¦b«Ø¥ß¸ê®Æ§¨...
+StatusExtractFiles=¥¿¦b¸ÑÀ£ÁYÀÉ®×...
+StatusCreateIcons=¥¿¦b«Ø¥ßµ{¦¡¶°¹Ï¥Ü...
+StatusCreateIniEntries=¼g¤J INI Àɮתº¶µ¥Ø...
+StatusCreateRegistryEntries=¥¿¦b§ó·s¨t²Îµn¿ý...
+StatusRegisterFiles=¥¿¦bµn¿ýÀÉ®×...
+StatusSavingUninstall=Àx¦s¸Ñ°£¦w¸Ë¸ê°T...
+StatusRunProgram=¥¿¦b§¹¦¨¦w¸Ë...
+StatusRollback=¥¿¦b´_­ìÅܧó...
+
+; *** Misc. errors
+ErrorInternal2=¤º³¡¿ù»~: %1¡C
+ErrorFunctionFailedNoCode=%1 ¥¢±Ñ¡C
+ErrorFunctionFailed=%1 ¥¢±Ñ¡C¥N½X %2¡C
+ErrorFunctionFailedWithMessage=%1 ¥¢±Ñ¡C¥N½X %2¡C%n%3
+ErrorExecutingProgram=µLªk°õ¦æÀÉ®×:%n%1
+
+; *** Registry errors
+ErrorRegOpenKey=µLªk¶}±Òµn¿ýÁä:%n%1\%2
+ErrorRegCreateKey=µLªk«Ø¥ßµn¿ý¶µ¥Ø:%n%1\%2
+ErrorRegWriteKey=µLªkÅܧóµn¿ý¶µ¥Ø:%n%1\%2
+
+; *** INI errors
+ErrorIniEntry=µLªk«Ø¥ß INI ¶µ¥Ø "%1"¡C
+
+; *** File copying errors
+FileAbortRetryIgnore=«ö [­«¸Õ] ¦A¸Õ¤@¦¸¡A«ö [²¤¹L] ¸õ¹L³o­ÓÀɮס]¤£«Øij¡^¡A©Î«ö [¤¤¤î] µ²§ô¦w¸Ë¡C
+FileAbortRetryIgnore2=«ö [­«¸Õ] ¦A¸Õ¤@¦¸¡A«ö [²¤¹L] Ä~Äò¶i¦æ¡]¤£«Øij¡^¡A©Î«ö [¤¤¤î] µ²§ô¦w¸Ë¡C
+SourceIsCorrupted=¨Ó·½Àɮפw¸g·l·´¡C
+SourceDoesntExist=¨Ó·½ÀÉ®× "%1" ¤£¦s¦b¡C
+ExistingFileReadOnly=ÀÉ®×Äݩʤw³]¬°°ßŪ¡C%n%n«ö [­«¸Õ] ±N°ßŪÄݩʲ¾°£¨Ã¦A¸Õ¤@¦¸¡A«ö [²¤¹L] ¸õ¹L³o­ÓÀɮסA©Î«ö [¤¤¤î] µ²§ô¦w¸Ë¡C
+ErrorReadingExistingDest=Ū¨ú¤@­Ó¤w¦s¦bªºÀɮ׮ɵo¥Í¿ù»~:
+FileExists=Àɮפw¸g¦s¦b¡C±z­n¨ú¥N¥Ø«eªºÀɮ׶Ü?
+ExistingFileNewer=¦s¦bªºÀɮת©¥»¤ñ¸û·s¡A«Øij±z«O¯d¥Ø«e¤w¦s¦bªºÀɮסC%n%n±z­n«O¯d¥Ø«e¤w¦s¦bªºÀɮ׶Ü?
+ErrorChangingAttr=¦bÅܧóÀÉ®×Äݩʮɵo¥Í¿ù»~:
+ErrorCreatingTemp=¦b¥Øªº¸ê®Æ§¨¤¤«Ø¥ßÀɮ׮ɵo¥Í¿ù»~:
+ErrorReadingSource=Ū¨ú­ì©lÀɮ׮ɵo¥Í¿ù»~:
+ErrorCopying=½Æ»sÀɮ׮ɵo¥Í¿ù»~:
+ErrorReplacingExistingFile=¨ú¥NÀɮ׮ɵo¥Í¿ù»~:
+ErrorRestartReplace=­«·s±Ò°Ê¹q¸£«á¨ú¥NÀÉ®×¥¢±Ñ:
+ErrorRenamingTemp=¦b¥Øªº¸ê®Æ§¨ÅܧóÀɮצWºÙ®Éµo¥Í¿ù»~:
+ErrorRegisterServer=µLªkµn¿ý DLL/OCX ÀÉ®×: %1¡C
+ErrorRegSvr32Failed=°õ¦æ RegSvr32 ¥¢±Ñ¡A¿ù»~½X¬° %1¡C
+ErrorRegisterTypeLib=µLªkµn¿ý Type Library: %1¡C
+
+; *** Post-installation errors
+ErrorOpeningReadme=¶}±ÒŪ§ÚÀɮ׮ɵo¥Í¿ù»~¡C
+ErrorRestartingComputer=¦w¸Ëµ{¦¡µLªk­«·s±Ò°Ê¹q¸£¡A½Ð¥H¤â°Ê¤è¦¡¦Û¦æ­«·s±Ò°Ê¹q¸£¡C
+
+; *** Uninstaller messages
+UninstallNotFound=ÀÉ®× "%1" ¤£¦s¦b¡AµLªk²¾°£µ{¦¡¡C
+UninstallOpenError=µLªk¶}±ÒÀÉ®× "%1"¡AµLªk²¾°£µ{¦¡¡C
+UninstallUnsupportedVer=³o­Óª©¥»ªº¸Ñ°£¦w¸Ëµ{¦¡µLªk¿ëÃÑ°O¿ýÀÉ "%1" ¤§®æ¦¡¡AµLªk¸Ñ°£¦w¸Ë¡C
+UninstallUnknownEntry=¸Ñ°£¦w¸Ë°O¿ýÀɤ¤µo²{¥¼ª¾ªº°O¿ý (%1)¡C
+ConfirmUninstall=±z½T©w­n§¹¥þ²¾°£ %1 ¤Î¨ä¬ÛÃöªºÀɮ׶Ü?
+UninstallOnlyOnWin64=³o­Óµ{¦¡¥u¯à¦b 64 ¦ì¤¸ªº Windows ¤W¸Ñ°£¦w¸Ë¡C
+OnlyAdminCanUninstall=³o­Óµ{¦¡­n¨ã³Æ¨t²ÎºÞ²z­ûÅv­­ªº¨Ï¥ÎªÌ¤è¥i¸Ñ°£¦w¸Ë¡C
+UninstallStatusLabel=¥¿¦b±q±zªº¹q¸£²¾°£ %1 ¤¤¡A½Ðµy­Ô...
+UninstalledAll=%1 ¤w¸g¦¨¥\±q±zªº¹q¸£¤¤²¾°£¡C
+UninstalledMost=%1 ¸Ñ°£¦w¸Ë§¹¦¨¡C%n%n¬Y¨ÇÀɮפΤ¸¥óµLªk²¾°£¡A±z¥i¥H¦Û¦æ§R°£³o¨ÇÀɮסC
+UninstalledAndNeedsRestart=­n§¹¦¨ %1 ªº¸Ñ°£¦w¸Ëµ{§Ç¡A±z¥²¶·­«·s±Ò°Ê¹q¸£¡C%n%n±z·Q­n²{¦b­«·s±Ò°Ê¹q¸£¶Ü?
+UninstallDataCorrupted=ÀÉ®× "%1" ¤w¸g·l·´¡AµLªk¸Ñ°£¦w¸Ë¡C
+
+; *** Uninstallation phase messages
+ConfirmDeleteSharedFileTitle=²¾°£¦@¥ÎÀÉ®×
+ConfirmDeleteSharedFile2=¨t²ÎÅã¥Ü¤U¦C¦@¥ÎÀɮפw¤£¦A³Q¥ô¦óµ{¦¡©Ò¨Ï¥Î¡A±z­n²¾°£³o¨ÇÀɮ׶Ü?%n%n%1%n%n­Õ­Y±z²¾°£¤F¥H¤WÀɮצý¤´¦³µ{¦¡»Ý­n¨Ï¥Î¥¦­Ì¡A±N³y¦¨³o¨Çµ{¦¡µLªk¥¿±`°õ¦æ¡A¦]¦¹±z­YµLªk½T©w½Ð¿ï¾Ü [§_]¡C«O¯d³o¨ÇÀɮצb±zªº¨t²Î¤¤¤£·|³y¦¨¥ô¦ó·l®`¡C
+SharedFileNameLabel=ÀɮצWºÙ:
+SharedFileLocationLabel=¦ì¸m:
+WizardUninstalling=¸Ñ°£¦w¸Ëª¬ºA
+StatusUninstalling=¥¿¦b¸Ñ°£¦w¸Ë %1...
+
+; The custom messages below aren't used by Setup itself, but if you make
+; use of them in your scripts, you'll want to translate them.
+
+[CustomMessages]
+
+NameAndVersion=%1 ª©¥» %2
+AdditionalIcons=ªþ¥[¹Ï¥Ü:
+CreateDesktopIcon=«Ø¥ß®à­±¹Ï¥Ü(&D)
+CreateQuickLaunchIcon=«Ø¥ß§Ö³t±Ò°Ê¹Ï¥Ü(&Q)
+ProgramOnTheWeb=%1 ªººô¯¸
+UninstallProgram=¸Ñ°£¦w¸Ë %1
+LaunchProgram=±Ò°Ê %1
+AssocFileExtension=±N %1 »PÀÉ®×°ÆÀɦW %2 ²£¥ÍÃöÁp(&A)
+AssocingFileExtension=¥¿¦b±N %1 »PÀÉ®×°ÆÀɦW %2 ²£¥ÍÃöÁp...
diff --git a/tools/innosetup/zh_TW_scilab.isl b/tools/innosetup/zh_TW_scilab.isl
new file mode 100755
index 000000000..b3f7443a7
--- /dev/null
+++ b/tools/innosetup/zh_TW_scilab.isl
@@ -0,0 +1,138 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) DIGITEO - 2010 - Allan CORNET
+;
+; 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.1-en.txt
+;
+;-------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;-------------------------------------------------------------------------------
+
+zh_TW.LANGUAGE =zh_TW
+
+zh_TW.MsgBoxJRENotFound =Java Runtime Environment not detected.
+zh_TW.MsgBoxJREURL =Please download & Install JRE at http://www.java.com/en/download/
+zh_TW.MsgBoxJREReinstall =Reinstall Scilab after your JRE update.
+zh_TW.MsgBoxSSERequired =CPU SSE2 instructions are required for Scilab to run correctly.
+zh_TW.MsgBoxX64Ready =For increase performance, it will be better to use Scilab x64 bits version on this Operating system.
+
+zh_TW.MsgBoxJavaDetection1 =Java is not installed on this computer and this program needs it.
+zh_TW.MsgBoxJavaDetection2 =Please choose to install Java Runtime:
+zh_TW.MsgBoxWebOpen =Can not open web page.
+zh_TW.MsgBoxDevToolsRequired1 =You choose to install toolbox_skeleton module but development_tools module is not selected.
+zh_TW.MsgBoxDevToolsRequired2 =Please install development_tools module.
+zh_TW.MsgBoxDevToolsRequired3 =You choose to install tests module but development_tools module is not selected.
+zh_TW.MsgBoxTclsciRequired2 =Please install tclsci module.
+zh_TW.MsgBoxFftw1 =You choose to install FFTW module for Scilab.
+zh_TW.MsgBoxFftw2 =This module requires to download FFTW library (GPL).
+zh_TW.MsgBoxFftw3 =Do you want to open a web page about this add-on ?
+zh_TW.MsgBoxFftw4 =Can not open web page.
+zh_TW.MsgBoxWinVer =Windows 2000 is required.
+zh_TW.MsgBoxScicosRequired1 =You choose to install Xcos module but Scicos module is not selected.
+zh_TW.MsgBoxScicosRequired2 =Please also install Scicos module.
+
+;
+zh_TW.ButtonAboutModules =&About modules ...
+;
+zh_TW.DescriptionEquDif =Differential Equations Module
+zh_TW.DescriptionInterpolation =Interpolation Module
+zh_TW.DescriptionPolynomials =Polynomials Module
+zh_TW.DescriptionSymbolic =Symbolic Module
+zh_TW.DescriptionStats =Statistics Module
+zh_TW.DescriptionSparse =Sparse Matrix Module
+zh_TW.DescriptionLinAlg =Linear Algebra Module
+zh_TW.DescriptionSigProc =Signal processing Module
+zh_TW.DescriptionCacsd =C.A.C.S.D Module
+zh_TW.DescriptionGraphics =Graphics Module
+zh_TW.DescriptionOptim =Optimization Module
+zh_TW.DescriptionMetanet =Metanet Toolbox
+zh_TW.DescriptionScicos =Scicos Toolbox
+zh_TW.DescriptionArnoldi =ARnoldi PACKage Toolbox
+zh_TW.DescriptionUmfpack =UMFPACK for Scilab
+zh_TW.DescriptionCompatFunctions =Compatibility functions
+zh_TW.DescriptionM2sci =M2SCI Toolbox
+zh_TW.DescriptionMatio =MAT File Input/Output Toolbox
+zh_TW.DescriptionExternalObjects =External objects
+zh_TW.DescriptionSound =Sound file handling Toolbox
+zh_TW.DescriptionRandlib =Randlib Toolbox
+zh_TW.DescriptionMexlib =Mexlib Tools
+zh_TW.DescriptionIntersci =Intersci Toolbox
+zh_TW.DescriptionTclTK =TCL/TK in Scilab
+zh_TW.DescriptionSpreadsheet =Spreadsheet Toolbox
+zh_TW.DescriptionJVM =Java Runtime
+zh_TW.DescriptionAtlas =Atlas library 3.8.0 CPU optimized
+zh_TW.DescriptionFftwModule =FFTW interface for Scilab
+zh_TW.DescriptionFftwMKLDownload =Download FFTW library optimized by Intel Math Kernel Library
+zh_TW.DescriptionRefFftwLibrary =Reference FFTW library
+zh_TW.DescriptionParametersTlbx =Parameters Toolbox
+zh_TW.DescriptionGeneticTlbx =Genetic Algorithms Toolbox
+zh_TW.DescriptionSimulAnnealingTlbx =Simulated Annealing Toolbox
+zh_TW.DescriptionDevTools =Development Tools
+zh_TW.DescriptionTests =Tests for Scilab
+zh_TW.DescriptionTlbxSkeleton =A toolbox skeleton (to extend Scilab)
+zh_TW.DescriptionComConnector =COM connector
+zh_TW.DescriptionSciNotes =SciNotes: Editor for Scilab
+zh_TW.DescriptionXcos =Xcos
+zh_TW.DescriptionParallel =Parallel Computing with Scilab
+zh_TW.DescriptionModulesManager =Tools for management of extern modules
+zh_TW.DescriptionModuleJVM =JVM Module
+;
+zh_TW.ConsoleIconName =Scilab Console
+;
+zh_TW.WebIconScilab =Scilab on the Web
+;
+zh_TW.ReadMeIcon =Read Me
+;
+zh_TW.UnInstallIcon =Uninstall Scilab
+;
+zh_TW.RegKeyRunWith =Run with
+;
+zh_TW.DescriptionVC2008Redist =Install Microsoft Visual C++ 2008 Redistributable Package
+;
+zh_TW.DescriptionConfigureAtlas =Configure Atlas
+;
+zh_TW.DescriptionLaunchScilab =Launch Scilab
+;
+zh_TW.DescriptionCreateDesktopIcon =Create a &desktop icon
+;
+zh_TW.DescriptionQuickLaunch =Create a shortcut in Quick Launch Bar
+;
+zh_TW.DescriptionAssociateSceSci =Associate *.sce,*.sci files with Scilab
+;
+zh_TW.DescriptionAssociateTstDem =Associate *.tst files with Scilab
+;
+zh_TW.DescriptionAssociateBinSav =Associate *.bin, *.sav files with Scilab
+;
+zh_TW.DescriptionAssociateGraph =Associate *.graph *.graphb files with Scilab
+;
+zh_TW.DescriptionAssociateScicos =Associate *.xcos *.cos *.cosf files with Scilab
+;
+zh_TW.DescriptionDefaultInstall =Installation (Default)
+zh_TW.DescriptionFullInstall =Full installation
+zh_TW.DescriptionCustomInstall =Custom installation
+zh_TW.DescriptionCLIInstall =Command Line Minimal Installation (no gui)
+;
+zh_TW.DescriptionCPUOptimization =CPU Optimization for Scilab
+zh_TW.DescriptionATLASLibrary =Atlas Library for Scilab
+zh_TW.DescriptionRefBlasLibrary =Blas, Lapack Reference libraries for Scilab
+zh_TW.DescriptionMKLLibrary =Download Intel Math Kernel Library for Scilab
+;
+zh_TW.DownloadMKLLabel =Downloading Intel Math Kernel Library files for Scilab
+zh_TW.DownloadMKLDescription =Please wait while Setup is downloading extra files to your computer.
+;
+zh_TW.DownloadMKLFFTWLabel =Downloading FFTW3 library optimized by Intel Math Kernel.
+;
+zh_TW.DoTasksJustAfterInstallMsg2 =BLAS, LAPACK reference libraries will be installed and used.
+zh_TW.DoTasksJustAfterInstallMsg3 =FFTW3 reference library will be installed and used.
+;
+zh_TW.NextButtonClickwpReadyMsg1 =Impossible to download Intel Math Kernel Library files for Scilab (Default library will be used).
+zh_TW.NextButtonClickwpReadyMsg2 =Impossible to download FFTW3 library optimized by Intel Math Kernel Library (Default library will be used).
+;
+zh_TW.DescriptionAtoms =ATOMS
+;-------------------------------------------------------------------------------
+;
diff --git a/tools/localization/dispatchLocalizationFile.sh b/tools/localization/dispatchLocalizationFile.sh
new file mode 100755
index 000000000..6d1d7b759
--- /dev/null
+++ b/tools/localization/dispatchLocalizationFile.sh
@@ -0,0 +1,93 @@
+#!/bin/sh
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) INRIA - 2007-2008 - Sylvestre Ledru
+# Copyright (C) DIGITEO - 2009-2010 - Sylvestre Ledru
+# Copyright (C) 2010 - Calixte DENIZET
+# 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.1-en.txt
+#
+# This script takes a list of localization files dumped by launchpad
+# here https://translations.launchpad.net/scilab/trunk/+export
+# and dispatch them into Scilab source tree
+
+if test $# -ne 1; then
+ echo "This script takes a list of localization files dumped by launchpad"
+ echo "here https://translations.launchpad.net/scilab/trunk/+export "
+ echo "and dispatch them into Scilab source tree"
+ echo ""
+ echo "Syntax : $0 <path_to_launchpad_localization_file>"
+ exit 1
+fi
+
+if test -z "$SCI"; then
+ echo "Please define the variable SCI"
+ exit 2
+fi
+
+LAUNCHPAD_DIRECTORY=$1
+if test ! -d $LAUNCHPAD_DIRECTORY; then
+ echo "Could not find $LAUNCHPAD_DIRECTORY."
+ echo "Exiting..."
+ exit 3
+fi
+
+# Don't know why but launchpad is placing some files in some sub dirs
+FILES=$(find $LAUNCHPAD_DIRECTORY/ -mindepth 2 -iname '*.po' -type f)
+/bin/cp -fiu $FILES $LAUNCHPAD_DIRECTORY/
+
+for file in $LAUNCHPAD_DIRECTORY/*.po; do
+ file=`echo $file|awk -F / '{print $NF}'` # get only the filename
+ LOC=`echo $file|cut -d. -f1|awk -F - '{print $NF}'` # Get the locale (fr_FR, en_US ...)
+
+ if test "$LOC" = "fr"; then LOC="fr_FR"; fi # Retrieve real format
+ if test "$LOC" = "ru"; then LOC="ru_RU"; fi
+ if test "$LOC" = "de"; then LOC="de_DE"; fi
+ if test "$LOC" = "ca"; then LOC="ca_ES"; fi
+ if test "$LOC" = "es"; then LOC="es_ES"; fi
+ if test "$LOC" = "ja"; then LOC="ja_JP"; fi
+ if test "$LOC" = "it"; then LOC="it_IT"; fi
+ if test "$LOC" = "uk"; then LOC="uk_UA"; fi
+ if test "$LOC" = "pl"; then LOC="pl_PL"; fi
+ if test "$LOC" = "cs"; then LOC="cs_CZ"; fi
+
+ # check that it is the right format
+ echo "$LOC"|grep -E "(.*_.*)" > /dev/null # it is a real localization name xx_YY
+
+ if test $? -eq 0; then
+ MODULE=`echo $file|sed -e "s|macros-||"|sed -e "s|\(.*\)-.*|\1|"|sed -e "s|-|_|g"` # Get the module name (for example signal_processing)
+ if test "$MODULE" = "pvm" -o "$MODULE" = "shell"; then
+ continue
+ fi
+ echo $file|grep "macros-" > /dev/null
+ IS_MACRO=$?
+ if test "$IS_MACRO" -eq 0; then
+ TARGETFILE=$SCI/modules/$MODULE/locales_macros/$LOC.po
+ else
+ TARGETFILE=$SCI/modules/$MODULE/locales/$LOC.po
+ fi
+
+
+ # Do not copy empty files
+ if test -n "$(msgcat $LAUNCHPAD_DIRECTORY/$file)"; then
+ # Before the copy, strip the line with the date. It is only making
+ # diff too big for a little gain.
+ # See bug #7059
+ sed -i -e "/X-Launchpad-Export-Date/d" $LAUNCHPAD_DIRECTORY/$file
+
+
+ /bin/cp -f $LAUNCHPAD_DIRECTORY/$file $TARGETFILE
+ if test $? -ne 0; then
+ echo "Error detected in the copy"
+ echo "/bin/cp $LAUNCHPAD_DIRECTORY/$file $TARGETFILE"
+ exit 1;
+ fi
+ fi
+ else
+ echo "Ignore locale $LOC"
+ fi
+done
+# Remove english variants
+rm -f modules/*/locales/en_*.po
diff --git a/tools/localization/generatePoFile.sce b/tools/localization/generatePoFile.sce
new file mode 100755
index 000000000..58e1b40f5
--- /dev/null
+++ b/tools/localization/generatePoFile.sce
@@ -0,0 +1,100 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2007 - INRIA - Allan CORNET
+// Copyright (C) 2011-2012 - DIGITEO - Allan CORNET
+//
+// 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.1-en.txt
+
+function generatePoFile(LANGUAGE)
+ if getos() <> "Windows" then
+ error(999, "Used only under Windows");
+ end
+
+ if ~isdef("%c_a_c") then
+ exec("SCI/modules/overloading/macros/%c_a_c.sci");
+ end
+
+ LC = "LC_MESSAGES";
+ DEST_PATH_MO = SCI + filesep() + "locale" + filesep() + LANGUAGE + filesep() + LC + filesep();
+ DEST_FILE_MO = "scilab.mo";
+ DEST_FILE_PO = "scilab.po";
+ LC = "LC_MESSAGES";
+ PATH_GETTEXT_TOOLS = SCI + filesep() + "tools/gettext";
+ PATH_GETTEXT_TOOLS = getrelativefilename(DEST_PATH_MO, PATH_GETTEXT_TOOLS);
+
+ // make destination directories
+ if ~isdir(SCI + filesep() + "locale") then
+ createdir(SCI + filesep() + "locale");
+ end
+
+ if ~isdir(SCI + filesep() + "locale" + filesep() + LANGUAGE) then
+ createdir(SCI + filesep() + "locale" + filesep() + LANGUAGE);
+ end
+
+ if ~isdir(SCI + filesep() + "locale" + filesep() + LANGUAGE + filesep() + LC) then
+ createdir(SCI + filesep() + "locale" + filesep() + LANGUAGE + filesep() + LC);
+ end
+
+ Modules = getmodules();
+ PATH_PO = SCI + filesep() + "modules" + filesep() + Modules + filesep() + "locales" + filesep();
+ if LANGUAGE == "en_US" then
+ FILENAME_PO = Modules + ".pot";
+ else
+ FILENAME_PO = LANGUAGE + ".po";
+ end
+
+ List_files = [];
+ for k = 1:size(PATH_PO, "*")
+ if LANGUAGE == "en_US" then
+ if findfiles(PATH_PO(k), FILENAME_PO(k)) <> [] then
+ List_files = [List_files ; getrelativefilename(DEST_PATH_MO, fullpath(PATH_PO(k) + FILENAME_PO(k)))];
+ end
+ else
+ if findfiles(PATH_PO(k), FILENAME_PO) <> [] then
+ List_files = [List_files ; getrelativefilename(DEST_PATH_MO, fullpath(PATH_PO(k) + FILENAME_PO))];
+ end
+ end
+ end
+
+ if (List_files <> []) then
+ if newest([DEST_PATH_MO + DEST_FILE_MO; DEST_PATH_MO + List_files]) <> 1 then
+ curPath = pwd();
+ cd(DEST_PATH_MO)
+ cmdline_msgcat = PATH_GETTEXT_TOOLS + filesep() + "msgcat --use-first -o " + DEST_FILE_PO + " " + strcat("""" + List_files + """", " ");
+ unix(cmdline_msgcat);
+ cmline_msgfmt = PATH_GETTEXT_TOOLS + filesep() + "msgfmt --statistics -o " + DEST_FILE_MO + " " + DEST_FILE_PO;
+ unix(cmline_msgfmt);
+ cd(curPath)
+ end
+ end
+
+endfunction
+// ======================================
+function languages = findLanguagesToBuild()
+ languages = [];
+
+ f1 = findfiles("SCI/modules/core/locales/", "*.pot");
+ f2 = findfiles("SCI/modules/core/locales/", "*.po");
+
+ if f1 <> [] then
+ languages = ["en_US"];
+ end
+
+ if f2 <> [] then
+ f2 = strsubst(f2, ".po", "");
+ languages = [languages, f2'];
+ end
+endfunction
+// ======================================
+// Main
+LANGUAGES = findLanguagesToBuild();
+mprintf("-- Build localization (.mo from .po) --\n");
+
+for L = LANGUAGES
+ mprintf(" -- Building for ""%s"" --\n", L);
+ generatePoFile(L);
+end
+// ======================================
diff --git a/tools/localization/generatePoFile.vcxproj b/tools/localization/generatePoFile.vcxproj
new file mode 100755
index 000000000..ee60cdb82
--- /dev/null
+++ b/tools/localization/generatePoFile.vcxproj
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{6880D4DF-BC7A-411F-AD9B-20A14429A92F}</ProjectGuid>
+ <RootNamespace>generatePoFile</RootNamespace>
+ <Keyword>MakeFileProj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Makefile</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)locales\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(SolutionDir)bin\scilex.exe" -ns -nwni -e exec(SCI+%27/tools/localization/generatePoFile.sce%27);quit
+exit /B 0
+</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">IF EXIST "$(SolutionDir)locale" rmdir /s /q "$(SolutionDir)locale"
+"$(SolutionDir)bin\scilex.exe" -ns -nwni -e exec(SCI+%27/tools/localization/generatePoFile.sce%27);quit
+exit /B 0
+</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">rmdir /s /q "$(SolutionDir)locale"</NMakeCleanCommandLine>
+ <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
+ <NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
+ <NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
+ <NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
+ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
+ <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)locales\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(SolutionDir)bin\scilex.exe" -ns -nwni -e exec(SCI+%27/tools/localization/generatePoFile.sce%27);quit
+exit /B 0
+</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">IF EXIST "$(SolutionDir)locale" rmdir /s /q "$(SolutionDir)locale"
+"$(SolutionDir)bin\scilex.exe" -ns -nwni -e exec(SCI+%27/tools/localization/generatePoFile.sce%27);quit
+exit /B 0
+</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">rmdir /s /q "$(SolutionDir)locale"</NMakeCleanCommandLine>
+ <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
+ <NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
+ <NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
+ <NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
+ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
+ <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)locales\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(SolutionDir)bin\scilex.exe" -ns -nwni -e exec(SCI+%27/tools/localization/generatePoFile.sce%27);quit
+exit /B 0
+</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">IF EXIST "$(SolutionDir)locale" rmdir /s /q "$(SolutionDir)locale"
+"$(SolutionDir)bin\scilex.exe" -ns -nwni -e exec(SCI+%27/tools/localization/generatePoFile.sce%27);quit
+exit /B 0
+</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">rmdir /s /q "$(SolutionDir)locale"</NMakeCleanCommandLine>
+ <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
+ <NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
+ <NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
+ <NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
+ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
+ <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)locales\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
+ <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(SolutionDir)bin\scilex.exe" -ns -nwni -e exec(SCI+%27/tools/localization/generatePoFile.sce%27);quit
+exit /B 0
+</NMakeBuildCommandLine>
+ <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">IF EXIST "$(SolutionDir)locale" rmdir /s /q "$(SolutionDir)locale"
+"$(SolutionDir)bin\scilex.exe" -ns -nwni -e exec(SCI+%27/tools/localization/generatePoFile.sce%27);quit
+exit /B 0
+</NMakeReBuildCommandLine>
+ <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">rmdir /s /q "$(SolutionDir)locale"</NMakeCleanCommandLine>
+ <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
+ <NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
+ <NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
+ <NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
+ <NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
+ <NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <None Include="generatePoFile.sce" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\modules\functions\scripts\buildmacros\BuildMacros.vcxproj">
+ <Project>{66f2fb48-5d68-4445-a856-119f685a371b}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/tools/localization/generatePoFile.vcxproj.filters b/tools/localization/generatePoFile.vcxproj.filters
new file mode 100755
index 000000000..65f1cbe60
--- /dev/null
+++ b/tools/localization/generatePoFile.vcxproj.filters
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="generatePoFile.sce" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/tools/localization/pocheck.pl b/tools/localization/pocheck.pl
new file mode 100755
index 000000000..6dc62b9a9
--- /dev/null
+++ b/tools/localization/pocheck.pl
@@ -0,0 +1,333 @@
+#! /usr/bin/perl -w
+
+# file pocheck.pl
+#
+# This file is part of LyX, the document processor.
+# Licence details can be found in the file COPYING.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# The GNU General Public License version 2 is included below for your reference.
+
+# author: Michael Gerz, michael.gerz@teststep.org
+# update by Sylvestre Ledru <sylvestre.ledru@scilab.org> 2011 - Integration
+# of Scilab string + automatic correction of the missing quotes.
+
+use strict;
+use warnings;
+use Getopt::Std;
+use File::Copy;
+
+my $usage = <<EOT;
+pocheck.pl [-acmpqstzx] po_file [po_file] ...
+
+This script performs some consistency checks on po files.
+
+We check for everything listed here, unless one or more of these
+options is given, in which case we checks only for those requested.
+-a: Check arguments, like %1\$s
+-c: Check for colons at end
+-m: Check for menu shortcuts
+-p: Check for period at end
+-q: Check Qt shortcuts
+-s: Check for space at end
+-t: Check for uniform translation
+-n: Check for Scilab macros error
+-x: Automagically fix Scilab macros quote errors
+These options can be given with or without other options.
+-f: Ignore fuzzy translations
+-w: Only report summary total of errors
+-i: Silent mode, report only errors
+EOT
+
+my %options;
+getopts(":hacfmpqstnwix", \%options);
+
+if (defined($options{h})) {
+ print $usage;
+ exit 0;
+}
+
+my $only_total = defined($options{w});
+delete $options{w} if $only_total;
+my $ignore_fuzzy = defined($options{f});
+delete $options{f} if $ignore_fuzzy;
+my $silent_mode = defined($options{i});
+delete $options{i} if $silent_mode;
+
+my $check_args = (!%options or defined($options{a}));
+my $check_colons = (!%options or defined($options{c}));
+my $check_spaces = (!%options or defined($options{m}));
+my $check_periods = (!%options or defined($options{p}));
+my $check_qt = (!%options or defined($options{q}));
+my $check_menu = (!%options or defined($options{s}));
+my $check_trans = (!%options or defined($options{t}));
+# Fix Scilab code implies the detection
+my $check_scilab_macros = (!%options or defined($options{n}) or defined($options{x}));
+my $fix_scilab_quote = (!%options or defined($options{x}));
+
+my %trans;
+
+my $global_warn = 0;
+sub replaceInFile {
+ my $pofilename=$_[0];
+ my $kindofreplace=$_[1];
+ open( INPUT, "<$pofilename" )
+ || die "Cannot read po file '$pofilename'";
+ open(OUTPUTFILE, ">$pofilename.tmp" );
+
+
+ while (<INPUT>) {
+
+
+ if ($kindofreplace eq "single") {
+ $_ =~ s/^msgstr "(.*)([^'])'([^'])(.*)"/msgstr "$1$2''$3$4"/g;
+ $_ =~ s/^"(.*)([^'])'([^'])(.*)"/"$1$2''$3$4"/g;
+ } else {
+ if ($kindofreplace eq "double") {
+ $_ =~ s/^msgstr "(.*)([^"])"([^"])(.*)"/msgstr "$1$2""$3$4"/g;
+ $_ =~ s/^"(.*)([^"])"([^"])(.*)"/"$1$2""$3$4"/g;
+ #$_ =~ s/^msgstr "([^"])"([^"])"/msgstr "$1""$2"/g;
+# $_ =~ s/^"([^"])"([^"])"/"$1""$2"/g;
+ } else {
+ $_ =~ s/^msgstr "(.*)\\"(.*)"/msgstr "$1"$2"/g;
+ $_ =~ s/^"(.*)\\"(.*)"/"$1"$2"/g;
+ }
+ }
+ print OUTPUTFILE $_;
+ }
+ close( INPUT );
+ close( OUTPUTFILE );
+ copy("$pofilename.tmp",$pofilename);
+ unlink("$pofilename.tmp");
+}
+
+foreach my $pofilename ( @ARGV ) {
+ my %bad;
+ if (!$silent_mode) {
+ print "Processing po file '$pofilename'...\n";
+ }
+
+ open( INPUT, "<$pofilename" )
+ || die "Cannot read po file '$pofilename'";
+ my @pofile = <INPUT>;
+ close( INPUT );
+
+ undef( %trans );
+ keys( %trans ) = 10000;
+
+ my $noOfLines = $#pofile;
+
+ my $warn = 0;
+
+ my $i = 0;
+ my ($msgid, $msgstr, $more);
+
+ while ($i <= $noOfLines) {
+ my $linenum = $i;
+ ( $msgid ) = ( $pofile[$i] =~ m/^msgid "(.*)"/ );
+ $i++;
+ next unless $msgid;
+ if ($ignore_fuzzy) {
+ my $previous = $pofile[$i - 2];
+ next if $previous =~ m/#,.*fuzzy/;
+ }
+
+ # some msgid's are more than one line long, so add those.
+ while ( ( $more ) = $pofile[$i] =~ m/^"(.*)"/ ) {
+ $msgid = $msgid . $more;
+ $i++;
+ }
+
+ # now look for the associated msgstr.
+ until ( ( $msgstr ) = ( $pofile[$i] =~ m/^msgstr "(.*)"/ ) ) { $i++; };
+ $i++;
+ # again collect any extra lines.
+ while ( ( $i <= $noOfLines ) &&
+ ( ( $more ) = $pofile[$i] =~ m/^"(.*)"/ ) ) {
+ $msgstr = $msgstr . $more;
+ $i++;
+ }
+
+ # nothing to do if one of them is empty.
+ # (surely that is always $msgstr?)
+ next if ($msgid eq "" or $msgstr eq "");
+
+ # Check for matching %1$s, etc.
+ if ($check_args) {
+ my @argstrs = ( $msgid =~ m/%(\d)\$s/g );
+ if (@argstrs) {
+ my $n = 0;
+ foreach my $arg (@argstrs) { $n = $arg if $arg > $n; }
+ if ($n <= 0) {
+ print "$pofilename, line $linenum: Problem finding arguments in:\n $msgid!\n"
+ unless $only_total;
+ ++$bad{"Missing arguments"};
+ $warn++;
+ } else {
+ foreach my $i (1..$n) {
+ my $arg = "%$i\\\$s";
+ if ( $msgstr !~ m/$arg/ ) {
+ print "$pofilename, line $linenum: Missing argument `$arg'\n '$msgid' ==> '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Missing arguments"};
+ $warn++;
+ }
+ }
+ }
+ }
+ }
+
+ if ($check_colons) {
+ # Check colon at the end of a message
+ if ( ( $msgid =~ m/: *(\|.*)?$/ ) != ( $msgstr =~ m/: *(\|.*)?$/ ) ) {
+ print "Line $linenum: Missing or unexpected colon:\n '$msgid' => '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Bad colons"};
+ $warn++;
+ }
+ }
+
+ if ($check_periods) {
+ # Check period at the end of a message; uncomment code if you are paranoid
+ if ( ( $msgid =~ m/\. *(\|.*)?$/ ) != ( $msgstr =~ m/\. *(\|.*)?$/ ) ) {
+ print "Line $linenum: Missing or unexpected period:\n '$msgid' => '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Bad periods"};
+ $warn++;
+ }
+ }
+
+ if ($check_spaces) {
+ # Check space at the end of a message
+ if ( ( $msgid =~ m/ *?(\|.*)?$/ ) != ( $msgstr =~ m/ *?(\|.*)?$/ ) ) {
+ print "Line $linenum: Missing or unexpected space:\n '$msgid' => '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Bad spaces"};
+ $warn++;
+ }
+ }
+
+ if ($check_qt) {
+ # Check for "&" shortcuts
+ if ( ( $msgid =~ m/&[^ ]/ ) != ( $msgstr =~ m/&[^ ]/ ) ) {
+ print "Line $linenum: Missing or unexpected Qt shortcut:\n '$msgid' => '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Bad Qt shortcuts"};
+ $warn++;
+ }
+ }
+
+ if ($check_scilab_macros) {
+
+ if ( ( $msgstr =~ /\\"/ ) ) {
+ print "Line $linenum: Useless \\\":\n '$msgid' => '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Scilab error in \\\" (should be a double quote instead)"};
+ $warn++;
+ if ($fix_scilab_quote) {
+ replaceInFile($pofilename,"backslash");
+ }
+ }
+
+
+ # Check for single single/double quote in the string
+ if ( ( $msgstr =~ m/[^']'[^']/ ) ) {
+ print "Line $linenum: Missing single quote:\n '$msgid' => '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Scilab error in single quote (should be doubled)"};
+ $warn++;
+ if ($fix_scilab_quote) {
+ replaceInFile($pofilename,"single");
+ }
+ }
+
+ if ( ( $msgstr =~ m/[^"]"[^"]/ ) ) {
+ print "Line $linenum: Missing double quote:\n '$msgid' => '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Scilab error in double quote (should be doubled)"};
+ $warn++;
+ if ($fix_scilab_quote) {
+ replaceInFile($pofilename,"double");
+ }
+ }
+ }
+
+ if ($check_menu) {
+ # Check for "|..." shortcuts
+ if ( ( $msgid =~ m/\|[^ ]/ ) != ( $msgstr =~ m/\|[^ ]/ ) ) {
+ print "Line $linenum: Missing or unexpected menu shortcut:\n '$msgid' => '$msgstr'\n"
+ unless $only_total;
+ ++$bad{"Bad menu shortcuts"};
+ $warn++;
+ }
+ }
+
+ next unless $check_trans;
+
+ # we now collect these translations in a hash.
+ # this will allow us to check below if we have translated
+ # anything more than one way.
+ my $msgid_clean = lc($msgid);
+ my $msgstr_clean = lc($msgstr);
+
+ $msgid_clean =~ s/(.*)\|.*?$/$1/; # strip menu shortcuts
+ $msgstr_clean =~ s/(.*)\|.*?$/$1/;
+ $msgid_clean =~ s/&([^ ])/$1/; # strip Qt shortcuts
+ $msgstr_clean =~ s/&([^ ])/$1/;
+
+ # this is a hash of hashes. the keys of the outer hash are
+ # cleaned versions of ORIGINAL strings. the keys of the inner hash
+ # are the cleaned versions of their TRANSLATIONS. The value for the
+ # inner hash is an array of the orignal string and translation.
+ $trans{$msgid_clean}{$msgstr_clean} = [ $msgid, $msgstr, $linenum ];
+ }
+
+ if ($check_trans) {
+ foreach $msgid ( keys %trans ) {
+ # so $ref is a reference to the inner hash.
+ my $ref = $trans{$msgid};
+ # @msgstrkeys is an array of the keys of that inner hash.
+ my @msgstrkeys = keys %$ref;
+
+ # do we have more than one such key?
+ if ( $#msgstrkeys > 0 ) {
+ if (!$only_total) {
+ print "Different translations for '$msgid':\n";
+ foreach $msgstr ( @msgstrkeys ) {
+ print "Line $ref->{$msgstr}[2]: '" .
+ $ref->{$msgstr}[0] . "' => '" .
+ $ref->{$msgstr}[1] . "'\n";
+ }
+ }
+ ++$bad{"Inconsistent translations"};
+ $warn++;
+ }
+ }
+ }
+ if (!$silent_mode) {
+ if ($warn) {
+ $global_warn += $warn;
+ while (my ($k, $v) = each %bad) { print "$k: $v\n"; }
+ if (scalar(keys %bad) > 1) {
+ print "Total warnings: $warn\n";
+ }
+ } else {
+ print "No warnings!\n";
+ }
+ print "\n";
+ }
+}
+
+print "Warnings on all files: $global_warn\n";
diff --git a/tools/localization/revcheck.php b/tools/localization/revcheck.php
new file mode 100755
index 000000000..0a0bc0cf6
--- /dev/null
+++ b/tools/localization/revcheck.php
@@ -0,0 +1,1159 @@
+#!/usr/bin/php -q
+<?php
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 4 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2011 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.0 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_0.txt. |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Thomas Sch�fbeck <tom@php.net> |
+ | Gabor Hojtsy <goba@php.net> |
+ | Mark Kronsbein <mk@php.net> |
+ | Jan Fabry <cheezy@php.net>
+ +----------------------------------------------------------------------+
+
+ $Id: revcheck.php 308406 2011-02-16 22:27:57Z yannick $
+*/
+if ($argc < 2 || $argc > 4) {
+?>
+
+Check the revision of translated files against
+the actual english xml files, and print statistics
+
+ Usage:
+ <?php echo $argv[0]; ?> <language-code> [<maintainer>] [--show-uptodate]
+
+ <language-code> must be a valid language code used
+ in the repository
+
+ If you specify <maintainer>, the script only checks
+ the files maintained by the person you add here
+
+ If you specify --show-uptodate option, the script will
+ also show uptodate files in the common file list
+
+ Read more about Revision comments and related
+ functionality in the PHP Documentation Howto:
+ http://php.net/dochowto
+
+<?php
+ exit;
+}
+
+// Long runtime
+set_time_limit(0);
+
+// A file is criticaly "outdated' if
+define("ALERT_REV", 10); // translation is 10 or more revisions behind the en_US one
+define("ALERT_SIZE", 3); // translation is 3 or more kB smaller than the en_US one
+define("ALERT_DATE", -30); // translation is 30 or more days older than the en_US one
+
+// Revision marks used to flag files
+define("REV_UPTODATE", 1); // actual file
+define("REV_NOREV", 2); // file with revision comment without revision
+define("REV_CRITICAL", 3); // criticaly old / small / outdated
+define("REV_OLD", 4); // outdated file
+define("REV_NOTAG", 5); // file without revision comment
+define("REV_NOTRANS", 6); // file without translation
+
+define("REV_CREDIT", 7); // only used in translators list
+define("REV_WIP", 8); // only used in translators list
+
+$gitOptions="--no-color -n 1";
+
+// Colors used to mark files by status (colors for the above types)
+$CSS = array(
+ REV_UPTODATE => "act",
+ REV_NOREV => "norev",
+ REV_CRITICAL => "crit",
+ REV_OLD => "old",
+ REV_NOTAG => "wip",
+ REV_NOTRANS => "wip",
+ REV_CREDIT => "wip",
+ REV_WIP => "wip",
+);
+
+function init_revisions() {
+ global $CSS;
+ return array_fill_keys(array_keys($CSS), 0);
+}
+
+function init_files_by_maint($persons) {
+ $result = array();
+ foreach($persons as $item) {
+ $result[$item['name']] = init_revisions();
+ }
+
+ return $result;
+}
+
+$file_sizes_by_mark = $files_by_mark = init_revisions();
+
+// Initializing variables from parameters
+$LANG = $argv[1];
+$MAINT = "";
+$SHOW_UPTODATE = FALSE;
+if ($argc == 3) {
+ if ($argv[2] == '--show-uptodate') {
+ $SHOW_UPTODATE = TRUE;
+ } else {
+ $MAINT = $argv[2];
+ }
+} elseif ($argc == 4) {
+ $MAINT = $argv[2];
+ $SHOW_UPTODATE = ($argv[3] == '--show-uptodate');
+}
+
+$DOCDIR=getenv("SCI")."/";
+chdir($DOCDIR);
+$DOCDIR=getcwd()."/";
+if (!is_dir($DOCDIR)) {
+ echo "Could not find $DOCDIR\n";
+ die();
+}
+// =========================================================================
+// Functions to get revision info and credits from a file
+// =========================================================================
+function get_last_commit_from_git($file) {
+ global $gitOptions;
+ $cmd="cd `dirname $file` > /dev/null; git log $gitOptions $file|head -1|cut -d' ' -f2; cd - > /dev/null";
+ $lastcommit=exec($cmd);
+ if (!$lastcommit) {
+ die("Error: Could not retrieve the last commit from git: ".$cmd);
+ }
+ return $lastcommit;
+}
+
+function get_last_revision_from_git($file) {
+ global $DOCDIR;
+ $commit=get_last_commit_from_git($file);
+ if (!$commit) {
+ die("Error: empty commit");
+ }
+ $tempFile="/tmp/git_rev-list.txt";
+ if (!is_file($tempFile)) {
+ exec("cd `dirname $DOCDIR` > /dev/null; git rev-list --reverse HEAD > $tempFile; cd - > /dev/null");
+ }
+ return exec("cd `dirname $file` > /dev/null; grep -n $commit $tempFile | cut -d: -f1; cd - > /dev/null");
+}
+
+function get_author_from_git($file) {
+ global $gitOptions;
+ return ucwords(strtolower(exec("cd `dirname $file` > /dev/null; git log $gitOptions $file|head -2|grep 'Author:'|sed -e 's|Author: \(.*\) <.*|\\1|g'; cd - > /dev/null")));
+
+}
+
+// Grabs the revision tag and stores credits from the file given
+function get_tags($file, $val = "en-rev") {
+
+ // Read the first 500 chars. The comment should be at
+ // the begining of the file
+ $fp = @fopen($file, "r") or die ("Unable to read $file.");
+ $line = fread($fp, 500);
+ fclose($fp);
+ // Return if this was needed (it should be there)
+ if ($val == "en-rev") {
+ return get_last_revision_from_git($file);
+// preg_match("/<!-- .Revision: (\d+) . -->/", $line, $match);
+// return $match[1];
+ }
+
+ // Handle credits (only if no maintainer is specified)
+ if ($val == "\\S*") {
+
+ global $files_by_maint;
+
+ // Find credits info, let more credits then one,
+ // using commas as list separator
+ if (preg_match("'<!--\s*CREDITS:\s*(.+)\s*-->'U", $line, $match_credit)) {
+ // Explode with commas a separators
+ $credits = explode(",", $match_credit[1]);
+
+ // Store all elements
+ foreach ($credits as $num => $credit) {
+ $files_by_maint[trim($credit)][REV_CREDIT]++;
+ }
+ }
+ }
+ global $LANG;
+ // No match before the preg
+ $match = array();
+ $match[0]="";
+ $match[1]=get_last_revision_from_git($file);//str_replace($LANG,"en_US",$file));
+ $match[2]=get_author_from_git($file);
+ $match[3]="";
+ return $match;
+ // Check for the translations "revision tag"
+ preg_match ("/<!--\s*EN-Revision:\s*(\d+)\s*Maintainer:\s*("
+ . $val . ")\s*Status:\s*(.+)\s*-->/U",
+ $line,
+ $match
+ );
+
+ // The tag with revision number is not found so search
+ // for n/a revision comment (comment where revision is not known)
+ if (count($match) == 0) {
+ preg_match ("'<!--\s*EN-Revision:\s*(n/a)\s*Maintainer:\s*("
+ . $val . ")\s*Status:\s*(.+)\s*-->'U",
+ $line,
+ $match
+ );
+ }
+
+ // Return with found revision info (number, maint, status)
+ return $match;
+
+} // get_tags() function end
+
+function detect_date_from_git($file) {
+ global $gitOptions;
+ $en_date=strtotime(trim(exec("cd `dirname $file` > /dev/null; git log $gitOptions --date=iso $file|grep Date:|sed -e \"s|Date:||g\"; cd - > /dev/null")));
+ return $en_date;
+}
+
+// =========================================================================
+// Functions to check file status in translated directory, and store info
+// =========================================================================
+
+// Checks a file, and gather status info
+function get_file_status($file) {
+
+ // The information is contained in these global arrays and vars
+ global $DOCDIR, $LANG, $MAINT, $SHOW_UPTODATE, $files_by_mark, $files_by_maint;
+ global $file_sizes_by_mark;
+ global $missing_files, $missing_tags, $using_rev;
+
+ // Transform english file name to translated file name
+ $trans_file = str_replace("en_US", $LANG, $file);
+ // If we cannot find the file, we push it into the missing files list
+ if (!@file_exists($trans_file)) {
+ $files_by_mark[REV_NOTRANS]++;
+ $trans_name = substr($trans_file, strlen($DOCDIR));
+
+ $size = intval(filesize($file)/1024);
+ $missing_files[substr($file, strlen($DOCDIR))] = array( $size );
+ $file_sizes_by_mark[REV_NOTRANS] += $size;
+
+ // compute en-tags just if they're needed in the WIP-Table
+ if($using_rev) {
+ $missing_files[$trans_name][] = get_tags($file);
+ }
+ return FALSE;
+ }
+
+ // No specific maintainer, check for a revision tag
+ if (empty($MAINT)) {
+ $trans_tag = get_tags($trans_file, "\\S*");
+ }
+ // If we need to check for a specific translator
+ else {
+ // Get translated files tag, with maintainer
+ $trans_tag = get_tags($trans_file, $MAINT);
+
+ // If this is a file belonging to another
+ // maintainer, than we would not like to
+ // deal with it anymore
+ if (count($trans_tag) == 0) {
+ $trans_tag = get_tags($trans_file, "\\S*");
+ // We found a tag for another maintainer
+ if (count($trans_tag) > 0) {
+ return FALSE;
+ }
+ }
+ }
+
+ // Compute sizes and diffs
+ $en_size = intval(filesize($file) / 1024);
+ $trans_size = intval(mb_strlen(file_get_contents($trans_file), 'UTF-8') / 1024);
+ $size_diff = intval($en_size) - intval($trans_size);
+
+ // If we found no revision tag, then collect this
+ // file in the missing tags list
+ if (count($trans_tag) == 0) {
+ $files_by_mark[REV_NOTAG]++;
+ $file_sizes_by_mark[REV_NOTAG] += $en_size;
+ $missing_tags[] = array(substr($trans_file, strlen($DOCDIR)), $en_size, $trans_size, $size_diff);
+ return FALSE;
+ }
+
+ // Distribute values in separate vars for further processing
+ list(, $this_rev, $this_maint, $this_status) = $trans_tag;
+
+ // Get English file revision
+ $en_rev = get_tags($file);
+
+ // If we have a numeric revision number (not n/a), compute rev. diff
+ if (is_numeric($this_rev)) {
+ $rev_diff = intval($en_rev) - intval($this_rev);
+ $trans_rev = $this_rev;
+ $en_rev = $en_rev;
+ $en_commit = get_last_commit_from_git($file);
+ $trans_commit = get_last_commit_from_git($trans_file);
+
+ } else {
+ // If we have no numeric revision, make all revision
+ // columns hold the rev from the translated file
+ $rev_diff = $trans_rev = $this_rev;
+ $en_rev = $en_rev;
+ }
+
+ // Compute times and diffs
+// $en_date = intval((time() - filemtime($file)) / 86400);
+ $en_date=detect_date_from_git($file);
+ if (!$en_date) {
+ die("Could not detect date");
+ }
+ $en_date = intval((time() - $en_date) / 86400);
+ $trans_date=detect_date_from_git($trans_file);
+
+ $trans_date = intval((time() - $trans_date) / 86400);
+ $date_diff = $en_date - $trans_date;
+
+ // If the file is up-to-date
+ if ($rev_diff === 0 && trim($this_status) === "ready") {
+ $status_mark = REV_UPTODATE;
+ } elseif ($en_rev < $this_rev && $date_diff > 0) {
+ $status_mark = REV_UPTODATE;
+ }
+ // Or make decision on file category by revision, date and size
+ elseif ($rev_diff >= ALERT_REV || $size_diff >= ALERT_SIZE || $date_diff <= ALERT_DATE) {
+ $status_mark = REV_CRITICAL;
+ } elseif ($rev_diff === "n/a") {
+ $status_mark = REV_NOREV;
+ } elseif ($rev_diff === 0) {
+ $status_mark = REV_WIP;
+ } else {
+ $status_mark = REV_OLD;
+ }
+
+ // Store files by status, and by maintainer too
+ $files_by_mark[$status_mark]++;
+ if (!isset($files_by_maint[$this_maint])) {
+ $files_by_maint[$this_maint]=Array();
+ }
+ if (!isset($files_by_maint[$this_maint][$status_mark])) {
+ $files_by_maint[$this_maint][$status_mark]=Array();
+ }
+
+ $files_by_maint[$this_maint][$status_mark]++;
+ $file_sizes_by_mark[$status_mark] += $en_size;
+
+ if (REV_UPTODATE === $status_mark && !$SHOW_UPTODATE) {
+ return FALSE;
+ }
+
+ return array(
+ "full_name" => $file,
+ "short_name" => basename($trans_file),
+ "revision" => array($en_rev, $trans_rev, $rev_diff),
+ "commit" => array($en_commit, $trans_commit),
+ "size" => array($en_size, $trans_size, $size_diff),
+ "date" => array($en_date, $trans_date, $date_diff),
+ "maintainer" => $this_maint,
+ "status" => $this_status,
+ "mark" => $status_mark
+ );
+
+} // get_file_status() function end
+
+// =========================================================================
+// A function to check directory status in translated directory
+// =========================================================================
+
+// Check the status of files in a diretory of phpdoc XML files
+// The English directory is passed to this function to check
+function get_dir_status($dir,$lang) {
+
+ global $DOCDIR;
+
+ // Collect files and diretcories in these arrays
+ $directories = array();
+ $files = array();
+
+ // Open the directory
+ $handle = @opendir($dir);
+
+ // Walk through all names in the directory
+ while ($file = @readdir($handle)) {
+
+ if (
+ (!is_dir($dir.'/' .$file) && !in_array(substr($file, -3), array('xml','ent')) && substr($file, -13) != 'PHPEditBackup' )
+ || strpos($file, 'entities.') === 0
+ || $dir == $DOCDIR.'en/chmonly/' || $dir == $DOCDIR.'en/internals/' || $dir == $DOCDIR.'en/internals2/'
+ || $file == 'contributors.ent' || $file == 'contributors.xml'
+ || ($dir == $DOCDIR.'en/appendices/' && ($file == 'reserved.constants.xml' || $file == 'extensions.xml'))
+ || $file == 'README'
+ || $file == 'DO_NOT_TRANSLATE'
+ || $file == 'rsusi.txt'
+ || $file == 'missing-ids.xml'
+ || $file == 'license.xml'
+ || $file == 'master_help.xml'
+ || preg_grep("/scilab_.*_help/",Array($dir))
+ || $file == 'versions.xml'
+ ) {
+ continue;
+ }
+
+ if ($file != '.' && $file != '..' && $dir != '/functions') {
+ if (is_dir($dir.'/' .$file)) {
+ $directories[] = $file;
+ } elseif (is_file($dir.'/' .$file)) {
+ if (strpos($dir,"help/$lang")) {
+ $files[] = $file;
+ }
+ }
+ }
+
+ }
+
+ // Close the directory
+ @closedir($handle);
+
+ // Sort files and directories
+ sort($directories);
+ sort($files);
+
+ // Go through files first
+ $dir_status = array();
+ foreach ($files as $file) {
+ // If the file status is OK, append the status info
+ if ($file_status = get_file_status($dir.$file)) {
+ $dir_status[] = $file_status;
+ }
+ }
+
+ // Then go through subdirectories, merging all the info
+ // coming from subdirs to one array
+ foreach ($directories as $file) {
+// if (sizeof($dir_status) < 1) {
+// echo $dir.$file;
+ $dir_status = array_merge(
+ $dir_status,
+ get_dir_status($dir.$file.'/',$lang)
+ );
+// }
+ }
+
+ // Return with collected file info in
+ // this dir and subdirectories [if any]
+ return $dir_status;
+
+} // get_dir_status() function end
+
+
+// Check for files removed in the EN tree, but still living in the translation
+function get_old_files($dir) {
+
+ global $DOCDIR, $LANG;
+
+ // Collect files and diretcories in these arrays
+ $directories = array();
+ $files = array();
+
+ $special_files = array(
+ // french
+ 'LISEZ_MOI.txt',
+ 'TRADUCTIONS.txt',
+ 'Translators',
+ 'translation.xml'
+ // todo: add all missing languages
+ );
+
+ // Open the directory
+ $handle = @opendir($dir);
+
+ // Walk through all names in the directory
+ while ($file = @readdir($handle)) {
+
+ // If we found a file with one or two point as a name,
+ // a SVN directory, or an editor backup file skip the file
+ if (preg_match("/^\.{1,2}/", $file)
+ || substr($file, -1) == '~' // Emacs backup file
+ || substr($file, -4) == '.new'
+ ) {
+ continue;
+ }
+ // skip this files
+ if (in_array($file, $special_files)) {
+ continue;
+ }
+
+ // Collect files and directories
+ if (is_dir($dir.$file)) {
+ $directories[] = $file;
+ } else {
+ $files[] = $file;
+ }
+ }
+
+ // Close the directory
+ @closedir($handle);
+
+ // Sort files and directories
+ sort($directories);
+ sort($files);
+
+ // Go through files first
+ $old_files_status = array();
+ foreach ($files as $file) {
+
+ $en_dir = preg_replace("'^".$DOCDIR.$LANG."/'", $DOCDIR."en/", $dir);
+
+ if (!@file_exists($en_dir.$file) ) {
+ $old_files_status[$dir.$file] = array(0=>intval(filesize($dir.$file)/1024));
+ }
+
+ }
+
+ // Then go through subdirectories, merging all the info
+ // coming from subdirs to one array
+ foreach ($directories as $file) {
+ $old_files_status = array_merge(
+ $old_files_status,
+ get_old_files($dir.$file.'/')
+ );
+ }
+
+ return $old_files_status;
+
+} // get_old_files() function end
+
+
+// =========================================================================
+// Functions to read in the translation.xml file and process contents
+// =========================================================================
+
+// Get a multidimensional array with tag attributes
+function parse_attr_string ($tags_attrs) {
+
+ $tag_attrs_processed = array();
+
+ // Go through the tag attributes
+ foreach($tags_attrs as $attrib_list) {
+
+ // Get attr name and values
+ preg_match_all("!(.+)=\\s*([\"'])\\s*(.+)\\2!U", $attrib_list, $attribs);
+
+ // Assign all attributes to one associative array
+ $attrib_array = array();
+ foreach ($attribs[1] as $num => $attrname) {
+ $attrib_array[trim($attrname)] = trim($attribs[3][$num]);
+ }
+
+ // Collect in order of tags received
+ $tag_attrs_processed[] = $attrib_array;
+
+ }
+
+ // Retrun with collected attributes
+ return $tag_attrs_processed;
+
+} // parse_attr_string() end
+
+// Parse the translation.xml file for
+// translation related meta information
+function parse_translation($DOCDIR, $LANG, $MAINT) {
+
+ global $files_by_mark;
+
+ // Path to find translation.xml file, set default values,
+ // in case we can't find the translation file
+ $translation_xml = "tools/localization/translation-$LANG.xml";
+ $output_charset = 'iso-8859-1';
+ $translation = array(
+ "intro" => "",
+ "persons" => array(),
+ "files" => array(),
+ "allfiles" => array(),
+ );
+
+ // Check for file availability, return with default
+ // values, if we cannot find the file
+ if (!@file_exists($translation_xml)) {
+ return array($output_charset, $translation);
+ }
+
+ // Else go on, and load in the file, replacing all
+ // space type chars with one space
+ $txml = join("", file($translation_xml));
+ $txml = preg_replace("/\\s+/", " ", $txml);
+
+ // Get intro text (different for a persons info and
+ // for a whole group info page)
+ if (empty($MAINT)) {
+ preg_match("!<intro>(.+)</intro>!s", $txml, $match);
+ $translation["intro"] = trim($match[1]);
+ } else {
+ $translation["intro"] = "Personal Statistics for ".$MAINT;
+ }
+
+ // Get encoding for the output, from the translation.xml
+ // file encoding (should be the same as the used encoding
+ // in HTML)
+ preg_match("!<\?xml(.+)\?>!U", $txml, $match);
+ $xmlinfo = parse_attr_string($match);
+ $output_charset = $xmlinfo[1]["encoding"];
+
+ // Get persons list preg pattern, only check for a specific
+ // maintainer, if the users asked for it
+ if (empty($MAINT)) {
+ $pattern = "!<person(.+)/\\s?>!U";
+ } else {
+ $pattern = "!<person([^<]+nick=\"".$MAINT."\".+)/\\s?>!U";
+ }
+
+ // Find all persons matching the pattern
+ preg_match_all($pattern, $txml, $matches);
+ $translation['persons'] = parse_attr_string($matches[1]);
+
+ // Get list of work in progress files
+ if (empty($MAINT)) {
+
+ // Get all wip files
+ preg_match_all("!<file(.+)/\\s?>!U", $txml, $matches);
+ $translation['files'] = parse_attr_string($matches[1]);
+
+ // Provide info about number of WIP files
+ $files_by_mark[REV_WIP] += count($translation['files']);
+
+ } else {
+
+ // Only check for a specific maintainer, if we were asked to
+ preg_match_all("!<file([^<]+person=\"".$MAINT."\".+)/\\s?>!U", $txml, $matches);
+ $translation['files'] = parse_attr_string($matches[1]);
+
+ // Other maintainers wip files need to be cleared from
+ // available files list in the future, so store that info too.
+ preg_match_all("!<file(.+)/\\s?>!U", $txml, $matches);
+ $translation['allfiles'] = parse_attr_string($matches[1]);
+
+ // Provide info about number of WIP files
+ $files_by_mark[REV_WIP] += count($translation['allfiles']);
+
+ }
+
+ // Return with collected info in two vars
+ return array($output_charset, $translation);
+
+} // parse_translation() function end()
+
+// =========================================================================
+// Start of the program execution
+// =========================================================================
+
+// Check for directory validity
+if (!@is_dir($DOCDIR . $LANG)) {
+// die("The $LANG language code is not valid");
+}
+
+// Parse translation.xml file for more information
+list($charset, $translation) = parse_translation($DOCDIR, $LANG, $MAINT);
+
+// Add WIP files to maintainers file count and figure out,
+// if we need to use optional date and revision columns
+$using_date = FALSE; $using_rev = FALSE;
+$files_by_maint = init_files_by_maint($translation['persons']);
+foreach ($translation["files"] as $num => $fileinfo) {
+ $files_by_maint[$fileinfo["person"]][REV_WIP]++;
+ if (isset($fileinfo["date"])) { $using_date = TRUE; }
+ if (isset($fileinfo["revision"])) { $using_rev = TRUE; }
+}
+
+// Get all files status
+//$files_status = get_dir_status($DOCDIR."/modules/core/","en_US");//."en/");
+$files_status = get_dir_status($DOCDIR,"en_US");//."en/");
+
+// Get all old files in <lang> directory
+$old_files = get_old_files($DOCDIR.$LANG."/");
+
+$navbar = "<p class=c><a href=\"#intro\">Introduction</a> | " .
+ "<a href=\"#translators\">Translators</a> | " .
+ "<a href=\"#filesummary\">File summary by type</a> | " .
+ "<a href=\"#files\">Files</a> | ";
+
+if ( count($translation["files"]) != 0 ) {
+ $navbar .= "<a href=\"#wip\">Work in progress</a> | ";
+}
+
+$navbar .= "<a href=\"#missfiles\">Untranslated files</a> | " .
+ "<a href=\"#oldfiles\">Old files</a></p>\n";
+
+
+// Figure out generation date
+$date = date("r");
+
+// =========================================================================
+// Start of HTML page
+// =========================================================================
+
+print <<<END_OF_MULTILINE
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
+<html>
+<head>
+<title>Scilab documentation Revision-check</title>
+<meta http-equiv="Content-Type" content="text/html; charset={$charset}">
+<style type="text/css">
+<!--
+h2,td,a,p,a.ref,th { font-family:Arial,Helvetica,sans-serif; font-size:14px; }
+h2,th,a.ref { color:#FFFFFF; }
+td,a,p { color:#000000; }
+h2 { font-size:28px; }
+th { font-weight:bold; }
+.blue { background-color:#666699; }
+.act { background-color:#68D888; }
+.norev { background-color:#f4a460; }
+.old { background-color:#eee8aa; }
+.crit { background-color:#ff6347; }
+.wip { background-color:#dcdcdc; }
+.r { text-align:right }
+.rb { text-align:right; font-weight:bold; }
+.c { text-align:center }
+body { margin:0px 0px 0px 0px; background-color:#F0F0F0; }
+//-->
+</style>
+</head>
+<body>
+<table width="100%" border="0" cellspacing="0" bgcolor="#666699">
+<tr><td>
+<table width="100%" border="0" cellspacing="1" bgcolor="#9999CC">
+<tr><td><h2 class=c>Status of the translated Scilab Manual</h2><p class=c style="font-size:12px;">Generated: {$date} &nbsp; / &nbsp; Language: $LANG<br></p></td></tr>
+</table>
+</td></tr>
+</table>
+END_OF_MULTILINE;
+
+print ($navbar);
+
+// =========================================================================
+// Intro block goes here
+// =========================================================================
+
+// If we have an introduction text, print it out, with an anchor
+if (!empty($translation["intro"])) {
+ echo '<a name="intro"></a>';
+ echo '<table width="800" align="center"><tr><td class=c>' .
+ $translation['intro'] . '</td></tr></table>';
+}
+
+// =========================================================================
+// Files summary table goes here
+// =========================================================================
+
+// Do not print out file summary table, if we are printing out a page
+// for only one maintainer (his personal summary is in the table above)
+if (empty($MAINT)) {
+
+print <<<END_OF_MULTILINE
+<a name="filesummary"></a>
+<table width="450" border="0" cellpadding="4" cellspacing="1" align="center">
+<tr class=blue>
+<th>File status type</th>
+<th>Number of files</th>
+<th>Percent of files</th>
+<th>Size of files (kB)</th>
+<th>Percent of size</th>
+</tr>
+END_OF_MULTILINE;
+
+ $files_sum = array_sum($files_by_mark);
+ $file_sizes_sum = array_sum($file_sizes_by_mark);
+
+ $file_types = array(
+ array (REV_UPTODATE, "Up to date files"),
+ array (REV_OLD, "Old files"),
+ array (REV_CRITICAL, "Critical files"),
+ array (REV_WIP, "Work in progress"),
+// array (REV_NOREV, "Files without revision number"),
+// array (REV_NOTAG, "Files without revision tag"),
+ array (REV_NOTRANS, "Files available for translation")
+ );
+
+ foreach ($file_types as $num => $type) {
+ echo "<tr class=".$CSS[$type[0]].">".
+ "<td>".$type[1]."</td>".
+ "<td class=c>".intval($files_by_mark[$type[0]])."</td>".
+ "<td class=c>".number_format($files_by_mark[$type[0]] * 100 / $files_sum, 2 ).
+ "%</td>".
+ "<td class=c>".intval($file_sizes_by_mark[$type[0]])."</td>".
+ "<td class=c>".number_format($file_sizes_by_mark[$type[0]] * 100 / $file_sizes_sum, 2).
+ "%</td></tr>\n";
+ }
+
+ echo "<tr class=blue><th>Files total</th><th>$files_sum</th><th>100%</th><th>$file_sizes_sum</th><th>100%</th></tr>\n".
+ "</table>\n<p>&nbsp;</p>\n";
+
+}
+
+echo $navbar."<p>&nbsp;</p>\n";
+
+// =========================================================================
+// Files table goes here
+// =========================================================================
+
+if (count($files_status) != 0) {
+
+print <<<END_OF_MULTILINE
+<a name="files"></a>
+<table width="820" border="0" cellpadding="4" cellspacing="1" align="center">
+<tr class=blue>
+<th rowspan=2>Translated file</th>
+<th colspan=2>Revision</th>
+<th colspan=3>Size in kB</th>
+<th colspan=3>Age in days</th>
+<th rowspan=2>Maintainer</th>
+<th rowspan=2>Status</th>
+</tr>
+<tr class=blue>
+<th>en_US</th>
+<th>$LANG</th>
+<th>en_US</th>
+<th>$LANG</th>
+<th>diff</th>
+<th>en_US</th>
+<th>$LANG</th>
+<th>diff</th>
+</tr>
+END_OF_MULTILINE;
+
+ // This was the previous directory [first]
+ $prev_dir = false;
+
+ // Go through all files collected
+ foreach ($files_status as $num => $file) {
+// print_r($file);
+// die();
+ // Make the maintainer a link, if we have that maintainer in the list
+ if (isset($maint_by_nick[$file["maintainer"]])) {
+ $file["maintainer"] = '<a href="#maint' . $maint_by_nick[$file["maintainer"]] .
+ '">' . $file["maintainer"] . '</a>';
+ }
+
+ // If we have a 'numeric' revision diff and it is not zero,
+ // make a link to the git repository's diff script
+ if ($file["revision"][2] != "n/a" && $file["revision"][2] !== 0) {
+ $url="http://cgit.scilab.org/scilab/diff/?id="
+ .$file['commit'][0]."d2=".$file['commit'][1];
+ $file['short_name'] = '<a href="' . $url . '">'. $file["short_name"] . '</a> ';
+// '<a href="' . $url_ws . '">[NoWS]</a>';--
+ }
+
+ // Guess the new directory from the full name of the file
+ $new_dir = dirname($file["full_name"]);
+
+ // If this is a new directory, put out old dir lines
+ if ($new_dir !== $prev_dir) {
+ if (isset($lines)) {
+ echo $prev_diplay_dir;
+ echo " ($line_number)</th></tr>";
+ echo $lines;
+ }
+
+ $lines = '';
+ $line_number = 0;
+
+ // Store the new actual directory
+ $prev_dir = $new_dir;
+ }
+ // Drop out the unneeded parts from the dirname, special case for root dir...
+ $display_dir = str_replace(array($DOCDIR), array("", '/'), dirname($file["full_name"]));
+ $prev_diplay_dir = "<tr class=blue><th colspan=12>$display_dir";
+
+ // Save the line for the current file (get file name shorter)
+ $lines .= "<tr class={$CSS[$file['mark']]}><td>{$file['short_name']}</td>".
+ "<td> {$file['revision'][0]}</td>" .
+ "<td> {$file['revision'][1]}</td>".
+ "<td class=r>{$file['size'][0]} </td>".
+ "<td class=r>{$file['size'][1]} </td>".
+ "<td class=rb>{$file['size'][2]} </td>".
+ "<td class=r>{$file['date'][0]} </td>".
+ "<td class=r>{$file['date'][1]} </td>".
+ "<td class=rb>{$file['date'][2]} </td>".
+ "<td class=c>{$file['maintainer']}</td>".
+ "<td class=c>".trim($file['status'])."</td></tr>\n";
+ $line_number++;
+
+ }
+
+ // echo the last dir and $lines
+ echo "$prev_diplay_dir ($line_number)</th></tr>";
+ echo $lines;
+
+ echo "</table>\n<p>&nbsp;</p>\n$navbar<p>&nbsp;</p>\n";
+
+}
+
+
+// =========================================================================
+// Translators table goes here
+// =========================================================================
+
+// If person list available (valid translation.xml file in lang), print out
+// the person list, with respect to the maintainer parameter specified
+if (!empty($translation["persons"])) {
+
+print <<<END_OF_MULTILINE
+<a name="translators"></a>
+<table width="820" border="0" cellpadding="4" cellspacing="1" align="center">
+<tr class=blue>
+<th rowspan=2>Translator's name</th>
+<th rowspan=2>Contact email</th>
+<th colspan=7>Files maintained</th>
+</tr>
+<tr>
+<th class="{$CSS[REV_CREDIT]}" style="color:#000000">cre-<br>dits</th>
+<th class="{$CSS[REV_UPTODATE]}" style="color:#000000">upto-<br>date</th>
+<th class="{$CSS[REV_OLD]}" style="color:#000000">old</th>
+<th class="{$CSS[REV_CRITICAL]}" style="color:#000000">cri-<br>tical</th>
+<th class="{$CSS[REV_NOREV]}" style="color:#000000">no<br>rev</th>
+<th class="{$CSS[REV_WIP]}" style="color:#000000">wip</th>
+<th class="blue">sum</th>
+</tr>
+END_OF_MULTILINE;
+
+ // ' Please leave this comment here
+
+ // We will collect the maintainers by nick here
+ $maint_by_nick = array();
+
+ // Print out a line for each maintainer (with respect to
+ // maintainer setting provided in command line)
+ foreach($translation["persons"] as $num => $person) {
+
+ // Do not print out this person, if a
+ // specific maintainer info is asked for
+ if (!empty($MAINT) && $person["name"] != $MAINT) {
+ continue;
+ }
+
+ // Put maintaner number into associative array
+ // [Used in further tables for referencing]
+ $maint_by_nick[$person["name"]] = $num;
+
+ // Decide on the SVN text and the color of the line
+ if (isset($person["vcs"]) && $person["vcs"] === "yes") {
+ $svnu = "x";
+ $col = "old";
+ } else {
+ $svnu = "&nbsp;";
+ $col = "wip";
+ }
+
+ // Try to do some antispam actions
+ $person["email"] = str_replace(
+ "@",
+ "<small>:at:</small>",
+ $person["email"]
+ );
+
+ // Get file info for this person
+ if (isset($files_by_maint[$person["name"]])) {
+ $pi = $files_by_maint[$person["name"]];
+ } else {
+ $pi = array();
+ }
+
+ echo "<tr class=$col>" .
+ "<td><a name=\"maint$num\">$person[name]</a></td>" .
+ "<td>$person[email]</td>" .
+ "<td class=c>" . $pi[REV_CREDIT] . "</td>" .
+ "<td class=c>" . $pi[REV_UPTODATE] . "</td>" .
+ "<td class=c>" . $pi[REV_OLD] . "</td>" .
+ "<td class=c>" . $pi[REV_CRITICAL] . "</td>" .
+ "<td class=c>" . $pi[REV_NOREV] . "</td>" .
+ "<td class=c>" . $pi[REV_WIP] . "</td>" .
+ "<th class=blue>" . array_sum($pi) . "</th>" .
+ "</tr>\n";
+ }
+
+ echo "</table>\n<p>&nbsp;</p>\n";
+}
+
+// =========================================================================
+// Work in progress table goes here
+// =========================================================================
+
+// If work-in-progress list is available (valid translation.xml file in lang)
+if (count($translation["files"]) != 0) {
+
+ // Print out files table header
+ echo "<a name=\"wip\"></a>\n" .
+ "<table width=\"820\" border=\"0\" cellpadding=\"4\" cellspacing=\"1\" align=\"center\">\n" .
+ "<tr class=blue>".
+ "<th>Work in progress files</th>".
+ "<th>Translator</th>".
+ "<th>Type</th>";
+
+ // Print out date and revision columns if needed
+ if ($using_date) {
+ echo '<th>Date</th>';
+ }
+ if ($using_rev) {
+ echo '<th>CO-Revision</th>' .
+ '<th>EN-Revision</th>';
+ }
+ echo "</tr>\n";
+
+ // Go through files, and print out lines for them
+ foreach($translation["files"] as $num => $finfo) {
+
+ // If we have a valid maintainer, link to the summary
+ if (isset($maint_by_nick[$finfo["person"]])) {
+ $finfo["person"] = '<a href="#maint' . $maint_by_nick[$finfo["person"]] .
+ '">' . $finfo["person"] . '</a>';
+ }
+
+ // Print out the line with the first columns
+ echo "<tr class=wip><td>$finfo[name]</td>" .
+ "<td>$finfo[person]</td><td>$finfo[type]</td>";
+
+ // If we need the date column, print it out
+ if ($using_date) {
+ echo "<td>$finfo[date]</td>";
+ }
+
+ // If we need the revision column, print it out
+ if ($using_rev) {
+ echo "<td>$finfo[revision]</td><td>" .
+ $missing_files[$finfo["name"]][1] .
+ "</td>";
+ }
+
+ // End the line
+ echo "</tr>\n";
+
+ // Collect files in WIP list
+ $wip_files[$finfo["name"]] = TRUE;
+ }
+
+ echo "</table>\n<p>&nbsp;</p>\n$navbar<p>&nbsp;</p>\n";
+
+}
+
+// Files translated, but without a revision comment
+$count = count($missing_tags);
+
+if ($count > 0) {
+ echo "<a name=\"misstags\"></a>" .
+ "<table width=\"400\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" align=\"center\">\n".
+ "<tr class=blue><th rowspan=2>Files without Revision-comment ($count files):</th>".
+ "<th colspan=3>Sizes in kB</th></tr>\n".
+ "<tr class=blue><th>en_US</th><th>$LANG</th><th>diff</th></tr>\n";
+
+ foreach($missing_tags as $val) {
+
+ // Shorten the filename (we have directory headers)
+ $short_file = basename($val[0]);
+
+ // Guess the new directory from the full name of the file
+ $new_dir = dirname($val[0]);
+
+ // If this is a new directory, put out dir headline
+ if ($new_dir != $prev_dir) {
+
+ // Print out directory header
+ echo "<tr class=blue><th colspan=4>$new_dir</th></tr>\n";
+
+ // Store the new actual directory
+ $prev_dir = $new_dir;
+ }
+ echo "<tr class=wip><td>$short_file</td><td class=r>$val[1]</td>".
+ "<td class=r>$val[2]</td><td class=r>$val[3]</td></tr>\n";
+ }
+
+ echo "</table>\n<p>&nbsp;</p>\n$navbar<p>&nbsp;</p>\n";
+}
+
+// Merge all work in progress files collected
+$wip_files = array_merge(
+ $translation["files"], // Files for this translator
+ $translation["allfiles"] // Files for all the translators
+);
+
+// Delete wip entires from available files list
+foreach ($wip_files as $file) {
+ if (isset($missing_files[$file['name']])) {
+ unset($missing_files[$file['name']]);
+ }
+}
+
+// Files not translated and not "wip"
+$count = count($missing_files);
+if ($count > 0) {
+
+ echo "<a name=\"missfiles\"></a>" .
+ "<table width=\"400\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" align=\"center\">\n" .
+ "<tr class=blue><th><a name=\"avail\" class=\"ref\">" .
+ " Available for translation</a> ($count files):</th><th>kB</th></tr>\n";
+
+ foreach($missing_files as $file => $info) {
+ // Shorten the filename (we have directory headers)
+ $short_file = basename($file);
+
+ // Guess the new directory from the full name of the file
+ $new_dir = dirname($file);
+
+ // If this is a new directory, put out dir headline
+ if ($new_dir != $prev_dir) {
+
+ // Print out directory header if not "."
+ echo "<tr class=blue><th colspan=2>$new_dir</th></tr>\n";
+
+ // Store the new actual directory
+ $prev_dir = $new_dir;
+ }
+
+ echo "<tr class=wip><td><a href=\"http://cgit.scilab.org/scilab/tree/scilab/$file\">$short_file</a></td>" .
+ "<td class=r>$info[0]</td></tr>\n";
+ }
+ echo "</table>\n<p>&nbsp;</p>\n$navbar<p>&nbsp;</p>\n";
+
+}
+
+// Files not in EN tree
+$count = count($old_files);
+
+if ($count > 0) {
+
+ print "<a name=\"oldfiles\"></a>" .
+ "<table width=\"400\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" align=\"center\">\n" .
+ "<tr class=blue><th><a name=\"notEn\" class=\"ref\">" .
+ " Not in EN Tree</a> ($count files):</th><th>kB</th></tr>\n";
+
+ foreach($old_files as $file => $info) {
+
+ // Shorten the filename (we have directory headers)
+ $short_file = basename($file);
+
+ // Guess the new directory from the full name of the file
+ $new_dir = dirname($file);
+
+ // If this is a new directory, put out dir headline
+ if ($new_dir != $prev_dir) {
+
+ // Print out directory header if not "."
+ echo "<tr class=blue><th colspan=2>$new_dir</th></tr>\n";
+
+ // Store the new actual directory
+ $prev_dir = $new_dir;
+ }
+
+ echo "<tr class=wip><td>$short_file</td>" .
+ "<td class=r>$info[0]</td></tr>\n";
+ }
+ echo "</table>\n<p>&nbsp;</p>\n$navbar<p>&nbsp;</p>\n";
+
+}
+
+
+// All OK, end the file
+echo "</body>\n</html>\n";
+
+?>
diff --git a/tools/localization/translation-fr_FR.xml b/tools/localization/translation-fr_FR.xml
new file mode 100755
index 000000000..6413027fe
--- /dev/null
+++ b/tools/localization/translation-fr_FR.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Reviewed: yes -->
+<!DOCTYPE translation SYSTEM "../dtds/translation.dtd">
+<translation xmlns="http://docbook.org/ns/docbook">
+ <intro>Système de traduction Scilab.<br/>
+ Ceci est le fichier généré par tools/localization/revcheck.php.
+ Il vous permet de voir rapidement quels sont les fichiers qui
+ doivent être mis à jour ainsi que la personne qui s'en occupe.
+ </intro>
+ <translators>
+ <person name="Sylvestre Ledru" email="sylvestre.ledru@scilab.org" vcs="yes" editor="yes"/>
+ <person name="Calixte Denizet" email="calixte@contrib.scilab.org" vcs="yes"/>
+ <person name="Vincent Liard" email="n/a" vcs="yes"/>
+ <person name="Yann Collette" email="n/a" vcs="yes"/>
+ <person name="Allan Cornet" email="allan.cornet@scilab.org" vcs="yes"/>
+ <person name="Pierre Marechal" email="pierre.marechal@scilab.org" vcs="yes"/>
+ <person name="Bernard Dujardin" email="bernard.dujardin@contrib.scilab.org" vcs="yes"/>
+ <person name="Serge Steer" email="serge.steer@scilab.org" vcs="yes"/>
+ <person name="Vincent Couvert" email="vincent.couvert@scilab.org" vcs="yes"/>
+ <person name="Michael Baudin" email="michael.baudin@scilab.org" vcs="yes"/>
+ <person name="Pierre Lando" email="michael.baudin@scilab.org" vcs="yes"/>
+ <person name="Clément David" email="clement.david@scilab.org" vcs="yes"/>
+ </translators>
+ <work-in-progress>
+ </work-in-progress>
+</translation>
diff --git a/tools/localization/translation-ja_JP.xml b/tools/localization/translation-ja_JP.xml
new file mode 100755
index 000000000..9dda6f084
--- /dev/null
+++ b/tools/localization/translation-ja_JP.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Reviewed: yes -->
+<!DOCTYPE translation SYSTEM "../dtds/translation.dtd">
+<translation xmlns="http://docbook.org/ns/docbook">
+ <intro>Système de traduction Scilab.<br/>
+ Ceci est le fichier généré par tools/localization/revcheck.php.
+ Il vous permet de voir rapidement quels sont les fichiers qui
+ doivent être mis à jour ainsi que la personne qui s'en occupe.
+ </intro>
+ <translators>
+ <person name="Sylvestre Ledru" email="sylvestre.ledru@scilab.org" vcs="yes" editor="yes"/>
+ <person name="Rui Hirokawa" email="rui.hirokawa@gmail.com" vcs="yes"/>
+ <person name="Allan Cornet" email="allan.cornet@scilab.org" vcs="yes"/>
+ <person name="Calixte Denizet" email="calixte@contrib.scilab.org" vcs="yes"/>
+ <person name="Michael Baudin" email="michael.baudin@scilab.org" vcs="yes"/>
+ <person name="Samuel Gougeon" email="n/a" vcs="yes"/>
+ </translators>
+ <work-in-progress>
+ </work-in-progress>
+</translation>
diff --git a/tools/localization/updateLocalizationModule.sh b/tools/localization/updateLocalizationModule.sh
new file mode 100755
index 000000000..37af7bc8a
--- /dev/null
+++ b/tools/localization/updateLocalizationModule.sh
@@ -0,0 +1,239 @@
+#!/bin/bash
+# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+# Copyright (C) INRIA - 2007-2008 - Sylvestre Ledru
+# Copyright (C) DIGITEO - 2009-2011 - Sylvestre Ledru
+# Copyright (C) DIGITEO - 2011-2011 - Bruno JOFRET
+# 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.1-en.txt
+#
+# This script goes into a module and updates the localization file by checking
+# the _( and gettext( calls in the code
+
+# TODO :
+# * Write Small documentation
+#
+
+if test $# -ne 1; then
+ echo "This script goes into a module and updates the localization file "
+ echo "by checking the _(xxx) and gettext(xxx) calls in the code"
+ echo "It creates the locales directory for C, C++ and Java and"
+ echo "locales_macros for Scilab code"
+ echo
+ echo "Syntax : $0 <module>"
+ echo "If <module> is equal to 'process_all', it will parse all Scilab module"
+ echo "per module"
+ exit 42
+fi
+
+if test -z "$SCI"; then
+ echo "Please define the variable SCI"
+ exit 42
+fi
+
+MODULES=$1
+
+if test "$MODULES" = "process_all"; then
+ echo ".. Process all the modules one by one"
+ PROCESS_ALL=1
+else
+ PROCESS_ALL=0
+fi
+
+
+XGETTEXT=/usr/bin/xgettext
+FROM_CODE=ISO-8859-1
+EXTENSIONS=( 'c' 'h' 'cpp' 'hxx' 'java' )
+EXTENSIONS_MACROS=( sci sce start quit )
+TARGETDIR=locales/
+TARGETDIR_MACROS=locales_macros/
+HEADER_TEMPLATE=$SCI/modules/localization/data/header.pot
+GUI_FILES="etc/*.x*l"
+PREFERENCE_FILES="src/xslt/*.xsl"
+FAKE_C_FILE=scilab_fake_localization_file.c
+TIMEZONE="+0100"
+# Gettext arg
+XGETTEXT_OPTIONS="--add-location --strict --keyword=_ --from-code $FROM_CODE --omit-header --no-wrap --sort-by-file"
+
+process_XML_files() {
+# First expression => remove line which does NOT contain label
+# Second expression => extract the content of the label and switch it to a gettext fake instruction
+# Third expression => remove empty lines
+# Please note that it will only extract string from the label tag
+ if test -n "$(ls $GUI_FILES 2>/dev/null)"; then
+ COMMON_SED='s/&amp;/\&/g'
+ sed -e '/label/!s/.*//' -e 's/.*label="\([^"]*\)".*/gettext("\1")/' -e '/^$/d' -e $COMMON_SED $GUI_FILES > $FAKE_C_FILE
+ sed -e '/tooltiptext/!s/.*//' -e 's/.*tooltiptext="\([^"]*\)".*/gettext("\1")/' -e '/^$/d' -e $COMMON_SED $GUI_FILES >> $FAKE_C_FILE
+ sed -e 's/.*_(\([^"]*\)).*/gettext("\1")/' $GUI_FILES >> $FAKE_C_FILE
+ fi
+ if test -n "$(ls $PREFERENCE_FILES 2>/dev/null)"; then
+ sed -e 's/.*_(\([^"]*\)).*/gettext("\1")/' $PREFERENCE_FILES >> $FAKE_C_FILE
+ fi
+}
+
+
+function generate_find_command {
+ # Setting the shell's Internal Field Separator to null
+ OLD_IFS=$IFS
+ IFS=''
+ # Create a string containing "colors[*]"
+ local array_string="$1[*]"
+ # assign loc_array value to ${colors[*]} using indirect variable reference
+ local EXT=(${!array_string})
+#
+# Retrieve all the sources files
+ FILESCMD='find . -type f '
+####### GENERATES THE FIND COMMAND
+ i=0
+ NB_ELEMENT=${#EXT[@]}
+
+ while [ "$i" -lt "$NB_ELEMENT" ]; do
+ ext=${EXT[$i]}
+ FILESCMD="$FILESCMD -name '*.$ext'"
+ if test "$NB_ELEMENT" -ne `expr $i + 1`; then # because we don't want a trailing -o
+ FILESCMD="$FILESCMD -o "
+ fi
+ i=$((i + 1))
+ done
+ # Resetting IFS to default
+ IFS=$OLD_IFS
+}
+
+
+# Process all the modules ... then, build the list
+if test $PROCESS_ALL -eq 1; then
+ cd $SCI/modules/
+ MODULES=`find . -maxdepth 1 -type d ! -name ".*" ! -name 'javasci'`
+fi
+
+
+function process_module {
+
+ IS_MACROS=0
+ if test "$1" == "macros"; then
+ IS_MACROS=1
+ fi
+
+# Extract label from xml files
+ process_XML_files
+ if test $IS_MACROS -eq 1; then
+ generate_find_command EXTENSIONS_MACROS
+ local TARGETDIR=$TARGETDIR_MACROS
+ else
+ generate_find_command EXTENSIONS
+ fi
+ if test ! -d $TARGETDIR; then mkdir $TARGETDIR; fi
+
+ FILES=`eval $FILESCMD|tr "\n" " "`
+
+ if test "$MODULE" = "core" -o "$MODULE" = "./core"; then
+ # We want some strings from the ROOTDIR when it is the core module
+ FILES="$FILES `ls $SCI/etc/scilab.*`"
+ fi
+
+ # Also extract string straight from the XML because we have some gettext calls in it
+ if test -n "$(ls $GUI_FILES 2>/dev/null)" -a $IS_MACROS -ne 1; then
+ FILES="$FILES `ls $GUI_FILES`"
+ fi
+
+ FILES=$(echo $FILES|sort)
+
+ MODULE_NAME=`echo $MODULE|sed -e 's|./||'` # avoid to have ./module_name
+
+ if test $IS_MACROS -eq 1; then
+ echo "..... Parsing all Scilab macros in $PATHTOPROCESS"
+ else
+ echo "..... Parsing all sources in $PATHTOPROCESS"
+ fi
+# Parse all the sources and get the string which should be localized
+
+
+ if test $IS_MACROS -eq 1; then
+ MODULE_NAME=$MODULE_NAME-macros
+ fi
+ LOCALIZATION_FILE_US=$TARGETDIR/$MODULE_NAME.pot
+
+ if test -f $LOCALIZATION_FILE_US; then
+ # Localization file already existing. Retrieve POT-Creation-Date
+ CreationDate=`grep POT-Creation-Date: $LOCALIZATION_FILE_US|sed -e 's|\"POT-Creation-Date: \(.*\)\\\n\"|\1|'`
+ fi
+
+ echo "........ Generate the English localization file by parsing the code"
+ if test $IS_MACROS -eq 1; then
+ # It is Scilab code... xgettext does not how to process it
+ XGETTEXT_OPTIONS="$XGETTEXT_OPTIONS --language=C"
+ fi
+
+ $XGETTEXT $XGETTEXT_OPTIONS -p $TARGETDIR/ -o $MODULE_NAME.pot.tmp $FILES > /dev/null
+ if test ! -f $MODULE_NAME.pot.tmp -a $IS_MACROS -eq 1; then
+ # Empty file => no string found
+ # We are modifing on the fly Scilab localization files
+ #
+ # We need C strings format to be used as gettext key
+ # "" -> \"
+ # '' -> '
+ # '" -> \"
+ # "' -> ' -e "s/\"'/'/g"
+ sed -i -e "s/\"\"/\\\"/g" -e "s/''/'/g" -e "s/'\"/\\\"/g" $TARGETDIR/$MODULE_NAME.pot.tmp
+ # We introduced invalid tag [msgstr "] and [msgid "]
+ # restore them [msgstr ""] and [msgid ""]
+ sed -i -e "s/msgstr \"$/msgstr \"\"/" -e "s/msgid \"$/msgid \"\"/" $TARGETDIR/$MODULE_NAME.pot.tmp
+ fi
+
+ if test -z "$CreationDate"; then
+ # File not existing before ... Set the current date a POT-Creation-Date
+ sed -e "s/MODULE/$MODULE_NAME/" -e "s/CREATION-DATE/`date +'%Y-%m-%d %H:%M'`$TIMEZONE/" -e "s/REVISION-DATE/`date +'%Y-%m-%d %H:%M'`$TIMEZONE/" $HEADER_TEMPLATE > $LOCALIZATION_FILE_US
+ else
+ sed -e "s/MODULE/$MODULE_NAME/" -e "s/CREATION-DATE/$CreationDate/" -e "s/REVISION-DATE/`date +'%Y-%m-%d %H:%M'`$TIMEZONE/" $HEADER_TEMPLATE > $LOCALIZATION_FILE_US
+ fi
+
+ msguniq -u $LOCALIZATION_FILE_US.tmp >> $LOCALIZATION_FILE_US 2> /dev/null
+
+ rm $LOCALIZATION_FILE_US.tmp 2> /dev/null
+
+ MSGOUTPUT=$(msgcat $LOCALIZATION_FILE_US)
+ if test $? -ne 0; then
+ echo "Badly formated localization files"
+ exit 32
+ fi
+ if test -z "$(msgcat $LOCALIZATION_FILE_US)"; then
+ # empty template. Kill it!
+ rm $LOCALIZATION_FILE_US
+ fi
+
+ if test $IS_MACROS -eq 1; then
+ LOCALIZATION_FILE_NATIVE=$(echo $LOCALIZATION_FILE_US|sed -e "s|-macros||g" -e "s|_macros||g")
+ if test ! -f $LOCALIZATION_FILE_NATIVE; then
+ # no native code. Copy the macro one
+ cp $LOCALIZATION_FILE_US $LOCALIZATION_FILE_NATIVE
+ else
+ # merge locale macros => native code
+ msgcat --use-first -o $LOCALIZATION_FILE_NATIVE.tmp $LOCALIZATION_FILE_NATIVE $LOCALIZATION_FILE_US
+ mv $LOCALIZATION_FILE_NATIVE.tmp $LOCALIZATION_FILE_NATIVE
+ fi
+ rm -rf $TARGETDIR_MACROS
+ fi
+
+ # Remove fake file used to extract string from XML
+ rm $FAKE_C_FILE 2> /dev/null
+
+
+}
+
+for MODULE in $MODULES; do
+
+ PATHTOPROCESS=$SCI/modules/$MODULE/
+ if test ! -d $PATHTOPROCESS; then
+ echo "... Cannot find module $PATHTOPROCESS"
+ exit
+ fi
+ echo "... Processing module $MODULE"
+
+ cd $PATHTOPROCESS
+ process_module "src"
+ process_module "macros"
+
+ cd $SCI/
+done # Browse modules
diff --git a/tools/profiling/valgrind.supp b/tools/profiling/valgrind.supp
new file mode 100755
index 000000000..514df7913
--- /dev/null
+++ b/tools/profiling/valgrind.supp
@@ -0,0 +1,71 @@
+{
+ scilab-console/tgetent
+ Memcheck:Leak
+ ...
+ fun:tgetent
+}
+{
+ scilab-console/tgetnum
+ Memcheck:Leak
+ ...
+ fun:tgetnum
+}
+{
+ dl_init/static_initialization_and_destruction
+ Memcheck:Leak
+ fun:_Znwm
+ ...
+ fun:_dl_init
+}
+{
+ PThread auto cleanup at exit
+ Memcheck:Leak
+ fun:calloc
+ fun:_dl_allocate_tls
+ fun:pthread_create*
+}
+{
+ Last error messages
+ Memcheck:Leak
+ fun:malloc
+ fun:strdup
+ fun:addErrorMessage
+}
+{
+ Realloc the stack on freemem64
+ Memcheck:Leak
+ fun:realloc
+ fun:freemem64
+ fun:TerminateCorePart2
+ fun:ExitScilab
+ fun:realmain
+ fun:main
+ fun:__libc_start_main
+ obj:/home/davidcl/work/branches/master-review/scilab/.libs/lt-scilab-cli-bin
+ obj:*
+ obj:*
+ obj:*
+ obj:*
+}
+{
+ Last getCmdLine free issue
+ Memcheck:Leak
+ fun:malloc
+ fun:getCmdLine
+ fun:getCommandLine
+ fun:watchGetCommandLine
+ fun:start_thread
+ fun:clone
+}
+{
+ Fixeable but crash-ed using javasci
+ Memcheck:Leak
+ fun:malloc
+ fun:wide_string_to_UTF8
+ fun:getCmdLine
+ fun:getCommandLine
+ fun:watchGetCommandLine
+ fun:start_thread
+ fun:clone
+}
+
diff --git a/tools/tools.iss b/tools/tools.iss
new file mode 100755
index 000000000..9b80fdc11
--- /dev/null
+++ b/tools/tools.iss
@@ -0,0 +1,15 @@
+;##############################################################################################################
+; Script d'installation Inno Setup (5.2.1) pour scilab
+; Allan CORNET
+; Version TRUNK
+; Copyright INRIA 2007
+;##############################################################################################################
+
+; Repertoire tools
+Source: tools\Perl\Readme.txt; DestDir: {app}\tools\Perl; Components: {#COMPN_SCILAB}
+Source: tools\curl\*.*; DestDir: {app}\tools\curl; Flags: recursesubdirs; Components: {#COMPN_SCILAB}
+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}
+;