From 5ccae96920aef662c2cf85ce4e38a1b4c382abff Mon Sep 17 00:00:00 2001 From: donovaly Date: Tue, 2 Apr 2019 01:20:04 +0200 Subject: [PATCH] new Windows installer for FC --- src/WindowsInstaller/BuildINSISInstaller.bat | 13 - src/WindowsInstaller/CMakeLists.txt | 1 - src/WindowsInstaller/FCweborg.pfx | Bin 0 -> 4326 bytes src/WindowsInstaller/FreeCAD-installer.nsi | 75 +++ .../FreeCAD_WindowsInstaller.nsi | 201 ------ .../FreeCAD_x64_WindowsInstaller.nsi | 210 ------ src/WindowsInstaller/LICENSE | 504 ++++++++++++++ src/WindowsInstaller/License.rtf | 630 ++++++++---------- src/WindowsInstaller/README.md | 29 + src/WindowsInstaller/Settings.nsh | 46 ++ src/WindowsInstaller/Signing.bat | 1 + src/WindowsInstaller/Version.nsi.in | 4 - src/WindowsInstaller/graphics/header.bmp | Bin 0 -> 25818 bytes src/WindowsInstaller/graphics/orange.bmp | Bin 0 -> 154542 bytes src/WindowsInstaller/icons/FreeCAD-clean.ico | Bin 0 -> 67646 bytes .../icons/FreeCAD-icon-57px-height.bmp | Bin 0 -> 9858 bytes src/WindowsInstaller/icons/FreeCAD-icon.bmp | Bin 0 -> 49206 bytes src/WindowsInstaller/icons/FreeCAD-icon.xcf | Bin 0 -> 27415 bytes src/WindowsInstaller/icons/FreeCAD.ico | Bin 0 -> 92478 bytes src/WindowsInstaller/include/declarations.nsh | 75 +++ src/WindowsInstaller/include/detection.nsh | 46 ++ src/WindowsInstaller/include/gui.nsh | 94 +++ src/WindowsInstaller/include/init.nsh | 208 ++++++ src/WindowsInstaller/include/utils.nsh | 268 ++++++++ .../information/ISO_3166.html | 260 ++++++++ .../information/InstallerStructure.odg | Bin 0 -> 16850 bytes .../information/InstallerStructure.pdf | Bin 0 -> 35017 bytes .../information/WinLangCode.htm | 580 ++++++++++++++++ src/WindowsInstaller/information/iso639.htm | 554 +++++++++++++++ .../lang/TranslatedLanguages.nsh | 33 + src/WindowsInstaller/lang/arabic.nsh | 70 ++ src/WindowsInstaller/lang/basque.nsh | 70 ++ src/WindowsInstaller/lang/catalan.nsh | 70 ++ src/WindowsInstaller/lang/czech.nsh | 70 ++ src/WindowsInstaller/lang/danish.nsh | 70 ++ src/WindowsInstaller/lang/dutch.nsh | 70 ++ src/WindowsInstaller/lang/english.nsh | 70 ++ src/WindowsInstaller/lang/french.nsh | 70 ++ src/WindowsInstaller/lang/galician.nsh | 70 ++ src/WindowsInstaller/lang/german.nsh | 71 ++ src/WindowsInstaller/lang/hungarian.nsh | 70 ++ src/WindowsInstaller/lang/indonesian.nsh | 70 ++ src/WindowsInstaller/lang/italian.nsh | 70 ++ src/WindowsInstaller/lang/japanese.nsh | 70 ++ src/WindowsInstaller/lang/norwegian.nsh | 70 ++ src/WindowsInstaller/lang/polish.nsh | 70 ++ src/WindowsInstaller/lang/portuguese.nsh | 70 ++ src/WindowsInstaller/lang/portugueseBR.nsh | 70 ++ src/WindowsInstaller/lang/romanian.nsh | 70 ++ src/WindowsInstaller/lang/russian.nsh | 70 ++ src/WindowsInstaller/lang/slovak.nsh | 70 ++ src/WindowsInstaller/lang/spanish.nsh | 70 ++ src/WindowsInstaller/lang/swedish.nsh | 70 ++ src/WindowsInstaller/lang/turkish.nsh | 70 ++ src/WindowsInstaller/lang/ukrainian.nsh | 70 ++ src/WindowsInstaller/setup/configure.nsh | 103 +++ src/WindowsInstaller/setup/install.nsh | 50 ++ src/WindowsInstaller/setup/uninstall.nsh | 82 +++ 58 files changed, 5034 insertions(+), 784 deletions(-) delete mode 100644 src/WindowsInstaller/BuildINSISInstaller.bat delete mode 100644 src/WindowsInstaller/CMakeLists.txt create mode 100644 src/WindowsInstaller/FCweborg.pfx create mode 100644 src/WindowsInstaller/FreeCAD-installer.nsi delete mode 100644 src/WindowsInstaller/FreeCAD_WindowsInstaller.nsi delete mode 100644 src/WindowsInstaller/FreeCAD_x64_WindowsInstaller.nsi create mode 100644 src/WindowsInstaller/LICENSE create mode 100644 src/WindowsInstaller/README.md create mode 100644 src/WindowsInstaller/Settings.nsh create mode 100644 src/WindowsInstaller/Signing.bat delete mode 100644 src/WindowsInstaller/Version.nsi.in create mode 100644 src/WindowsInstaller/graphics/header.bmp create mode 100644 src/WindowsInstaller/graphics/orange.bmp create mode 100644 src/WindowsInstaller/icons/FreeCAD-clean.ico create mode 100644 src/WindowsInstaller/icons/FreeCAD-icon-57px-height.bmp create mode 100644 src/WindowsInstaller/icons/FreeCAD-icon.bmp create mode 100644 src/WindowsInstaller/icons/FreeCAD-icon.xcf create mode 100644 src/WindowsInstaller/icons/FreeCAD.ico create mode 100644 src/WindowsInstaller/include/declarations.nsh create mode 100644 src/WindowsInstaller/include/detection.nsh create mode 100644 src/WindowsInstaller/include/gui.nsh create mode 100644 src/WindowsInstaller/include/init.nsh create mode 100644 src/WindowsInstaller/include/utils.nsh create mode 100644 src/WindowsInstaller/information/ISO_3166.html create mode 100644 src/WindowsInstaller/information/InstallerStructure.odg create mode 100644 src/WindowsInstaller/information/InstallerStructure.pdf create mode 100644 src/WindowsInstaller/information/WinLangCode.htm create mode 100644 src/WindowsInstaller/information/iso639.htm create mode 100644 src/WindowsInstaller/lang/TranslatedLanguages.nsh create mode 100644 src/WindowsInstaller/lang/arabic.nsh create mode 100644 src/WindowsInstaller/lang/basque.nsh create mode 100644 src/WindowsInstaller/lang/catalan.nsh create mode 100644 src/WindowsInstaller/lang/czech.nsh create mode 100644 src/WindowsInstaller/lang/danish.nsh create mode 100644 src/WindowsInstaller/lang/dutch.nsh create mode 100644 src/WindowsInstaller/lang/english.nsh create mode 100644 src/WindowsInstaller/lang/french.nsh create mode 100644 src/WindowsInstaller/lang/galician.nsh create mode 100644 src/WindowsInstaller/lang/german.nsh create mode 100644 src/WindowsInstaller/lang/hungarian.nsh create mode 100644 src/WindowsInstaller/lang/indonesian.nsh create mode 100644 src/WindowsInstaller/lang/italian.nsh create mode 100644 src/WindowsInstaller/lang/japanese.nsh create mode 100644 src/WindowsInstaller/lang/norwegian.nsh create mode 100644 src/WindowsInstaller/lang/polish.nsh create mode 100644 src/WindowsInstaller/lang/portuguese.nsh create mode 100644 src/WindowsInstaller/lang/portugueseBR.nsh create mode 100644 src/WindowsInstaller/lang/romanian.nsh create mode 100644 src/WindowsInstaller/lang/russian.nsh create mode 100644 src/WindowsInstaller/lang/slovak.nsh create mode 100644 src/WindowsInstaller/lang/spanish.nsh create mode 100644 src/WindowsInstaller/lang/swedish.nsh create mode 100644 src/WindowsInstaller/lang/turkish.nsh create mode 100644 src/WindowsInstaller/lang/ukrainian.nsh create mode 100644 src/WindowsInstaller/setup/configure.nsh create mode 100644 src/WindowsInstaller/setup/install.nsh create mode 100644 src/WindowsInstaller/setup/uninstall.nsh diff --git a/src/WindowsInstaller/BuildINSISInstaller.bat b/src/WindowsInstaller/BuildINSISInstaller.bat deleted file mode 100644 index b1f6fe7f6e..0000000000 --- a/src/WindowsInstaller/BuildINSISInstaller.bat +++ /dev/null @@ -1,13 +0,0 @@ - -if NOT DEFINED NSIS set NSIS=C:\Program Files (x86)\NSIS - -rem in order to build an x64 installer set PLATFORM to x64 -if not defined PLATFORM set PLATFORM=x86 - -C:\Python26\python.exe ../Tools/WinVersion.py --dir=../.. --src=Version.nsi.in --out=Version.nsi -C:\Python26\python.exe ../Tools/WinVersion.py --dir=../.. --src=../Build/Version.h.in --out=../Build/Version.h - -SET /P M=Reebuild and press enter - -"%NSIS%\makensis.exe" FreeCAD_WindowsInstaller.nsi - diff --git a/src/WindowsInstaller/CMakeLists.txt b/src/WindowsInstaller/CMakeLists.txt deleted file mode 100644 index ee819faec5..0000000000 --- a/src/WindowsInstaller/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -# Building Installer if(FREECAD_MAINTAINERS_BUILD AND WIN32) find_package(Wix REQUIRED) endif(FREECAD_MAINTAINERS_BUILD AND WIN32) add_custom_target(i18n-win32-installer DEPENDS ${FreeCAD_NSH}) add_custom_command(TARGET win32-installer PRE_BUILD COMMAND ${WIX_CANDLE_EXECUTABLE} -out ${CMAKE_CURRENT_BINARY_DIR}/FreeCAD.wxobj ${CMAKE_CURRENT_SOURCE_DIR}/FreeCAD.wxs COMMENT "Building FreeCAD.wxobj" ) add_custom_target(win32-installer COMMAND ${WIX_LIGHT_EXECUTABLE} -out ${CMAKE_CURRENT_BINARY_DIR}/FreeCAD-${VERSION}.msi -ext ${WIX_BINARY_DIR}/WixUIExtension.dll ${CMAKE_CURRENT_BINARY_DIR}/FreeCAD.wixobj SOURCES FreeCAD.wxs DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/FreeCAD.wxs COMMENT "Building FreeCAD-${VERSION}.msi" ) \ No newline at end of file diff --git a/src/WindowsInstaller/FCweborg.pfx b/src/WindowsInstaller/FCweborg.pfx new file mode 100644 index 0000000000000000000000000000000000000000..ac3957acdc2206a41f092c5a3877ee76e6f55d7e GIT binary patch literal 4326 zcmY*bbyO7I)}0w(fFUKNI|pQ7Xp{z#?oMfBNC_!nKtPlbq@__Ax=T8wg`rz|011^2 z<<0M{?|W~(b=SRTpMB0g=fAr)3`xEL0^-1sth>IkDgQa6& zNJ#Aelprr~kq|#D?Tx(%Fwy_1h#^2wK9VpDh9nGvF@hogPh*FZ;u3^eFir7A^~t*lJ`OHF(%+!n}@bf0V6!Ad&CXA(6o>`sm7w%;T3|z*o1mt}=BdKD3}u=LKvK z4${AoIm_lKG++PKWBve7|_Cz1_D+ul%ypN_`p?({=O&qe_h@xU@;_ z-BrN@AW;#ItBZ5E))yIWhYg5^)HddehLlVR_Ogqqiy&xlL|wCNak{R%#aG3;Ip&dL2J)fK}VXO3FlXY>-^e%&zn(pKkFzM$9s**`?o zq{aD^iYr@5S^3^KefgCN2W$ve?V7KT^zCM??cFA`mx&XE)#B=8HG#vaU63D+*7maNbQFHY_HkScdQTjh425|f6tiq{g+&mUe-f=Dz#rSk^ALpVV^G3t$5V{Ih0i-`wqUBu>Jex${foSWCu`073U?s zz$`(_**9&Gs5I!~w-7=f<&MCSsZEkm`e^y)mA<56!f0j>5N6lR>n$xfII)K5;(qdQ<4LdNR~!7wIF8Y4LJ5&{=(+rG zwxBOyJ!XxIegFHaSb3HE@kA8{HC(TjI+10I#GRXeaE~fCfs|%uVT2x%n5mw2CSNls ztTLldPBO8xR$`_h`8?}S#A#3Z99g?*?dKeu2QQ-RM!CV&-0p1!b{Ek}zTka0|tHbo3IiIw>&-0cmj zt>VlSR=x_*w`AF8R)Ho10+)*^*MgBXYD~f0d8iy0Hn2^vNqBW$b3PvF zIv^DFy=f+BN4Y@&keWPt-smv=_%#<@=Q>kAYC=5h_^yt7%ulxaPokT>6jN*K4o!EHWR?1kI2PGSy%+x|Q!gNokxD>A8>W1-_K=n7E^_ys&epO4lPajcpngLId8Fv7Y9?GX5;0xyt|Y9+Nkbp>la2*zJAU)4SMyYQG~Gg zwxc;=9OMCxK2rRwYxGHR9!Ho@RN`%kTxHImk*BZUO_7>KmSo{Q-OhNV+FBXw$%+D3 zv{Tav3Xkc%c5KtqB_-#~>bVsVowm)o-M+#P>w90FGrsQedf#T5`6ZeD1_jA4fqM48 z#2XlPld%^1gU*TPbi$^s;obW}pa#XV2nTHf6@|sqr9Hwonyo6q8`7Q%cx1c>FZlud z0pC34PkT!aB%h2a*GnipcZ%0qtd z4PDVR!*}!CH4*Owr-(n}rAhU-6|=7w6Ord7YbApu%|7&qi*cW1bVZP|7yV{Lh)=ar z)mpfuUfxk0ADyusmBvdVQ#@xhQC4eVPPMtEVextT<4@DW>aSO?!K>x4j0R|}c?mS= zvAwr36L(eUK!xMmMxlVY#$+Z!MiM<3gZ>m$$w{H&Dd~>5#*)q}9(YG*e#$sn6F_7)B5(S81YhqaR6d;LZB>s&g zun~ss5y93au+b5#bb=xAF8;F!ADoZG+r?5_ARqu6R{mQ7{*M6#|6@SYh|(s(V)dYZ z3}`qKuX^c8fI9A{H{0RRB3xjzE+6l1#kSr&@jcC|5Ma>7^q?`B)9Ehj7hgD?Bi*Y( zO8aO$uHe#*RMfKOC8)oR`&(3J`PpZ8r=X$%wC{CN#X*RxUY!($2W+R(TwI&WfyyHK zrZB|x1>=u%scYGyl3sf4T2H;GLFUJlu*vRc=n>4apDlC<+N;<*W$=5{puxA&g7t&^Kbo!dNaH|0)yYx#P|UG^Is zbVwmsYCoxI-N!9UUyB?3ZXGS{Ci3OajK+psQUe0+WtLRV=#GK9J;$+C)PabLaMEJJ zqa(tX>%*!WnY0xP6dMl8B}Oh@8FY4(;mI)|2s9W4^v7RdQkC*nBS|+MBEk!&{@}^X z`J2nGiO=H;mF8Le6?P+PS(;?4UhD4Ct)?gzvbPivt7LVe-hg=rGoUr!ruYzYpqn;d z>cpq|idPCK@i=;3(cES8Bo_o8voe$LFY+WSMdo@~6VpyhE*Xt_DBHVty^+ea#pzmL z7=&sajwYXwtT~zCoY*^RjRfu2lqey5z=&< zE_S);W|qr%rEODU7;&y|wakcsZb5ZzJft&`x0bcK=2K(7*vW_Xiycjcw$hJB>!FX0 zK|*z1@*M3NZ??O8mxEHk+@APwvcyr^sA2_;AXN)damUf)|jMifcyD4K?&gN!<(zu4CT)ok1x{22B)IrZga@q%B338zc?oK(mQ ztCkQ-vYfMtHQ_zJT4FKIhwT43QlfSt2aNn2|GQHgm4fapr{t%V@D2<+_HQ{|VC@1& zRZi{LF9#m2X3lcNOPg&rv;YT#)%(I>x>{dROJ>E94dN0Oo|$4LXQ{(dw(Uw zN(h9ZR?sT|ErM9i6b^r$``1YaH?G_tUF5AkNSxC%1r?|gnz6&m8aN9TZ7fY`f*##y?$cx!>I+cT`dMYGqGAvG)zc2nh{v8oMMVL@mGib2% zI`vViO-MRw3BzCczFPezf$om~Z{6m(=j%Z;i*BUrb;MErn2z!9?!|PO;x|DGrCvvB zXCy=YiCk@Etf9u`-8n7YmWp8 z;=FXwVke_Aa-=9sG*DA`W>y1ZFfv&|iA5$b7>Pv(kqUDyl^UzCcxBmd%cAl(U5ZpZ ztOSGUvJOKa(@r=-bvIycYtnQAzX*g5f4+wbT~lJ4xa6o;U+5XNp@N&0b>+3H(k3>*F|piU{{Z}#sUACiU1#hommN%Rfd9{|ly zaUYCDSTAq%29UlpthAM9EZEroP)QI{Z@DmwYtQbCc_5c;d8w?jFT5P5nn_a4Lezh8 zWz<+b{K1J;$XJrIQb`vN!o4zPVxa!+is#6!s%wjGR>JTk_>O8|nrI-JuXK%>bM&yj z!VgeKOabOgEGq6r7+LP6f^@9%K=yIeGxJfUa28vMP(|~7hULGb#x<@7?`8hRCdlR+ z+E}Xn>Z+!M$-r1(_+UIJDGrDpmkQ7)S^x0YVL`>M#wRXKF*u=fSuZXX>26Ix54h#^ U!~3^5R+d#AtV&Vd|9trW0yDPTWdHyG literal 0 HcmV?d00001 diff --git a/src/WindowsInstaller/FreeCAD-installer.nsi b/src/WindowsInstaller/FreeCAD-installer.nsi new file mode 100644 index 0000000000..2ceeea5987 --- /dev/null +++ b/src/WindowsInstaller/FreeCAD-installer.nsi @@ -0,0 +1,75 @@ +/* +FreeCAD Installer for Windows +Author: Uwe Stöhr +Compatible with NSIS 3.x +*/ + +# Do a Cyclic Redundancy Check to make sure the installer +# was not corrupted by the download. +CRCCheck force + +# make it a Unicode installer +Unicode true + +# enable support for high DPI resolution +ManifestDPIAware true + +# installer settings like version numbers +!include settings.nsh + +# declarations of FreeCAD's registry keys +!include include\declarations.nsh + +# Multi-User settings +!define MULTIUSER_EXECUTIONLEVEL Highest +!define MULTIUSER_INSTALLMODE_COMMANDLINE +!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY "${APP_REGKEY}" +!define MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME "" + +!define MULTIUSER_INSTALLMODE_INSTDIR "${APP_DIR}" +!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY "${APP_REGKEY}" +!define MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME "" + +!define MULTIUSER_INSTALLMODE_FUNCTION InitUser +!define MULTIUSER_MUI + +# included NSIS files +!include MUI2.nsh +!include LogicLib.nsh +!include Sections.nsh +!include WinVer.nsh +!include LangFile.nsh +!include MultiUser.nsh +!include InstallOptions.nsh +!include x64.nsh +# load the nsPprocess plugin +!include nsProcess.nsh + +# Set of various macros and functions +!include include\utils.nsh + +# detect third-party programs +!include include\detection.nsh + +# set up the installer pages +!include include\gui.nsh + +# sets the install sections and checks the system on starting the un/installer +!include include\init.nsh + +# install FreeCAD and needed third-party programs like Python etc. +!include setup\install.nsh + +# uninstall FreeCAD and all programs that were installed together with FreeCAD +!include setup\uninstall.nsh + +# configure FreeCAD (set start menu and write registry entries) +!include setup\configure.nsh + +#-------------------------------- +# Output file + +Outfile "${SETUP_EXE}" + +# sign the installer executable +!finalize 'signing.bat ${SETUP_EXE}' diff --git a/src/WindowsInstaller/FreeCAD_WindowsInstaller.nsi b/src/WindowsInstaller/FreeCAD_WindowsInstaller.nsi deleted file mode 100644 index 5ac2d1bacf..0000000000 --- a/src/WindowsInstaller/FreeCAD_WindowsInstaller.nsi +++ /dev/null @@ -1,201 +0,0 @@ -# (c) Juergen Riegel (FreeCAD@juergen-riegel.net) 2014 -# -# This file is part of the FreeCAD CAx development system. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library General Public License (LGPL) -# as published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# for detail see the LICENCE text file. -# -# FreeCAD 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 Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public -# License along with FreeCAD; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA -# -# Juergen Riegel 2014 - -#http://www.fredshack.com/docs/nsis.html -# include the Version information -!include Version.nsi -!include "MUI2.nsh" -!include "Sections.nsh" - - -# All the other settings can be tweaked by editing the !defines at the top of this script -!define APPNAME "FreeCAD" -!define PUPNAME "Juergen Riegel" -!define DESCRIPTION "A free open source CAD system" - -# These will be displayed by the "Click here for support information" link in "Add/Remove Programs" -# It is possible to use "mailto:" links in here to open the email client -!define HELPURL "http://freecadweb.org" # "Support Information" link -!define UPDATEURL "http://freecadweb.org" # "Product Updates" link -!define ABOUTURL "http://freecadweb.org" # "Publisher" link -# This is the size (in kB) of all the files copied into "Program Files" -!define INSTALLSIZE 200000 - -!define FULLNAME "${APPNAME} ${VERSIONMAJOR}.${VERSIONMINOR}" -!define INSTNAME "${APPNAME}-${VERSIONMAJOR}.${VERSIONMINOR}" - -RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) - -InstallDir "$PROGRAMFILES\${FULLNAME}" - -# This will be in the installer/uninstaller's title bar -Name "${FULLNAME}" -#Icon "logo.ico" -outFile "..\..\${INSTNAME}.${VERSIONBUILD}_x86_unstable_setup.exe" - -#Interface Settings -!define MUI_ABORTWARNING - -# GPL is not an EULA, no need to agree to it. -!define MUI_LICENSEPAGE_BUTTON $(^NextBtn) -!define MUI_LICENSEPAGE_TEXT_BOTTOM "You are now aware of your rights. Click Next to continue." - -#Pages -# rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n) -!insertmacro MUI_PAGE_LICENSE "License.rtf" -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_COMPONENTS -!insertmacro MUI_PAGE_INSTFILES - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES - -#Languages -!insertmacro MUI_LANGUAGE "English" - -!macro VerifyUserIsAdmin -UserInfo::GetAccountType -pop $0 -${If} $0 != "admin" ;Require admin rights on NT4+ - messageBox mb_iconstop "Administrator rights required!" - setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED - quit -${EndIf} -!macroend - -function .onInit - setShellVarContext all - !insertmacro VerifyUserIsAdmin - Call unSelectInstallOptions -functionEnd - -section "FreeCAD (Required)" - SectionIn RO - # Files for the install directory - to build the installer, these should be in the same directory as the install script (this file) - setOutPath $INSTDIR\bin - # Files added here should be removed by the uninstaller (see section "uninstall") - file /r /X *.idb /X *.pyc /X *.pyo "..\..\bin\" - setOutPath $INSTDIR\lib - file /r /X *.lib /X *.pyc /X *.pyo "..\..\lib\" - setOutPath $INSTDIR\Mod - file /r /X *.idb "..\..\Mod\" - setOutPath $INSTDIR\doc - file /r "..\..\doc\" - setOutPath $INSTDIR\data - file /r /X CMakeFiles /X *.cmake /X *.dir /X *.vcproj /X CMakeLists.txt /X *.am "..\..\data\" - setOutPath $INSTDIR\Ext - file /r "..\..\Ext\" - setOutPath $INSTDIR - file "vcredist_x86.exe" - - # Uninstaller - See function un.onInit and section "uninstall" for configuration - WriteUninstaller "$INSTDIR\Uninstall.exe" - - # Start Menu - CreateDirectory "$SMPROGRAMS\${FULLNAME}" - CreateShortCut "$SMPROGRAMS\${FULLNAME}\${APPNAME}.lnk" "$INSTDIR\bin\FreeCAD.exe" "" "" - CreateShortCut "$SMPROGRAMS\${FULLNAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "" - - # Registry information for add/remove programs - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "DisplayName" "${FULLNAME} - ${DESCRIPTION}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "InstallLocation" "$\"$INSTDIR$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "DisplayIcon" "$\"$INSTDIR\bin\FreeCAD.exe$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "Publisher" "${PUPNAME}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "HelpLink" "$\"${HELPURL}$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "DisplayVersion" "${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "VersionMajor" ${VERSIONMAJOR} - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "VersionMinor" ${VERSIONMINOR} - # There is no option for modifying or repairing the install - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "NoRepair" 1 - # Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "EstimatedSize" ${INSTALLSIZE} -sectionEnd - -section "Add to PYTHONPATH" PythonPathSection - # Set PYTHONPATH for FreeCAD - WriteRegStr HKLM "Software\Python\PythonCore\2.7\PythonPath\${FULLNAME}" "" "$INSTDIR\bin" -sectionEnd - -section "Install redistributable" VCRedistSection - # Install the Visual Studio redistributable - ExecWait '"$INSTDIR\vcredist_x86.exe" /q /norestart' -sectionEnd - -# http://forums.winamp.com/showthread.php?t=255747 -function unSelectInstallOptions - # Deselect the PYTHONPATH option - !insertmacro UnselectSection ${PythonPathSection} - !insertmacro UnselectSection ${VCRedistSection} -functionEnd - -LangString DESC_PythonPathSection ${LANG_ENGLISH} "Add the FreeCAD installation directory to PYTHONPATH in the registry." -LangString DESC_VCRedistSection ${LANG_ENGLISH} "Install the Visual Studio redistributable." - -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${PythonPathSection} $(DESC_PythonPathSection) - !insertmacro MUI_DESCRIPTION_TEXT ${VCRedistSection} $(DESC_VCRedistSection) -!insertmacro MUI_FUNCTION_DESCRIPTION_END - - -# Uninstaller - -function un.onInit - SetShellVarContext all - - #Verify the uninstaller - last chance to back out - MessageBox MB_OKCANCEL "Permanently remove ${APPNAME}?" /SD IDOK IDOK next - Abort - next: - !insertmacro VerifyUserIsAdmin -functionEnd - -section "Uninstall" - - # Remove Start Menu launcher - Delete "$SMPROGRAMS\${FULLNAME}\${APPNAME}.lnk" - Delete "$SMPROGRAMS\${FULLNAME}\Uninstall.lnk" - # Try to remove the Start Menu folder - this will only happen if it is empty - RMDir "$SMPROGRAMS\${FULLNAME}" - - # Remove files - RMDir /r "$INSTDIR\bin" - RMDir /r "$INSTDIR\lib" - RMDir /r "$INSTDIR\doc" - RMDir /r "$INSTDIR\data" - RMDir /r "$INSTDIR\Ext" - RMDir /r "$INSTDIR\Mod" - - # Always delete uninstaller as the last action - Delete $INSTDIR\uninstall.exe - Delete $INSTDIR\vcredist_x86.exe - # Try to remove the install directory - this will only happen if it is empty - RMDir $INSTDIR - - # Remove uninstaller information from the registry - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" - DeleteRegKey HKLM "Software\Python\PythonCore\2.7\PythonPath\${FULLNAME}" -sectionEnd diff --git a/src/WindowsInstaller/FreeCAD_x64_WindowsInstaller.nsi b/src/WindowsInstaller/FreeCAD_x64_WindowsInstaller.nsi deleted file mode 100644 index afaf83cabf..0000000000 --- a/src/WindowsInstaller/FreeCAD_x64_WindowsInstaller.nsi +++ /dev/null @@ -1,210 +0,0 @@ -# Copyright (c) 2014 Werner Mayer -# -# This file is part of the FreeCAD CAx development system. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library General Public License (LGPL) -# as published by the Free Software Foundation; either version 2 of -# the License, or (at your option) any later version. -# for detail see the LICENCE text file. -# -# FreeCAD 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 Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public -# License along with FreeCAD; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA -# -# Werner Mayer 2014 - -#http://www.fredshack.com/docs/nsis.html -# include the Version information -!include Version.nsi -!include "MUI2.nsh" -!include "Sections.nsh" - - -# All the other settings can be tweaked by editing the !defines at the top of this script -!define APPNAME "FreeCAD" -!define PUPNAME "Juergen Riegel" -!define DESCRIPTION "A free open source CAD system" - -# These will be displayed by the "Click here for support information" link in "Add/Remove Programs" -# It is possible to use "mailto:" links in here to open the email client -!define HELPURL "http://freecadweb.org" # "Support Information" link -!define UPDATEURL "http://freecadweb.org" # "Product Updates" link -!define ABOUTURL "http://freecadweb.org" # "Publisher" link -# This is the size (in kB) of all the files copied into "Program Files" -!define INSTALLSIZE 200000 - -!define FULLNAME "${APPNAME} ${VERSIONMAJOR}.${VERSIONMINOR}" -!define INSTNAME "${APPNAME}-${VERSIONMAJOR}.${VERSIONMINOR}" - -RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) - -InstallDir "$PROGRAMFILES64\${FULLNAME}" - -# This will be in the installer/uninstaller's title bar -Name "${FULLNAME}" -#Icon "logo.ico" -outFile "..\..\${INSTNAME}.${VERSIONBUILD}_x64_unstable_setup.exe" - -#Interface Settings -!define MUI_ABORTWARNING - -# GPL is not an EULA, no need to agree to it. -!define MUI_LICENSEPAGE_BUTTON $(^NextBtn) -!define MUI_LICENSEPAGE_TEXT_BOTTOM "You are now aware of your rights. Click Next to continue." - -#Pages -# rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n) -!insertmacro MUI_PAGE_LICENSE "License.rtf" -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_COMPONENTS -!insertmacro MUI_PAGE_INSTFILES - -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES - -#Languages -!insertmacro MUI_LANGUAGE "English" - -!macro VerifyUserIsAdmin -UserInfo::GetAccountType -pop $0 -${If} $0 != "admin" ;Require admin rights on NT4+ - messageBox mb_iconstop "Administrator rights required!" - setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED - quit -${EndIf} -!macroend - -function .onInit - setShellVarContext all - !insertmacro VerifyUserIsAdmin - Call unSelectInstallOptions -functionEnd - -section "FreeCAD (Required)" - SectionIn RO - # Files for the install directory - to build the installer, these should be in the same directory as the install script (this file) - setOutPath $INSTDIR\bin - # Files added here should be removed by the uninstaller (see section "uninstall") - file /r /X *.idb /X *.pyc /X *.pyo "..\..\bin\" - setOutPath $INSTDIR\lib - file /r /X *.lib /X *.pyc /X *.pyo "..\..\lib\" - setOutPath $INSTDIR\Mod - file /r /X *.idb "..\..\Mod\" - setOutPath $INSTDIR\doc - file /r "..\..\doc\" - setOutPath $INSTDIR\data - file /r /X CMakeFiles /X *.cmake /X *.dir /X *.vcproj /X CMakeLists.txt /X *.am "..\..\data\" - setOutPath $INSTDIR\Ext - file /r "..\..\Ext\" - setOutPath $INSTDIR - file "vcredist_x64.exe" - - # Uninstaller - See function un.onInit and section "uninstall" for configuration - WriteUninstaller "$INSTDIR\Uninstall.exe" - - # Start Menu - CreateDirectory "$SMPROGRAMS\${FULLNAME}" - CreateShortCut "$SMPROGRAMS\${FULLNAME}\${APPNAME}.lnk" "$INSTDIR\bin\FreeCAD.exe" "" "" - CreateShortCut "$SMPROGRAMS\${FULLNAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" "" "" - - # Access the right location for 64-bit applications - SetRegView 64 - - # Registry information for add/remove programs - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "DisplayName" "${FULLNAME} - ${DESCRIPTION}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "InstallLocation" "$\"$INSTDIR$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "DisplayIcon" "$\"$INSTDIR\bin\FreeCAD.exe$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "Publisher" "${PUPNAME}" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "HelpLink" "$\"${HELPURL}$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\"" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "DisplayVersion" "${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}" - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "VersionMajor" ${VERSIONMAJOR} - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "VersionMinor" ${VERSIONMINOR} - # There is no option for modifying or repairing the install - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "NoRepair" 1 - # Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" "EstimatedSize" ${INSTALLSIZE} -sectionEnd - -section "Add to PYTHONPATH" PythonPathSection - # Access the right location for 64-bit applications - SetRegView 64 - - # Set PYTHONPATH for FreeCAD - WriteRegStr HKLM "Software\Python\PythonCore\2.7\PythonPath\${FULLNAME}" "" "$INSTDIR\bin" -sectionEnd - -section "Install redistributable" VCRedistSection - # Install the Visual Studio redistributable - ExecWait '"$INSTDIR\vcredist_x64.exe" /q /norestart' -sectionEnd - -# http://forums.winamp.com/showthread.php?t=255747 -function unSelectInstallOptions - # Deselect the PYTHONPATH option - !insertmacro UnselectSection ${PythonPathSection} - !insertmacro UnselectSection ${VCRedistSection} -functionEnd - -LangString DESC_PythonPathSection ${LANG_ENGLISH} "Add the FreeCAD installation directory to PYTHONPATH in the registry." -LangString DESC_VCRedistSection ${LANG_ENGLISH} "Install the Visual Studio redistributable." - -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${PythonPathSection} $(DESC_PythonPathSection) - !insertmacro MUI_DESCRIPTION_TEXT ${VCRedistSection} $(DESC_VCRedistSection) -!insertmacro MUI_FUNCTION_DESCRIPTION_END - - -# Uninstaller - -function un.onInit - SetShellVarContext all - - #Verify the uninstaller - last chance to back out - MessageBox MB_OKCANCEL "Permanently remove ${APPNAME}?" /SD IDOK IDOK next - Abort - next: - !insertmacro VerifyUserIsAdmin -functionEnd - -section "Uninstall" - - # Remove Start Menu launcher - Delete "$SMPROGRAMS\${FULLNAME}\${APPNAME}.lnk" - Delete "$SMPROGRAMS\${FULLNAME}\Uninstall.lnk" - # Try to remove the Start Menu folder - this will only happen if it is empty - RMDir "$SMPROGRAMS\${FULLNAME}" - - # Remove files - RMDir /r "$INSTDIR\bin" - RMDir /r "$INSTDIR\lib" - RMDir /r "$INSTDIR\doc" - RMDir /r "$INSTDIR\data" - RMDir /r "$INSTDIR\Ext" - RMDir /r "$INSTDIR\Mod" - - # Always delete uninstaller as the last action - Delete $INSTDIR\uninstall.exe - Delete $INSTDIR\vcredist_x64.exe - # Try to remove the install directory - this will only happen if it is empty - RMDir $INSTDIR - - # Access the right location for 64-bit applications - SetRegView 64 - - # Remove uninstaller information from the registry - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${FULLNAME}" - DeleteRegKey HKLM "Software\Python\PythonCore\2.7\PythonPath\${FULLNAME}" -sectionEnd diff --git a/src/WindowsInstaller/LICENSE b/src/WindowsInstaller/LICENSE new file mode 100644 index 0000000000..8000a6faac --- /dev/null +++ b/src/WindowsInstaller/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random + Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/src/WindowsInstaller/License.rtf b/src/WindowsInstaller/License.rtf index ee34c5ed0a..c5362789c7 100644 --- a/src/WindowsInstaller/License.rtf +++ b/src/WindowsInstaller/License.rtf @@ -1,357 +1,277 @@ -{\rtf1\ansi\deff0\adeflang1025 -{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Times New Roman;}{\f4\fnil\fprq2\fcharset0 MS Mincho;}{\f5\fnil\fprq2\fcharset0 MS Mincho;}{\f6\fnil\fprq2\fcharset0 Tahoma;}{\f7\fnil\fprq0\fcharset0 Tahoma;}} -{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} -{\stylesheet{\s1\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\snext1 Normal;} -{\s2\sb240\sa120\keepn\aspalpha\rtlch\af6\afs28\lang255\ltrch\dbch\af4\langfe1033\hich\f2\fs28\lang1033\loch\f2\fs28\lang1033\sbasedon1\snext3 Heading;} -{\s3\sa120\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\sbasedon1\snext3 Body Text;} -{\s4\sa120\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\sbasedon3\snext4 List;} -{\s5\sb120\sa120\aspalpha\rtlch\af7\afs24\lang255\ai\ltrch\dbch\langfe1033\hich\fs24\lang1033\i\loch\fs24\lang1033\i\sbasedon1\snext5 caption;} -{\s6\aspalpha\rtlch\af7\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\sbasedon1\snext6 Index;} -{\s7\sb240\sa120\keepn\aspalpha\rtlch\af2\afs28\lang255\ltrch\dbch\af5\langfe1033\hich\f2\fs28\lang1033\loch\f2\fs28\lang1033\sbasedon1\snext3 Heading;} -{\s8\sb120\sa120\aspalpha\rtlch\afs24\lang255\ai\ltrch\dbch\langfe1033\hich\fs24\lang1033\i\loch\fs24\lang1033\i\sbasedon1\snext8 caption;} -{\s9\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\sbasedon1\snext9 Index;} -{\*\cs11\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033 Default Paragraph Font;} -} -{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab720 +{\rtf1\ansi\deff4\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset2 Symbol;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f4\fnil\fprq0\fcharset128 Linux Libertine Display G;}{\f5\fnil\fprq0\fcharset128 Linux Biolinum G;}{\f6\fnil\fprq0\fcharset128 Times New Roman;}{\f7\fnil\fprq0\fcharset0 Fira Sans;}{\f8\fnil\fprq0\fcharset2 OpenSymbol{\*\falt Arial Unicode MS};}{\f9\fnil\fprq0\fcharset0 MS Shell Dlg 2;}{\f10\fnil\fprq0\fcharset128 Fira;}{\f11\fswiss\fprq0\fcharset128 Fira Sans;}{\f12\fnil\fprq2\fcharset128 Linux Libertine Display G;}{\f13\fnil\fprq2\fcharset128 Linux Biolinum G;}{\f14\fnil\fprq2\fcharset0 Linux Libertine Display G;}{\f15\fnil\fprq2\fcharset0 Times New Roman;}{\f16\fnil\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} +{\stylesheet{\s0\snext0\nowidctlpar\hyphpar0\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\alang1081\loch\f4\fs24\lang1033 Normal;} +{\*\cs15\snext15\cf2\ul\ulc0\b0\kerning1\dbch\af15\langfe1033\loch\f6\fs16 ListLabel 1;} +{\*\cs16\snext16\cf9\ul\ulc0\langfe255 Internetverkn\u252\'3fpfung;} +{\*\cs17\snext17\cf2\ul\ulc0\b0\dbch\af15\langfe1033\loch\f6\fs16 ListLabel 2;} +{\*\cs18\snext18\dbch\af8\dbch\af8\loch\f8 Aufz\u228\'e4hlungszeichen;} +{\s19\sbasedon0\snext20\nowidctlpar\hyphpar0\sb240\sa120\keepn\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f5\fs28 \u220\'3fberschrift;} +{\s20\sbasedon0\snext20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24 Textk\u246\'3frper;} +{\s21\sbasedon20\snext21\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24 Liste;} +{\s22\sbasedon0\snext22\nowidctlpar\hyphpar0\sb120\sa120\cf0\i\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24 Beschriftung;} +{\s23\sbasedon0\snext23\nowidctlpar\hyphpar0\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24 Verzeichnis;} +{\s24\sbasedon0\snext20\nowidctlpar\hyphpar0\sb0\sa283\brdrb\brdrdb\brdrw1\brdrcf15\brsp0\noline\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs12\loch\f4\fs12 Horizontale Linie;} +}{\*\listtable{\list\listtemplateid1 +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li0} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li1414} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li2121} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li2828} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li3535} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li4242} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li4949} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li5656} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li6363}\listid1} +{\list\listtemplateid2 +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li0} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li1414} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li2121} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li2828} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li3535} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li4242} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li4949} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li5656} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li6363}\listid2} +{\list\listtemplateid3 +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li0} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li1414} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li2121} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li2828} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li3535} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li4242} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li4949} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li5656} +{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\dbch\af8\fi-283\li6363}\listid3} +{\list\listtemplateid4 +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0} +{\listlevel\levelnfc255\leveljc0\levelstartat1\levelfollow2{\leveltext \'00;}{\levelnumbers;}\fi0\li0}\listid4} +}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}}{\*\generator LibreOffice/6.2.2.1$Windows_X86_64 LibreOffice_project/fcd633fb1bf21b0a99c9acb3ad6e526437947b01}{\info{\creatim\yr0\mo0\dy0\hr0\min0}{\revtim\yr2019\mo3\dy21\hr0\min15}{\printim\yr0\mo0\dy0\hr0\min0}}{\*\userprops}\deftab720 +\hyphauto0\viewscale140 {\*\pgdsctbl -{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Standard;}} -{\*\pgdscno0}\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc -\pard\plain \ltrpar\s1\qc\aspalpha\rtlch\afs40\lang255\ab\ltrch\dbch\langfe1033\hich\fs40\lang1033\b\loch\fs40\lang1033\b {\rtlch \ltrch\loch\f0\fs40\lang1033\i0\b GPL V2} -\par \pard\plain \ltrpar\s1\qc\aspalpha\rtlch\afs20\lang255\ab\ltrch\dbch\langfe1033\hich\fs20\lang1033\b\loch\fs20\lang1033\b {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b GNU GENERAL PUBLIC LICENSE} -\par \pard\plain \ltrpar\s1\qc\aspalpha\rtlch\afs20\lang255\ab\ltrch\dbch\langfe1033\hich\fs20\lang1033\b\loch\fs20\lang1033\b {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b Version 2, June 1991} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch } -\par \pard\plain \ltrpar\s1\ql {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 \tab \tab \tab {\rtlch\ltrch\hich\b\loch\b Preamble}} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 The licenses for most software are designed to take away your} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 freedom to share and change it. By contrast, the GNU General Public} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 License is intended to guarantee your freedom to share and change free} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 software--to make sure the software is free for all its users. This} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 General Public License applies to most of the Free Software} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Foundation's software and to any other program whose authors commit to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 using it. (Some other Free Software Foundation software is covered by} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the GNU Library General Public License instead.) You can apply it to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 your programs, too.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 When we speak of free software, we are referring to freedom, not} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 price. Our General Public Licenses are designed to make sure that you} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 have the freedom to distribute copies of free software (and charge for} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 this service if you wish), that you receive source code or can get it} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 if you want it, that you can change the software or use pieces of it} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 in new free programs; and that you know you can do these things.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 To protect your rights, we need to make restrictions that forbid} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 anyone to deny you these rights or to ask you to surrender the rights.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 These restrictions translate to certain responsibilities for you if you} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 distribute copies of the software, or if you modify it.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 For example, if you distribute copies of such a program, whether} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 gratis or for a fee, you must give the recipients all the rights that} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 you have. You must make sure that they, too, receive or can get the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 source code. And you must show them these terms so they know their} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 rights.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 We protect your rights with two steps: (1) copyright the software, and} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 (2) offer you this license which gives you legal permission to copy,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 distribute and/or modify the software.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Also, for each author's protection and ours, we want to make certain} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 that everyone understands that there is no warranty for this free} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 software. If the software is modified by someone else and passed on, we} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 want its recipients to know that what they have is not the original, so} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 that any problems introduced by others will not reflect on the original} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 authors' reputations.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Finally, any free program is threatened constantly by software} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 patents. We wish to avoid the danger that redistributors of a free} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 program will individually obtain patent licenses, in effect making the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 program proprietary. To prevent this, we have made it clear that any} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 patent must be licensed for everyone's free use or not licensed at all.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 The precise terms and conditions for copying, distribution and} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 modification follow.} -\par \page\pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 \tab \tab GNU GENERAL PUBLIC LICENSE} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 0. This License applies to any program or other work which contains} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 a notice placed by the copyright holder saying it may be distributed} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 under the terms of this General Public License. The "Program", below,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 refers to any such program or work, and a "work based on the Program"} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 means either the Program or any derivative work under copyright law:} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 that is to say, a work containing the Program or a portion of it,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 either verbatim or with modifications and/or translated into another} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 language. (Hereinafter, translation is included without limitation in} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the term "modification".) Each licensee is addressed as "you".} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Activities other than copying, distribution and modification are not} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 covered by this License; they are outside its scope. The act of} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 running the Program is not restricted, and the output from the Program} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 is covered only if its contents constitute a work based on the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Program (independent of having been made by running the Program).} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Whether that is true depends on what the Program does.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 1. You may copy and distribute verbatim copies of the Program's} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 source code as you receive it, in any medium, provided that you} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 conspicuously and appropriately publish on each copy an appropriate} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 copyright notice and disclaimer of warranty; keep intact all the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 notices that refer to this License and to the absence of any warranty;} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 and give any other recipients of the Program a copy of this License} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 along with the Program.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 You may charge a fee for the physical act of transferring a copy, and} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 you may at your option offer warranty protection in exchange for a fee.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 2. You may modify your copy or copies of the Program or any portion} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 of it, thus forming a work based on the Program, and copy and} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 distribute such modifications or work under the terms of Section 1} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 above, provided that you also meet all of these conditions:} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 a) You must cause the modified files to carry prominent notices} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 stating that you changed the files and the date of any change.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 b) You must cause any work that you distribute or publish, that in} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 whole or in part contains or is derived from the Program or any} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 part thereof, to be licensed as a whole at no charge to all third} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 parties under the terms of this License.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 c) If the modified program normally reads commands interactively} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 when run, you must cause it, when started running for such} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 interactive use in the most ordinary way, to print or display an} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 announcement including an appropriate copyright notice and a} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 notice that there is no warranty (or else, saying that you provide} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 a warranty) and that users may redistribute the program under} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 these conditions, and telling the user how to view a copy of this} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 License. (Exception: if the Program itself is interactive but} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 does not normally print such an announcement, your work based on} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the Program is not required to print an announcement.)} -\par \page\pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 These requirements apply to the modified work as a whole. If} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 identifiable sections of that work are not derived from the Program,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 and can be reasonably considered independent and separate works in} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 themselves, then this License, and its terms, do not apply to those} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 sections when you distribute them as separate works. But when you} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 distribute the same sections as part of a whole which is a work based} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 on the Program, the distribution of the whole must be on the terms of} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 this License, whose permissions for other licensees extend to the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 entire whole, and thus to each and every part regardless of who wrote it.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Thus, it is not the intent of this section to claim rights or contest} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 your rights to work written entirely by you; rather, the intent is to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 exercise the right to control the distribution of derivative or} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 collective works based on the Program.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 In addition, mere aggregation of another work not based on the Program} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 with the Program (or with a work based on the Program) on a volume of} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 a storage or distribution medium does not bring the other work under} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the scope of this License.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 3. You may copy and distribute the Program (or a work based on it,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 under Section 2) in object code or executable form under the terms of} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Sections 1 and 2 above provided that you also do one of the following:} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 a) Accompany it with the complete corresponding machine-readable} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 source code, which must be distributed under the terms of Sections} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 1 and 2 above on a medium customarily used for software interchange; or,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 b) Accompany it with a written offer, valid for at least three} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 years, to give any third party, for a charge no more than your} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 cost of physically performing source distribution, a complete} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 machine-readable copy of the corresponding source code, to be} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 distributed under the terms of Sections 1 and 2 above on a medium} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 customarily used for software interchange; or,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 c) Accompany it with the information you received as to the offer} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 to distribute corresponding source code. (This alternative is} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 allowed only for noncommercial distribution and only if you} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 received the program in object code or executable form with such} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 an offer, in accord with Subsection b above.)} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 The source code for a work means the preferred form of the work for} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 making modifications to it. For an executable work, complete source} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 code means all the source code for all modules it contains, plus any} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 associated interface definition files, plus the scripts used to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 control compilation and installation of the executable. However, as a} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 special exception, the source code distributed need not include} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 anything that is normally distributed (in either source or binary} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 form) with the major components (compiler, kernel, and so on) of the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 operating system on which the executable runs, unless that component} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 itself accompanies the executable.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 If distribution of executable or object code is made by offering} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 access to copy from a designated place, then offering equivalent} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 access to copy the source code from the same place counts as} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 distribution of the source code, even though third parties are not} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 compelled to copy the source along with the object code.} -\par \page\pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 4. You may not copy, modify, sublicense, or distribute the Program} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 except as expressly provided under this License. Any attempt} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 otherwise to copy, modify, sublicense or distribute the Program is} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 void, and will automatically terminate your rights under this License.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 However, parties who have received copies, or rights, from you under} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 this License will not have their licenses terminated so long as such} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 parties remain in full compliance.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 5. You are not required to accept this License, since you have not} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 signed it. However, nothing else grants you permission to modify or} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 distribute the Program or its derivative works. These actions are} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 prohibited by law if you do not accept this License. Therefore, by} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 modifying or distributing the Program (or any work based on the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Program), you indicate your acceptance of this License to do so, and} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 all its terms and conditions for copying, distributing or modifying} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the Program or works based on it.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 6. Each time you redistribute the Program (or any work based on the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Program), the recipient automatically receives a license from the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 original licensor to copy, distribute or modify the Program subject to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 these terms and conditions. You may not impose any further} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 restrictions on the recipients' exercise of the rights granted herein.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 You are not responsible for enforcing compliance by third parties to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 this License.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 7. If, as a consequence of a court judgment or allegation of patent} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 infringement or for any other reason (not limited to patent issues),} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 conditions are imposed on you (whether by court order, agreement or} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 otherwise) that contradict the conditions of this License, they do not} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 excuse you from the conditions of this License. If you cannot} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 distribute so as to satisfy simultaneously your obligations under this} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 License and any other pertinent obligations, then as a consequence you} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 may not distribute the Program at all. For example, if a patent} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 license would not permit royalty-free redistribution of the Program by} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 all those who receive copies directly or indirectly through you, then} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the only way you could satisfy both it and this License would be to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 refrain entirely from distribution of the Program.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 If any portion of this section is held invalid or unenforceable under} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 any particular circumstance, the balance of the section is intended to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 apply and the section as a whole is intended to apply in other} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 circumstances.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 It is not the purpose of this section to induce you to infringe any} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 patents or other property right claims or to contest validity of any} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 such claims; this section has the sole purpose of protecting the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 integrity of the free software distribution system, which is} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 implemented by public license practices. Many people have made} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 generous contributions to the wide range of software distributed} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 through that system in reliance on consistent application of that} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 system; it is up to the author/donor to decide if he or she is willing} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 to distribute software through any other system and a licensee cannot} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 impose that choice.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 This section is intended to make thoroughly clear what is believed to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 be a consequence of the rest of this License.} -\par \page\pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 8. If the distribution and/or use of the Program is restricted in} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 certain countries either by patents or by copyrighted interfaces, the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 original copyright holder who places the Program under this License} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 may add an explicit geographical distribution limitation excluding} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 those countries, so that distribution is permitted only in or among} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 countries not thus excluded. In such case, this License incorporates} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the limitation as if written in the body of this License.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 9. The Free Software Foundation may publish revised and/or new versions} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 of the General Public License from time to time. Such new versions will} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 be similar in spirit to the present version, but may differ in detail to} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 address new problems or concerns.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Each version is given a distinguishing version number. If the Program} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 specifies a version number of this License which applies to it and "any} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 later version", you have the option of following the terms and conditions} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 either of that version or of any later version published by the Free} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Software Foundation. If the Program does not specify a version number of} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 this License, you may choose any version ever published by the Free Software} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Foundation.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 10. If you wish to incorporate parts of the Program into other free} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 programs whose distribution conditions are different, write to the author} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 to ask for permission. For software which is copyrighted by the Free} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Software Foundation, write to the Free Software Foundation; we sometimes} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 make exceptions for this. Our decision will be guided by the two goals} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 of preserving the free status of all derivatives of our free software and} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 of promoting the sharing and reuse of software generally.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 \tab \tab \tab NO WARRANTY} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 REPAIR OR CORRECTION.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 POSSIBILITY OF SUCH DAMAGES.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 \tab \tab END OF TERMS AND CONDITIONS} -\par \page\pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 \tab How to Apply These Terms to Your New Programs} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 If you develop a new program, and you want it to be of the greatest} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 possible use to the public, the best way to achieve this is to make it} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 free software which everyone can redistribute and change under these terms.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 To do so, attach the following notices to the program. It is safest} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 to attach them to the start of each source file to most effectively} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 convey the exclusion of warranty; and each file should have at least} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the "copyright" line and a pointer to where the full notice is found.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 } -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Copyright (C) } -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 This program is free software; you can redistribute it and/or modify} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 it under the terms of the GNU General Public License as published by} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 the Free Software Foundation; either version 2 of the License, or} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 (at your option) any later version.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 This program is distributed in the hope that it will be useful,} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 but WITHOUT ANY WARRANTY; without even the implied warranty of} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 GNU General Public License for more details.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 You should have received a copy of the GNU General Public License} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 along with this program; if not, write to the Free Software} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Also add information on how to contact you by electronic and paper mail.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 If the program is interactive, make it output a short notice like this} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 when it starts in an interactive mode:} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Gnomovision version 69, Copyright (C) year name of author} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 This is free software, and you are welcome to redistribute it} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 under certain conditions; type `show c' for details.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 The hypothetical commands `show w' and `show c' should show the appropriate} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 parts of the General Public License. Of course, the commands you use may} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 be called something other than `show w' and `show c'; they could even be} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 mouse-clicks or menu items--whatever suits your program.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 You should also get your employer (if you work as a programmer) or your} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 school, if any, to sign a "copyright disclaimer" for the program, if} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 necessary. Here is a sample; alter the names:} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Yoyodyne, Inc., hereby disclaims all copyright interest in the program} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 `Gnomovision' (which makes passes at compilers) written by James Hacker.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 , 1 April 1989} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch }{\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Ty Coon, President of Vice} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 This General Public License does not permit incorporating your program into} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 proprietary programs. If your program is a subroutine library, you may} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 consider it more useful to permit linking proprietary applications with the} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 library. If this is what you want to do, use the GNU Library General} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 {\rtlch \ltrch\loch\f0\fs20\lang1033\i0\b0 Public License instead of this License.} -\par \pard\plain \ltrpar\s1\ql\rtlch\afs20\lang255\ltrch\dbch\langfe1033\hich\fs20\lang1033\loch\fs20\lang1033 +{\pgdsc0\pgdscuse451\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Standard;} +{\pgdsc1\pgdscuse451\pgndec\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn567\margtsxn567\margbsxn567\pgdscnxt1 HTML;}} +\formshade{\*\pgdscno0}\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\sectunlocked1\pgndec\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +{\*\ftnsep\chftnsep}\pgndec\pard\plain \s0\nowidctlpar\hyphpar0\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\alang1081\loch\f4\fs24\lang1033\qc{\cf1\b\dbch\af15\dbch\af15\afs28\rtlch \ltrch\loch\fs28\lang1033\loch\f12\hich\af12 +FreeCAD Distribution License Agreement} +\par \pard\plain \s0\nowidctlpar\hyphpar0\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\alang1081\loch\f4\fs24\lang1033\cf1\b0\dbch\af15\dbch\af15\afs24\rtlch \ltrch\loch\fs24\lang1033\loch\f12\hich\af12 + +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb240\sa180{\cf1\b\dbch\af15\dbch\af15\rtlch \ltrch\loch\fs28\lang1033\loch\f12\hich\af12 +FreeCAD}{\cf1\b\dbch\af15\dbch\af15\rtlch \ltrch\loch\fs28\lang1033\loch\f12\hich\af12 + license} +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb0\sa0{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +The FreeCAD application is licensed under the terms of the LGPL2+ license, as stated below.} +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb0\sa0{\b\rtlch \ltrch\loch\fs28\lang1033\loch\f12\hich\af12 +Third-party libraries licenses} +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb0\sa0{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +The different libraries used in FreeCAD and their respective licenses are described on the\line }{{\field{\*\fldinst HYPERLINK "https://www.freecadweb.org/wiki/Third_Party_Libraries" }{\fldrslt {\cf9\ul\ulc0\langfe255\cf2\ul\ulc0\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Third Party Libraries wiki page}{}}}\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +.} +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb0\sa0\rtlch \ltrch\loch + +\par \pard\plain \s24\nowidctlpar\hyphpar0\sb0\sa283\brdrb\brdrdb\brdrw1\brdrcf15\brsp0\noline\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs12\loch\f4\fs12\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb0\sa0{{\*\bkmkstart SEC1}{\*\bkmkend SEC1}\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +GNU LIBRARY GENERAL PUBLIC LICENSE} +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Version 2, June 1991 } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb0\sa0{{\*\bkmkstart SEC2}{\*\bkmkend SEC2}\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Preamble}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb0\sa0{{\*\bkmkstart SEC3}{\*\bkmkend SEC3}\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +0.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +1.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +2.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls1 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +a)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + The modified work must itself be a software library. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls1 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +b)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls1 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +c)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls1 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +d)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +3.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +This option is useful when you wish to copy part of the code of the Library into a program that is not a library. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +4.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +5.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +6.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +a)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +b)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +c)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls2 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +d)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + Verify that the user has already received a copy of these materials or that you have already sent this user a copy. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +7.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +a)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24{\listtext\pard\plain \dbch\af8\dbch\af8\loch\f8 \u8226\'95\tab}\ilvl0\ls3 \li0\ri0\lin0\rin0\fi-283\tx0\li0\ri0\lin0\rin0\fi-283\sb0\sa0{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +b)}{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 + Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +8.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +9.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +10.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +11.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +12.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +13.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +14.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +NO WARRANTY}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +15.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. } +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\b\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +16.}{\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + }{\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.} +\par \pard\plain \s24\nowidctlpar\hyphpar0\sb0\sa283\brdrb\brdrdb\brdrw1\brdrcf15\brsp0\noline\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs12\loch\f4\fs12\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb240\sa180{\b\afs24\rtlch \ltrch\loch\fs24\lang1033\loch\f12\hich\af12 +3D Mouse Support} +\par \pard\plain \s20\sl276\slmult1\nowidctlpar\hyphpar0\sb0\sa140\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs24\loch\f4\fs24\li0\ri0\lin0\rin0\fi0\sb180\sa180{\afs18\rtlch \ltrch\loch\fs18\lang1033\loch\f12\hich\af12 +Development tools and related technology provided under license from 3Dconnexion.(c) 1992 - 2012 3Dconnexion. All rights reserved} +\par \pard\plain \s24\nowidctlpar\hyphpar0\sb0\sa283\brdrb\brdrdb\brdrw1\brdrcf15\brsp0\noline\cf0\kerning1\dbch\af14\langfe1031\dbch\af16\afs12\loch\f4\fs12\sb0\sa283\rtlch \ltrch\loch\lang1033\loch\f12\hich\af12 + \par } \ No newline at end of file diff --git a/src/WindowsInstaller/README.md b/src/WindowsInstaller/README.md new file mode 100644 index 0000000000..5509a2b614 --- /dev/null +++ b/src/WindowsInstaller/README.md @@ -0,0 +1,29 @@ +# FreeCADInstProj +A GitHub project to develop a Windos installer for FreeCAD + +To build the installer do the following: +1. Extract the source zip-file "FC-standard-installer.zip" to e.g. the path "C:\FreeCAD\Installer" +2. Open the file Settings.nsh with a text editor + (the editor jEdit (jedit.org) can be recommended to edit NSIS files) + and adapt there the following paths to the ones on your PC, e.g.:
+ !define FILES_FREECAD "C:\FreeCAD\Installer\FreeCAD"
+ !define FILES_DEPS "C:\FreeCAD\Installer\MSVCRedist" +3. Specify in Settings.nsh if it should be an installer for 32bit by commenting the line
+ !define MULTIUSER_USE_PROGRAMFILES64 +4. Install the latest version 3.x of NSIS (https://nsis.sourceforge.io/Download) +5. Copy the file ~\nsprocess\Include\nsProcess.nsh to the folder
+ \Include of NSIS's installation folder.
+ Copy the file ~\nsprocess\Plugins\x86-unicode\nsProcess.dll to the folder
+ \Plugins\x86-unicode of NSIS's installation folder. +6. Copy all FreeCAD files to the folder "~\FreeCAD" + e.g. "C:\FreeCAD\Installer\FreeCAD" +7. If you use compiled FreeCAD using another MSVC version than MSVC 2015, copy + its distributable DLLs to the folder FILES_DEPS (see step 2). +8. Right-click on the file FreeCAD-installer.nsi and choose "Compile NSIS script" + to compile the installer + +For test builds of the installer you can turn off the compression. This speeds up +the build time for the installer a lot but increases its file size. The compression +is disabled by uncommenting the line +SetCompressor /SOLID lzma +in the file Settings.nsh. diff --git a/src/WindowsInstaller/Settings.nsh b/src/WindowsInstaller/Settings.nsh new file mode 100644 index 0000000000..55989e0bc3 --- /dev/null +++ b/src/WindowsInstaller/Settings.nsh @@ -0,0 +1,46 @@ +/* + +Settings for FreeCAD installer + +These typically need to be modified for each FreeCAD release + +*/ + +# Make the installer as small as possible +# comment this for testing builds since it will reduce the time to create an installer +# a lot - for the cost of a much greater file size. +# So assure it is active for release builds! +SetCompressor /SOLID lzma + +#-------------------------------- +# Version number + +!define APP_VERSION_MAJOR 0 +!define APP_VERSION_MINOR 18 +!define APP_VERSION_REVISION 0 +!define APP_VERSION_EMERGENCY "" # use "1" for an emergency release of FreeCAD otherwise "" +!define APP_EMERGENCY_DOT "" # use "." for an emergency release of FreeCAD otherwise "" +!define APP_VERSION_BUILD 9 # Start with 1 for the installer releases of each version + +!define APP_VERSION "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_REVISION}${APP_EMERGENCY_DOT}${APP_VERSION_EMERGENCY}" # Version to display + +!define COPYRIGHT_YEAR 2019 + +#-------------------------------- +# Installer file name +# Typical names for the release are "FreeCAD-018-Installer-1.exe" etc. + +!define ExeFile "${APP_NAME}-${APP_VERSION_MAJOR}${APP_VERSION_MINOR}${APP_VERSION_REVISION}${APP_VERSION_EMERGENCY}-Installer-${APP_VERSION_BUILD}.exe" + +#-------------------------------- +# installer bit type - for a 32bit or 64bit FreeCAD + +# just comment this line for a 32bit installer: +!define MULTIUSER_USE_PROGRAMFILES64 + +#-------------------------------- +# File locations +# !!! you need to adjust them to the folders in your Windows system !!! + +!define FILES_FREECAD "D:\usti\FreeCAD\Installer\FreeCAD" +!define FILES_DEPS "D:\usti\FreeCAD\Installer\MSVCRedist" diff --git a/src/WindowsInstaller/Signing.bat b/src/WindowsInstaller/Signing.bat new file mode 100644 index 0000000000..80dc3bddf3 --- /dev/null +++ b/src/WindowsInstaller/Signing.bat @@ -0,0 +1 @@ +signtool.exe sign /f FCweborg.pfx /p FreeCADIsCool /fd sha512 /tr http://timestamp.digicert.com /td sha512 /v %1 diff --git a/src/WindowsInstaller/Version.nsi.in b/src/WindowsInstaller/Version.nsi.in deleted file mode 100644 index 08e775561d..0000000000 --- a/src/WindowsInstaller/Version.nsi.in +++ /dev/null @@ -1,4 +0,0 @@ - -!define VERSIONMAJOR 0 -!define VERSIONMINOR 14 -!define VERSIONBUILD $WCREV$ \ No newline at end of file diff --git a/src/WindowsInstaller/graphics/header.bmp b/src/WindowsInstaller/graphics/header.bmp new file mode 100644 index 0000000000000000000000000000000000000000..03fca774051b1caf60df73ad19582b439566f508 GIT binary patch literal 25818 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 literal 0 HcmV?d00001 diff --git a/src/WindowsInstaller/graphics/orange.bmp b/src/WindowsInstaller/graphics/orange.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9c45bcc1e5d4cc586ab1ee877bb0698ef91bea02 GIT binary patch literal 154542 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 literal 0 HcmV?d00001 diff --git a/src/WindowsInstaller/icons/FreeCAD-icon-57px-height.bmp b/src/WindowsInstaller/icons/FreeCAD-icon-57px-height.bmp new file mode 100644 index 0000000000000000000000000000000000000000..aa3242178b53debb54ad1c6b49d31710903a9fc5 GIT binary patch literal 9858 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 z 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 literal 0 HcmV?d00001 diff --git a/src/WindowsInstaller/icons/FreeCAD.ico b/src/WindowsInstaller/icons/FreeCAD.ico new file mode 100644 index 0000000000000000000000000000000000000000..ecf6e59ed10ecb677ed8137aac5231e77213c54e GIT binary patch literal 92478 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 hl$fx8&0j;e#rm30N3X7@=ha ${APP_SERIES_KEY} + # store the version number and reformat it temporarily for the error message + StrCpy $R0 $OldVersionNumber + StrCpy $OldVersionNumber $R5 + MessageBox MB_OK|MB_ICONSTOP "$(NewerInstalled)" /SD IDOK + StrCpy $OldVersionNumber $R0 + Abort + ${endif} + + # this can be reset to "true" in section SecDesktop + StrCpy $CreateDesktopIcon "false" + StrCpy $CreateFileAssociations "false" + + ${IfNot} ${Silent} + # Show banner while installer is intializating + Banner::show /NOUNLOAD "Checking system" + ${EndIf} + + Call SearchExternal + + ${IfNot} ${Silent} + Banner::destroy + ${EndIf} + +FunctionEnd + +# this function is called at first after starting the uninstaller +Function un.onInit + + !insertmacro MULTIUSER_UNINIT + + # Check that FreeCAD is not currently running + FindProcDLL::FindProc "${BIN_FREECAD}" + ${if} $R0 == "1" + MessageBox MB_OK|MB_ICONSTOP "$(UnInstallRunning)" /SD IDOK + Abort + ${endif} + + # check if it is a 64bit system + ${if} ${RunningX64} + SetRegView 64 + ${endif} + + # set registry root key + ${if} $MultiUser.Privileges == "Admin" + ${orif} $MultiUser.Privileges == "Power" + SetShellVarContext all + ${else} + SetShellVarContext current + ${endif} + + # Ascertain whether the user has sufficient privileges to uninstall. + # abort when FreeCAD was installed with admin permissions but the user doesn't have administrator privileges + ReadRegStr $0 HKLM "${APP_UNINST_KEY}" "DisplayVersion" + ${if} $0 != "" + ${andif} $MultiUser.Privileges != "Admin" + ${andif} $MultiUser.Privileges != "Power" + MessageBox MB_OK|MB_ICONSTOP "$(UnNotAdminLabel)" /SD IDOK + Abort + ${endif} + # warning when FreeCAD couldn't be found in the registry + ${if} $0 == "" # check in HKCU + ReadRegStr $0 HKCU "${APP_UNINST_KEY}" "DisplayVersion" + ${if} $0 == "" + MessageBox MB_OK|MB_ICONEXCLAMATION "$(UnNotInRegistryLabel)" /SD IDOK + ${endif} + ${endif} + + # Macro to investigate name of FreeCAD's preferences folders to be able remove them + !insertmacro UnAppPreSuff $AppPre $AppSuff # macro from Utils.nsh + + # question message if the user really wants to uninstall FreeCAD + MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "$(UnReallyRemoveLabel)" /SD IDYES IDYES +2 # continue if yes + Abort + +FunctionEnd diff --git a/src/WindowsInstaller/include/utils.nsh b/src/WindowsInstaller/include/utils.nsh new file mode 100644 index 0000000000..98b868352a --- /dev/null +++ b/src/WindowsInstaller/include/utils.nsh @@ -0,0 +1,268 @@ +# This script contains the following functions: +# +# - un.DelAppPathSub and UnAppPreSuff, +# (delete the folder ~\Documents and Settings\username\Application Data\FreeCAD for all users), uses: +# un.GetParentA +# un.GetUsers +# un.StrPoint +# StrPointer +# StrPoint +# UnAppPreSuff +# +# - FileCheck (checks if a given file exists) +# +#-------------------------- + +!macro StrPointer FindStr SearchStr Pointer + # searches for a string/character (SearchStr) in another string (FindStr) + # and returns the number of the character in the FindStr where the SearchStr was found (Pointer) + # if nothing was found or the search is impossible the Pointer is set to -1 + + StrLen $R2 ${SearchStr} + StrLen $R4 ${FindStr} + StrCpy $R5 0 + ${if} $R2 == 0 + ${orif} $R4 == 0 + Goto NotFound + ${endif} + IntCmp $R4 $R2 loopA NotFound + loopA: + StrCpy $R3 ${FindStr} $R2 $R5 + StrCmp $R3 ${SearchStr} Found + IntOp $R5 $R5 + 1 + IntCmp $R4 $R5 loopA NotFound + Goto loopA + Found: + StrCpy ${Pointer} $R5 + Goto done + NotFound: + StrCpy ${Pointer} "-1" + done: + +!macroend + +#-------------------------------- + +Function StrPoint + !insertmacro StrPointer $String $Search $Pointer +FunctionEnd + +#-------------------------------- + +!macro RevStrPointer FindStr SearchStr Pointer + # searches for a string/character (SearchStr) in another string (FindStr) in reverse order + # and returns the number of the character in the FindStr where the SearchStr was found (Pointer) + # if nothing was found or the search is impossible the Pointer is set to +1 + + StrLen $R2 ${SearchStr} + StrLen $R4 ${FindStr} + ${if} $R2 == 0 + ${orif} $R4 == 0 + Goto NotFound + ${endif} + IntCmp $R4 $R2 loopA NotFound + StrCpy $R5 "-$R2" + loopA: + StrCpy $R3 ${FindStr} $R2 $R5 + StrCmp $R3 ${SearchStr} Found + IntOp $R5 $R5 - 1 + IntCmp "$R5" "-$R4" loopA NotFound + Goto loopA + Found: + StrCpy ${Pointer} $R5 + Goto done + NotFound: + StrCpy ${Pointer} "+1" + done: + +!macroend + +#-------------------------------- + +!macro AppPreSuff AppPre AppSuff + # the APPDATA path for a local user has for WinXP and 2000 the following structure: + # C:\Documents and Settings\username\Application Data + # for Win Vista the structure is: + # C:\Users\username\AppData\Roaming + # this macro saves the "C:\Documents and Settings\" substring into the variable "AppPre" + # and the "Application Data" substring into the variable "AppSuff" + + # switch temporarily to local user because the all users application data path is in + # Vista only C:\ProgramData + SetShellVarContext current + StrCpy $String "$APPDATA" + Var /GLOBAL APPDATemp + StrCpy $APPDATemp "$APPDATA" + ${If} $MultiUser.Privileges == "Admin" + ${OrIf} $MultiUser.Privileges == "Power" + SetShellVarContext all # move back to all users + ${endif} + StrCpy $Search "\" + Call StrPoint # search for the first "\" + IntOp $Pointer $Pointer + 1 # jump after the "\" + StrCpy $String $String "" $Pointer # cut off the part before the first "\" + StrCpy $0 $Pointer + Call StrPoint # search for the second "\" + IntOp $0 $0 + $Pointer # $0 is now the pointer to the second "\" in the APPDATA string + StrCpy ${AppPre} $APPDATemp $0 # save the part before the second "\" + IntOp $Pointer $Pointer + 1 # jump after the "\" + StrCpy $String $String "" $Pointer # cut off the part before the second "\" + Call StrPoint # search for the third "\" + IntOp $Pointer $Pointer + 1 # jump after the "\" + StrCpy ${AppSuff} $String "" $Pointer # save the part after the third "\" + +!macroend + +#-------------------------------- + +Function un.GetParentA + # deletes a subfolder of the APPDATA path for all users + # used by the function "un.getUsers" + + Exch $R0 + Push $R1 + Push $R2 + Push $R3 + StrCpy $R1 0 + StrLen $R2 $R0 + loop: + IntOp $R1 $R1 + 1 + IntCmp $R1 $R2 get 0 get + StrCpy $R3 $R0 1 -$R1 + StrCmp $R3 "\" get + Goto loop + get: + StrCpy $R0 $R0 -$R1 + Pop $R3 + Pop $R2 + Pop $R1 + Exch $R0 + +FunctionEnd + +#-------------------------------- + +Function un.GetUsers + # reads the subfolders of the "Documents and Settings" folder to get a list of the users + + StrCpy $R3 "" + Push "$PROFILE" + Call un.GetParentA + Pop $R2 + StrCpy $R2 "$R2" + FindFirst $R0 $R1 "$R2\*" + StrCmp $R1 "" findend 0 + findloop: + IfFileExists "$R2\$R1\*.*" 0 notDir + StrCmp $R1 "." notDir + StrCmp $R1 ".." notDir + StrCmp $R1 "All Users" notDir + StrCmp $R1 "Default User" notDir + StrCmp $R1 "All Users.WINNT" notDir + StrCmp $R1 "Default User.WINNT" notDir + StrCpy $R3 "$R3|$R1" + notDir: + FindNext $R0 $R1 + StrCmp $R1 "" findend 0 + Goto findloop + findend: + FindClose $R0 + +FunctionEnd + +#-------------------------------- + +Function un.StrPoint + !insertmacro StrPointer $String $Search $Pointer +FunctionEnd + +#-------------------------------- + +!macro UnAppPreSuff AppPre AppSuff + # the APPDATA path for a local user has for WinXP and 2000 the following structure: + # C:\Documents and Settings\username\Application Data + # for Win Vista the structure is: + # C:\Users\username\AppData\Roaming + # this macro saves the "C:\Documents and Settings\" substring into the variable "AppPre" + # and the "Application Data" substring into the variable "AppSuff" + + SetShellVarContext current # switch temoprarily to local user + StrCpy $String "$APPDATA" + StrCpy $APPDATemp "$APPDATA" + ${if} $MultiUser.Privileges == "Admin" + ${orif} $MultiUser.Privileges == "Power" + SetShellVarContext all # move back to all users + ${endif} + StrCpy $Search "\" + Call un.StrPoint # search for the first "\" + IntOp $Pointer $Pointer + 1 # jump after the "\" + StrCpy $String $String "" $Pointer # cut off the part before the first "\" + StrCpy $0 $Pointer + Call un.StrPoint # search for the second "\" + IntOp $0 $0 + $Pointer # $0 is now the pointer to the second "\" in the APPDATA string + StrCpy ${AppPre} $APPDATemp $0 # save the part before the second "\" + IntOp $Pointer $Pointer + 1 # jump after the "\" + StrCpy $String $String "" $Pointer # cut off the part before the second "\" + Call un.StrPoint # search for the third "\" + IntOp $Pointer $Pointer + 1 # jump after the "\" + StrCpy ${AppSuff} $String "" $Pointer # save the part after the third "\" + +!macroend + +#-------------------------------- + +Function un.DelAppPathSub + # deletes a subfolder of the APPDATA path for all users + + # get list of all users + Push $R0 + Push $R1 + Push $R2 + Push $R3 + Call un.GetUsers + StrCpy $UserList $R3 "" 1 # cut off the "|" at the end of the list + Pop $R3 + Pop $R2 + Pop $R1 + Pop $R0 + + # the usernames in the list of all users is separated by "|" + loop: + StrCpy $String "$UserList" + StrCpy $Search "|" + Call un.StrPoint # search for the "|" + StrCmp $Pointer "-1" ready + StrCpy $0 $UserList $Pointer # $0 contains now the username + IntOp $Pointer $Pointer + 1 # jump after the "|" + StrCpy $UserList $UserList "" $Pointer # cut off the first username in the list + # generate the string for the current user + # AppPre and AppSuff are generated in the macro "AppPreSuff" + RMDir /r "$AppPre\$0\$AppSuff\$AppSubfolder" # delete the folder + Goto loop + ready: + StrCpy $0 $UserList + RMDir /r "$AppPre\$0\$AppSuff\$AppSubfolder" # delete the folder + +FunctionEnd + +#-------------------------------- + +!macro FileCheck Result FileName FilePath + # checks if a file exists, returns "True" or "False" + + Push $0 + Push $1 + StrCpy $0 "" + StrCpy $1 "" + FileOpen $0 "${FilePath}\${FileName}" r + ${if} $0 = "" + StrCpy $1 "False" + ${Else} + StrCpy $1 "True" + ${endif} + FileClose $0 + StrCpy ${Result} $1 + Pop $1 + Pop $0 + +!macroend diff --git a/src/WindowsInstaller/information/ISO_3166.html b/src/WindowsInstaller/information/ISO_3166.html new file mode 100644 index 0000000000..d43871987c --- /dev/null +++ b/src/WindowsInstaller/information/ISO_3166.html @@ -0,0 +1,260 @@ +ISO 3166 Codes (Countries) + +

ISO 3166 Codes (Countries)

+ +Updated by the RIPE Network Coordination Centre, in coordination with +the ISO 3166 Maintenance Agency, Berlin +

+See also: + +

    +
  • ISO 3166 +Maintenance agency (ISO 3166/MA) +
  • Country codes in ISO 3166 + +

    + +

    Country                                         A 2     A 3     Number
    +----------------------------------------------------------------------
    +AFGHANISTAN                                     AF      AFG     004
    +ALBANIA                                         AL      ALB     008
    +ALGERIA                                         DZ      DZA     012
    +AMERICAN SAMOA                                  AS      ASM     016
    +ANDORRA                                         AD      AND     020
    +ANGOLA                                          AO      AGO     024
    +ANGUILLA                                        AI      AIA     660
    +ANTARCTICA                                      AQ      ATA     010
    +ANTIGUA AND BARBUDA                             AG      ATG     028
    +ARGENTINA                                       AR      ARG     032
    +ARMENIA                                         AM      ARM     051  
    +ARUBA                                           AW      ABW     533
    +AUSTRALIA                                       AU      AUS     036
    +AUSTRIA                                         AT      AUT     040
    +AZERBAIJAN                                      AZ      AZE     031  
    +BAHAMAS                                         BS      BHS     044
    +BAHRAIN                                         BH      BHR     048
    +BANGLADESH                                      BD      BGD     050
    +BARBADOS                                        BB      BRB     052
    +BELARUS                                         BY      BLR     112  
    +BELGIUM                                         BE      BEL     056
    +BELIZE                                          BZ      BLZ     084
    +BENIN                                           BJ      BEN     204
    +BERMUDA                                         BM      BMU     060
    +BHUTAN                                          BT      BTN     064
    +BOLIVIA                                         BO      BOL     068
    +BOSNIA AND HERZEGOWINA                          BA      BIH     070
    +BOTSWANA                                        BW      BWA     072
    +BOUVET ISLAND                                   BV      BVT     074
    +BRAZIL                                          BR      BRA     076
    +BRITISH INDIAN OCEAN TERRITORY                  IO      IOT     086
    +BRUNEI DARUSSALAM                               BN      BRN     096
    +BULGARIA                                        BG      BGR     100
    +BURKINA FASO                                    BF      BFA     854
    +BURUNDI                                         BI      BDI     108
    +CAMBODIA                                        KH      KHM     116
    +CAMEROON                                        CM      CMR     120
    +CANADA                                          CA      CAN     124
    +CAPE VERDE                                      CV      CPV     132
    +CAYMAN ISLANDS                                  KY      CYM     136
    +CENTRAL AFRICAN REPUBLIC                        CF      CAF     140
    +CHAD                                            TD      TCD     148
    +CHILE                                           CL      CHL     152
    +CHINA                                           CN      CHN     156
    +CHRISTMAS ISLAND                                CX      CXR     162
    +COCOS (KEELING) ISLANDS                         CC      CCK     166
    +COLOMBIA                                        CO      COL     170
    +COMOROS                                         KM      COM     174
    +CONGO, Democratic Republic of (was Zaire)       CD      COD     180
    +CONGO, People's Republic of                     CG      COG     178
    +COOK ISLANDS                                    CK      COK     184
    +COSTA RICA                                      CR      CRI     188
    +COTE D'IVOIRE                                   CI      CIV     384
    +CROATIA (local name: Hrvatska)                  HR      HRV     191      
    +CUBA                                            CU      CUB     192
    +CYPRUS                                          CY      CYP     196
    +CZECH REPUBLIC                                  CZ      CZE     203  
    +DENMARK                                         DK      DNK     208
    +DJIBOUTI                                        DJ      DJI     262
    +DOMINICA                                        DM      DMA     212
    +DOMINICAN REPUBLIC                              DO      DOM     214
    +EAST TIMOR                                      TL      TLS     626
    +ECUADOR                                         EC      ECU     218
    +EGYPT                                           EG      EGY     818
    +EL SALVADOR                                     SV      SLV     222
    +EQUATORIAL GUINEA                               GQ      GNQ     226
    +ERITREA                                         ER      ERI     232
    +ESTONIA                                         EE      EST     233  
    +ETHIOPIA                                        ET      ETH     231
    +FALKLAND ISLANDS (MALVINAS)                     FK      FLK     238
    +FAROE ISLANDS                                   FO      FRO     234
    +FIJI                                            FJ      FJI     242
    +FINLAND                                         FI      FIN     246
    +FRANCE                                          FR      FRA     250
    +FRANCE, METROPOLITAN                            FX      FXX     249  
    +FRENCH GUIANA                                   GF      GUF     254
    +FRENCH POLYNESIA                                PF      PYF     258
    +FRENCH SOUTHERN TERRITORIES                     TF      ATF     260
    +GABON                                           GA      GAB     266
    +GAMBIA                                          GM      GMB     270
    +GEORGIA                                         GE      GEO     268  
    +GERMANY                                         DE      DEU     276
    +GHANA                                           GH      GHA     288
    +GIBRALTAR                                       GI      GIB     292
    +GREECE                                          GR      GRC     300
    +GREENLAND                                       GL      GRL     304
    +GRENADA                                         GD      GRD     308
    +GUADELOUPE                                      GP      GLP     312
    +GUAM                                            GU      GUM     316
    +GUATEMALA                                       GT      GTM     320
    +GUINEA                                          GN      GIN     324
    +GUINEA-BISSAU                                   GW      GNB     624
    +GUYANA                                          GY      GUY     328
    +HAITI                                           HT      HTI     332
    +HEARD AND MC DONALD ISLANDS                     HM      HMD     334
    +HONDURAS                                        HN      HND     340
    +HONG KONG                                       HK      HKG     344
    +HUNGARY                                         HU      HUN     348
    +ICELAND                                         IS      ISL     352
    +INDIA                                           IN      IND     356
    +INDONESIA                                       ID      IDN     360
    +IRAN (ISLAMIC REPUBLIC OF)                      IR      IRN     364
    +IRAQ                                            IQ      IRQ     368
    +IRELAND                                         IE      IRL     372
    +ISRAEL                                          IL      ISR     376
    +ITALY                                           IT      ITA     380
    +JAMAICA                                         JM      JAM     388
    +JAPAN                                           JP      JPN     392
    +JORDAN                                          JO      JOR     400
    +KAZAKHSTAN                                      KZ      KAZ     398  
    +KENYA                                           KE      KEN     404
    +KIRIBATI                                        KI      KIR     296
    +KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF          KP      PRK     408
    +KOREA, REPUBLIC OF                              KR      KOR     410
    +KUWAIT                                          KW      KWT     414
    +KYRGYZSTAN                                      KG      KGZ     417  
    +LAO PEOPLE'S DEMOCRATIC REPUBLIC                LA      LAO     418
    +LATVIA                                          LV      LVA     428  
    +LEBANON                                         LB      LBN     422
    +LESOTHO                                         LS      LSO     426
    +LIBERIA                                         LR      LBR     430
    +LIBYAN ARAB JAMAHIRIYA                          LY      LBY     434
    +LIECHTENSTEIN                                   LI      LIE     438
    +LITHUANIA                                       LT      LTU     440  
    +LUXEMBOURG                                      LU      LUX     442
    +MACAU                                           MO      MAC     446
    +MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF      MK      MKD     807 
    +MADAGASCAR                                      MG      MDG     450
    +MALAWI                                          MW      MWI     454
    +MALAYSIA                                        MY      MYS     458
    +MALDIVES                                        MV      MDV     462
    +MALI                                            ML      MLI     466
    +MALTA                                           MT      MLT     470
    +MARSHALL ISLANDS                                MH      MHL     584
    +MARTINIQUE                                      MQ      MTQ     474
    +MAURITANIA                                      MR      MRT     478
    +MAURITIUS                                       MU      MUS     480
    +MAYOTTE                                         YT      MYT     175  
    +MEXICO                                          MX      MEX     484
    +MICRONESIA, FEDERATED STATES OF                 FM      FSM     583
    +MOLDOVA, REPUBLIC OF                            MD      MDA     498  
    +MONACO                                          MC      MCO     492
    +MONGOLIA                                        MN      MNG     496
    +MONTSERRAT                                      MS      MSR     500
    +MOROCCO                                         MA      MAR     504
    +MOZAMBIQUE                                      MZ      MOZ     508
    +MYANMAR                                         MM      MMR     104
    +NAMIBIA                                         NA      NAM     516
    +NAURU                                           NR      NRU     520
    +NEPAL                                           NP      NPL     524
    +NETHERLANDS                                     NL      NLD     528
    +NETHERLANDS ANTILLES                            AN      ANT     530
    +NEW CALEDONIA                                   NC      NCL     540
    +NEW ZEALAND                                     NZ      NZL     554
    +NICARAGUA                                       NI      NIC     558
    +NIGER                                           NE      NER     562
    +NIGERIA                                         NG      NGA     566
    +NIUE                                            NU      NIU     570
    +NORFOLK ISLAND                                  NF      NFK     574
    +NORTHERN MARIANA ISLANDS                        MP      MNP     580
    +NORWAY                                          NO      NOR     578
    +OMAN                                            OM      OMN     512
    +PAKISTAN                                        PK      PAK     586
    +PALAU                                           PW      PLW     585
    +PALESTINIAN TERRITORY, Occupied                 PS      PSE     275
    +PANAMA                                          PA      PAN     591
    +PAPUA NEW GUINEA                                PG      PNG     598
    +PARAGUAY                                        PY      PRY     600
    +PERU                                            PE      PER     604
    +PHILIPPINES                                     PH      PHL     608
    +PITCAIRN                                        PN      PCN     612
    +POLAND                                          PL      POL     616
    +PORTUGAL                                        PT      PRT     620
    +PUERTO RICO                                     PR      PRI     630
    +QATAR                                           QA      QAT     634
    +REUNION                                         RE      REU     638
    +ROMANIA                                         RO      ROU     642
    +RUSSIAN FEDERATION                              RU      RUS     643
    +RWANDA                                          RW      RWA     646
    +SAINT KITTS AND NEVIS                           KN      KNA     659
    +SAINT LUCIA                                     LC      LCA     662
    +SAINT VINCENT AND THE GRENADINES                VC      VCT     670
    +SAMOA                                           WS      WSM     882
    +SAN MARINO                                      SM      SMR     674
    +SAO TOME AND PRINCIPE                           ST      STP     678
    +SAUDI ARABIA                                    SA      SAU     682
    +SENEGAL                                         SN      SEN     686
    +SEYCHELLES                                      SC      SYC     690
    +SIERRA LEONE                                    SL      SLE     694
    +SINGAPORE                                       SG      SGP     702
    +SLOVAKIA (Slovak Republic)                      SK      SVK     703  
    +SLOVENIA                                        SI      SVN     705  
    +SOLOMON ISLANDS                                 SB      SLB     090
    +SOMALIA                                         SO      SOM     706
    +SOUTH AFRICA                                    ZA      ZAF     710
    +SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS    GS      SGS     239
    +SPAIN                                           ES      ESP     724
    +SRI LANKA                                       LK      LKA     144
    +ST. HELENA                                      SH      SHN     654
    +ST. PIERRE AND MIQUELON                         PM      SPM     666
    +SUDAN                                           SD      SDN     736
    +SURINAME                                        SR      SUR     740
    +SVALBARD AND JAN MAYEN ISLANDS                  SJ      SJM     744
    +SWAZILAND                                       SZ      SWZ     748
    +SWEDEN                                          SE      SWE     752
    +SWITZERLAND                                     CH      CHE     756
    +SYRIAN ARAB REPUBLIC                            SY      SYR     760
    +TAIWAN                                          TW      TWN     158
    +TAJIKISTAN                                      TJ      TJK     762  
    +TANZANIA, UNITED REPUBLIC OF                    TZ      TZA     834
    +THAILAND                                        TH      THA     764
    +TOGO                                            TG      TGO     768
    +TOKELAU                                         TK      TKL     772
    +TONGA                                           TO      TON     776
    +TRINIDAD AND TOBAGO                             TT      TTO     780
    +TUNISIA                                         TN      TUN     788
    +TURKEY                                          TR      TUR     792
    +TURKMENISTAN                                    TM      TKM     795  
    +TURKS AND CAICOS ISLANDS                        TC      TCA     796
    +TUVALU                                          TV      TUV     798
    +UGANDA                                          UG      UGA     800
    +UKRAINE                                         UA      UKR     804
    +UNITED ARAB EMIRATES                            AE      ARE     784
    +UNITED KINGDOM                                  GB      GBR     826
    +UNITED STATES                                   US      USA     840
    +UNITED STATES MINOR OUTLYING ISLANDS            UM      UMI     581
    +URUGUAY                                         UY      URY     858
    +UZBEKISTAN                                      UZ      UZB     860  
    +VANUATU                                         VU      VUT     548
    +VATICAN CITY STATE (HOLY SEE)                   VA      VAT     336
    +VENEZUELA                                       VE      VEN     862
    +VIET NAM                                        VN      VNM     704
    +VIRGIN ISLANDS (BRITISH)                        VG      VGB     092
    +VIRGIN ISLANDS (U.S.)                           VI      VIR     850
    +WALLIS AND FUTUNA ISLANDS                       WF      WLF     876
    +WESTERN SAHARA                                  EH      ESH     732
    +YEMEN                                           YE      YEM     887
    +YUGOSLAVIA                                      YU      YUG     891
    +ZAMBIA                                          ZM      ZMB     894
    +ZIMBABWE                                        ZW      ZWE     716
    +
    +
\ No newline at end of file diff --git a/src/WindowsInstaller/information/InstallerStructure.odg b/src/WindowsInstaller/information/InstallerStructure.odg new file mode 100644 index 0000000000000000000000000000000000000000..c24fa122022cad4159cc504e21becb2f7cc4451f GIT binary patch literal 16850 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 literal 0 HcmV?d00001 diff --git a/src/WindowsInstaller/information/InstallerStructure.pdf b/src/WindowsInstaller/information/InstallerStructure.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e783c8d827df406a5e94fc56d09bfbe1f6c3d7ad GIT binary patch literal 35017 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%0AT1t0CRhEZ1gEnhW?x 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 YawY-e?i<}I0wIY&fcW{9w3R{s2XglhAOHXW literal 0 HcmV?d00001 diff --git a/src/WindowsInstaller/information/WinLangCode.htm b/src/WindowsInstaller/information/WinLangCode.htm new file mode 100644 index 0000000000..21d89cb02e --- /dev/null +++ b/src/WindowsInstaller/information/WinLangCode.htm @@ -0,0 +1,580 @@ +Regional and Language Settings
Microsoft Office SharePoint Portal Server 2003
HomeBackForwardPrint

Regional and Language Settings

+ + + + + + +

This topic lists the regional and language settings you can specify +from the command line by using operations in Stsadm.exe and by using +HTML Administration pages. For more information about specifying +regional and language settings, see Language Considerations. For more information about the syntax for command-line operations, see Command-Line Operations. +

The following types of regional and language settings are used in Microsoft Windows SharePoint Services:

+ + +

Language IDs

The +Language ID determines the language used for text on pages in the Web +site (such as the text on the Site Settings page). The languages +available for site creation depend on the language template packs you +have installed to your server or server farm. Web sites based on +Windows SharePoint Services can be created in the following languages.

IDLanguage +IDLanguage +
1025Arabic +1041 +Japanese +
1028 +Chinese - Traditional +1042 +Korean
1029 +Czech1043Dutch +
1030 +Danish +1044 +Norwegian +
1031 +German +1045 +Polish +
1032 +Greek +1046 +Portuguese - Brazilian +
1033 +English +1049 +Russian +
1034 +Spanish +1053 +Swedish +
1035 +Finnish +1054 +Thai +
1036 +French +1055 +Turkish +
1037 +Hebrew +2052 +Chinese - Simplified +
1038 +Hungarian +2070 +Portuguese +
1040 +Italian +3076Chinese - Hong Kong

Windows SharePoint Services also supports input and display of text in the following languages, but not site creation.

IDLanguage +IDLanguage +
1026Bulgarian1048Romanian
1050Croatian +2074Serbian
1061Estonian +1051Slovak
1081Hindi with Indic PT1060Slovenian
1062Latvian1058Ukrainian
1063Lithuanian

Locale IDs

The +Locale ID controls the numbering, sorting, calendar, and time +formatting for the Web site. You can change the locale for a Web site +by using the Regional Settings page. Web sites based on Windows +SharePoint Services can be set to the following Locale IDs.

IDLocaleIDLocale
1078Afrikaans +1037 +Hebrew +
1052 +Albanian +1081 +Hindi +
5121 +Arabic (Algeria) +1038 +Hungarian +
15361 +Arabic (Bahrain) +1039 +Icelandic +
3073 +Arabic (Egypt) +1057 +Indonesian +
2049 +Arabic (Iraq) +1040 +Italian (Italy) +
11265 +Arabic (Jordan) +2064 +Italian (Switzerland) +
13313 +Arabic (Kuwait) +1041 +Japanese +
12289 +Arabic (Lebanon) +1099 +Kannada +
4097 +Arabic (Libya) +1087 +Kazakh +
6145 +Arabic (Morocco) +1111 +Konkani +
8193 +Arabic (Oman) +1042 +Korean +
16385 +Arabic (Qatar) +1088 +Kyrgyz (Cyrillic) +
1025 +Arabic (Saudi Arabia) +1062Latvian +
10241 +Arabic (Syria) +1063 +Lithuanian +
7169 +Arabic (Tunisia) +1071 +Macedonian (FYROM) +
14337 +Arabic (U.A.E.) +2110 +Malay (Brunei Darussalam) +
9217 +Arabic (Yemen) +1086 +Malay (Malaysia) +
1067 +Armenian +1102 +Marathi +
2092 +Azeri (Cyrillic) +1104 +Mongolian (Cyrillic) +
1068 +Azeri (Latin) +1044 +Norwegian (Bokmal) +
1069 +Basque +2068 +Norwegian (Nynorsk) +
1059 +Belarusian +1045 +Polish +
1026 +Bulgarian +1046 +Portuguese (Brazil) +
1027 +Catalan +2070 +Portuguese (Portugal) +
3076 +Chinese (Hong Kong) +1094 +Punjabi +
5124 +Chinese (Macau) +1048 +Romanian +
2052 +Chinese (PRC) +1049 +Russian +
4100 +Chinese (Singapore) +1103 +Sanskrit +
1028 +Chinese (Taiwan) +3098 +Serbian (Cyrillic) +
1050 +Croatian +2074 +Serbian (Latin) +
1029 +Czech +1051 +Slovak +
1030 +Danish +1060 +Slovenian +
1125 +Divehi +11274 +Spanish (Argentina) +
2067 +Dutch (Belgium) +16394 +Spanish (Bolivia) +
1043 +Dutch (Netherlands) +13322 +Spanish (Chile) +
3081 +English (Australia) +9226 +Spanish (Colombia) +
10249 +English (Belize) +5130 +Spanish (Costa Rica) +
4105 +English (Canada) +7178 +Spanish (Dominican Republic) +
9225 +English (Caribbean) +12298 +Spanish (Ecuador) +
6153 +English (Ireland) +17418 +Spanish (El Salvador) +
8201 +English (Jamaica) +4106Spanish (Guatemala) +
5129 +English (New Zealand) +18442 +Spanish (Honduras) +
13321 +English (Philippines) +2058 +Spanish (Mexico) +
7177 +English (South Africa) +19466 +Spanish (Nicaragua) +
11273 +English (Trinidad) +6154 +Spanish (Panama) +
2057 +English (United Kingdom) +15370 +Spanish (Paraguay) +
1033 +English (United States)   +10250 +Spanish (Peru) +
12297 +English (Zimbabwe) +20490 +Spanish (Puerto Rico) +
1061 +Estonian +3082 +Spanish (Spain) +
1080 +Faeroese +1034 +Spanish (Traditional) +
1065 +Farsi +14346 +Spanish (Uruguay) +
1035 +Finnish +8202 +Spanish (Venezuela) +
2060 +French (Belgium) +1089 +Swahili +
3084 +French (Canada) +1053 +Swedish +
1036 +French (France) +2077 +Swedish (Finland) +
5132 +French (Luxembourg) +1114 +Syriac +
6156 +French (Monaco) +1097 +Tamil +
4108 +French (Switzerland) +1092 +Tatar +
1110 +Galician +1098 +Telugu +
1079 +Georgian +1054 +Thai +
3079 +German (Austria) +1055 +Turkish +
1031 +German (Germany) +1058 +Ukrainian +
5127 +German (Liechtenstein) +1056 +Urdu +
4103 +German (Luxembourg) +2115 +Uzbek (Cyrillic) +
2055 +German (Switzerland) +1091 +Uzbek (Latin) +
1032 +Greek +1066 +Vietnamese +
1095 +Gujarati +

Time Zones

Web +sites based on Windows SharePoint Services can be set to any of the +time zones recognized by Microsoft Windows Server 2003.

Code +Time zoneCodeTime zone
39(GMT-12:00) Eniwetok, Kwajalein59(GMT+02:00) Helsinki, Riga, Tallinn +
16(GMT-11:00) Midway Island, Samoa +27(GMT+02:00) Jerusalem 26 (GMT+03:00) Baghdad +
15(GMT-10:00) Hawaii +74(GMT+03:00) Kuwait, Riyadh +
14(GMT-09:00) Alaska +51(GMT+03:00) Moscow, St. Petersburg, Volgograd +
13(GMT-08:00) Pacific Time (US and Canada); Tijuana +56(GMT+03:00) Nairobi +
38(GMT-07:00) Arizona +25(GMT+03:30) Tehran
12(GMT-07:00) Mountain Time (US and Canada) +24(GMT+04:00) Abu Dhabi, Muscat +
55(GMT-06:00) Central America +54(GMT+04:00) Baku, Tbilisi, Yerevan 48 (GMT+04:30) Kabul +
11(GMT-06:00) Central Time (US and Canada) +58(GMT+05:00) Ekaterinburg +
37(GMT-06:00) Mexico City +47 +(GMT+05:00) Islamabad, Karachi, Tashkent +
36(GMT-06:00) Saskatchewan +23(GMT+05:30) Calcutta, Chennai, Mumbai, New Delhi +
35(GMT-05:00) Bogota, Lima, Quito +62(GMT+05:45) Kathmandu 46 (GMT+06:00) Almaty, Novosibirsk +
10(GMT-05:00) Eastern Time (US and Canada) +71(GMT+06:00) Astana, Dhaka +
34 +(GMT-05:00) Indiana (East) +66(GMT+06:00) Sri Jayawardenepura +
9 +(GMT-04:00) Atlantic Time (Canada) +61(GMT+06:30) Rangoon +
33(GMT-04:00) Caracas, La Paz +22(GMT+07:00) Bangkok, Hanoi, Jakarta +
65(GMT-04:00) Santiago +64(GMT+07:00) Krasnoyarsk +
28(GMT-03:30) Newfoundland 8 (GMT-03:00) Brasilia +45(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi +
32(GMT-03:00) Buenos Aires, Georgetown +63(GMT+08:00) Irkutsk, Ulaan Bataar +
60(GMT-03:00) Greenland +21(GMT+08:00) Kuala Lumpur, Singapore +
30(GMT-02:00) Mid-Atlantic +73(GMT+08:00) Perth 75 (GMT+08:00) Taipei +
29(GMT-01:00) Azores +20(GMT+09:00) Osaka, Sapporo, Tokyo 72 (GMT+09:00) Seoul +
53(GMT-01:00) Cape Verde Is.70(GMT+09:00) Yakutsk 19 (GMT+09:30) Adelaide +
31(GMT) Casablanca, Monrovia +44(GMT+09:30) Darwin +
2(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London +18(GMT+10:00) Brisbane +
4(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna +76(GMT+10:00) Canberra, Melbourne, Sydney +
6(GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague +43(GMT+10:00) Guam, Port Moresby +
3(GMT+01:00) Brussels, Copenhagen, Madrid, Paris +42(GMT+10:00) Hobart
57(GMT+01:00) Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb +68(GMT+10:00) Vladivostok +
69(GMT+01:00) West Central Africa +41(GMT+11:00) Magadan, Solomon Is., New Caledonia +
7(GMT+02:00) Athens, Istanbul, Minsk +17(GMT+12:00) Auckland, Wellington +
5(GMT+02:00) Bucharest40 +(GMT+12:00) Fiji, Kamchatka, Marshall Is. +
49 +(GMT+02:00) Cairo +67 +(GMT+13:00) Nuku'alofa +
50 +(GMT+02:00) Harare, Pretoria +

Currency IDs

Web sites based on Windows SharePoint Services can be set to use the following currencies. +

IDCurrency +IDCurrency +
51211,254 .ج.د (Arabic-Algeria) +4106 +Q1,254 (Guatemala) +
15361 +1,254 .ب.د (Arabic-Bahrain) +18442 +L. 1254 (Honduras) +
3073 +1,254 .م.ج (Arabic-Egypt)3076 +HK$1,254 (Hong Kong) +
2049 +1,254 .ع.د (Arabic-Iraq) +1038 +1 254 Ft (Hungary) +
11265 +1,254 .ا.د (Arabic-Jordan) +1081 +रु 1,254 (India) +
13313 +1,254 .ك.د (Arabic-Kuwait) +6153 +IR£1,254 (Ireland) +
12289 +1,254 .ل.ل (Arabic-Lebanon) +1037 +₪1,254 (Israel) +
4097 +1,254 .ل.د (Arabic-Libya) +1041 +¥1,254 (Japan) +
6145 +1,254 .م.د (Arabic-Morocco) +1042 +₩1,254 (Korea) +
8193 +1,254 .ع.ر (Arabic-Oman) +2058 +$1,254 (Mexico) +
16385 +1,254 .ق.ر (Arabic-Qatar) +5129 +$1,254 (New Zealand) +
1025 +1,254 .س.ر (Arabic-Saudi Arabia) +19466 +C$ 1254 (Nicaragua) +
10241 +1,254 .س.ل (Arabic-Syria) +1044 +kr 1 254 (Norway) +
7169 +1,254 .ت.د (Arabic-Tunisia) +1056 +Rs 1,254 (Pakistan) +
14337 +1,254 .إ.د (Arabic-U.A.E) +6154 +B/. 1,254 (Panama) +
9217 +1,254 .ي.ر (Arabic-Yemen) +15370 +Gs 1.254 (Paraguay) +
11274 +$ 1.254 (Argentina) +2052 +¥1,254 (People's Republic of China) +
3081 +$1,254 (Australia) +10250 +S/. 1,254 (Peru) +
3079 +öS 1.254 (Austria) +1045 +1 254 zł (Poland) +
16394 +$b 1.254 (Bolivia) +1049 +1 254р. (Russia) +
1046 +R$ 1.254 (Brazil) +4100 +$1,254 (Singapore) +
3084 +1 254 $ (Canada) +1051 +1 254 Sk (Slovakia) +
4105 +$1,254 (Canada) +1060 +1.254 SIT (Slovenia) +
13322 +$ 1.254 (Chile) +7177 +R 1,254 (South Africa) +
9226 +$ 1.254 (Colombia) +1053 +1.254 kr (Sweden) +
5130 +C1.254 (Costa Rica) +2055 +SFr. 1'254 (Switzerland) +
1029 +1 254 Kč (Czech Republic) +1028 +NT$1,254 (Taiwan) +
1030 +kr 1.254 (Denmark) +1054 +฿1,254 (Thai) +
7178 +RD$1,254 (Dominican Republic) +1055 +1.254 TL (Turkey) +
17418 +C1254 (El Salvador) +2057 +£1,254 (United Kingdom) +
-2 +1,254 € (European Union) +1033 +$1,254 (United States) +
-1 +€ 1,254 (European Union) +14346 +$U 1.254 (Uruguay) +
1065 +1,254 ريال (Farsi) +8202 +Bs 1.254 (Venezuela) +
1032 +1.254 Δρχ (Greece) +1066 +1,254 ₫ (Vietnamese) +
©2003 Microsoft Corporation. All rights reserved.
\ No newline at end of file diff --git a/src/WindowsInstaller/information/iso639.htm b/src/WindowsInstaller/information/iso639.htm new file mode 100644 index 0000000000..d44be797a2 --- /dev/null +++ b/src/WindowsInstaller/information/iso639.htm @@ -0,0 +1,554 @@ + +ISO 639 Language Codes + + + + +

ISO 639 Language Codes

+

ISO 639: 3-letter codes

+
abk      ab    Abkhazian
+ace            Achinese
+ach            Acoli
+ada            Adangme
+aar      aa    Afar
+afh            Afrihili
+afr      af    Afrikaans
+afa            Afro-Asiatic (Other)
+aka            Akan
+akk            Akkadian
+alb/sqi  sq    Albanian
+ale            Aleut
+alg            Algonquian languages
+tut            Altaic (Other)
+amh      am    Amharic
+apa            Apache languages
+ara      ar    Arabic
+arc            Aramaic
+arp            Arapaho
+arn            Araucanian
+arw            Arawak
+arm/hye  hy    Armenian
+art            Artificial (Other)
+asm      as    Assamese
+ath            Athapascan languages
+map            Austronesian (Other)
+ava            Avaric
+ave            Avestan
+awa            Awadhi
+aym      ay    Aymara
+aze      az    Azerbaijani
+nah            Aztec
+ban            Balinese
+bat            Baltic (Other)
+bal            Baluchi
+bam            Bambara
+bai            Bamileke languages
+bad            Banda
+bnt            Bantu (Other)
+bas            Basa
+bak      ba    Bashkir
+baq/eus  eu    Basque
+bej            Beja
+bem            Bemba
+ben      bn    Bengali
+ber            Berber (Other)
+bho            Bhojpuri
+bih      bh    Bihari
+bik            Bikol
+bin            Bini
+bis      bi    Bislama
+bra            Braj
+bre      be    Breton
+bug            Buginese
+bul      bg    Bulgarian
+bua            Buriat
+bur/mya  my    Burmese
+bel      be    Byelorussian
+cad            Caddo
+car            Carib
+cat      ca    Catalan
+cau            Caucasian (Other)
+ceb            Cebuano
+cel            Celtic (Other)
+cai            Central American Indian (Other)
+chg            Chagatai
+cha            Chamorro
+che            Chechen
+chr            Cherokee
+chy            Cheyenne
+chb            Chibcha
+chi/zho  zh    Chinese
+chn            Chinook jargon
+cho            Choctaw
+chu            Church Slavic
+chv            Chuvash
+cop            Coptic
+cor            Cornish
+cos      co    Corsican
+cre            Cree
+mus            Creek
+crp            Creoles and Pidgins (Other)
+cpe            Creoles and Pidgins, English-based (Other)
+cpf            Creoles and Pidgins, French-based (Other)
+cpp            Creoles and Pidgins, Portuguese-based (Other)
+cus            Cushitic (Other)
+         hr    Croatian
+ces/cze  cs    Czech
+dak            Dakota
+dan      da    Danish
+del            Delaware
+din            Dinka
+div            Divehi
+doi            Dogri
+dra            Dravidian (Other)
+dua            Duala
+dut/nla  nl    Dutch
+dum            Dutch, Middle (ca. 1050-1350)
+dyu            Dyula
+dzo      dz    Dzongkha
+efi            Efik
+egy            Egyptian (Ancient)
+eka            Ekajuk
+elx            Elamite
+eng      en    English
+enm            English, Middle (ca. 1100-1500)
+ang            English, Old (ca. 450-1100)
+esk            Eskimo (Other)
+epo      eo    Esperanto
+est      et    Estonian
+ewe            Ewe
+ewo            Ewondo
+fan            Fang
+fat            Fanti
+fao      fo    Faroese
+fij      fj    Fijian
+fin      fi    Finnish
+fiu            Finno-Ugrian (Other)
+fon            Fon
+fra/fre  fr    French
+frm            French, Middle (ca. 1400-1600)
+fro            French, Old (842- ca. 1400)
+fry      fy    Frisian
+ful            Fulah
+gaa            Ga
+gae/gdh  Gaelic (Scots)
+glg      gl    Gallegan
+lug            Ganda
+gay            Gayo
+gez            Geez
+geo/kat  ka    Georgian
+deu/ger  de    German
+gmh            German, Middle High (ca. 1050-1500)
+goh            German, Old High (ca. 750-1050)
+gem            Germanic (Other)
+gil            Gilbertese
+gon            Gondi
+got            Gothic
+grb            Grebo
+grc            Greek, Ancient (to 1453)
+ell/gre  el    Greek, Modern (1453-)
+kal      kl    Greenlandic
+grn      gn    Guarani
+guj      gu    Gujarati
+hai            Haida
+hau      ha    Hausa
+haw            Hawaiian
+heb      he    Hebrew
+her            Herero
+hil            Hiligaynon
+him            Himachali
+hin      hi    Hindi
+hmo            Hiri Motu
+hun      hu    Hungarian
+hup            Hupa
+iba            Iban
+ice/isl  is    Icelandic
+ibo            Igbo
+ijo            Ijo
+ilo            Iloko
+inc            Indic (Other)
+ine            Indo-European (Other)
+ind      id    Indonesian
+ina      ia    Interlingua (International Auxiliary language Association)
+ine      -     Interlingue
+iku      iu    Inuktitut
+ipk      ik    Inupiak
+ira            Iranian (Other)
+gai/iri  ga    Irish
+sga            Irish, Old (to 900)
+mga            Irish, Middle (900 - 1200)
+iro            Iroquoian languages
+ita      it    Italian
+jpn      ja    Japanese
+jav/jaw  jv/jw Javanese
+jrb            Judeo-Arabic
+jpr            Judeo-Persian
+kab            Kabyle
+kac            Kachin
+kam            Kamba
+kan      kn    Kannada
+kau            Kanuri
+kaa            Kara-Kalpak
+kar            Karen
+kas      ks    Kashmiri
+kaw            Kawi
+kaz      kk    Kazakh
+kha            Khasi
+khm      km    Khmer
+khi            Khoisan (Other)
+kho            Khotanese
+kik            Kikuyu
+kin      rw    Kinyarwanda
+kir      ky    Kirghiz
+kom            Komi
+kon            Kongo
+kok            Konkani
+kor      ko    Korean
+kpe            Kpelle
+kro            Kru
+kua            Kuanyama
+kum            Kumyk
+kur      ku    Kurdish
+kru            Kurukh
+kus            Kusaie
+kut            Kutenai
+lad            Ladino
+lah            Lahnda
+lam            Lamba
+oci      oc    Langue d'Oc (post 1500)
+lao      lo    Lao
+lat      la    Latin
+lav      lv    Latvian
+ltz            Letzeburgesch
+lez            Lezghian
+lin      ln    Lingala
+lit      lt    Lithuanian
+loz            Lozi
+lub            Luba-Katanga
+lui            Luiseno
+lun            Lunda
+luo            Luo (Kenya and Tanzania)
+mac/mak  mk    Macedonian
+mad            Madurese
+mag            Magahi
+mai            Maithili
+mak            Makasar
+mlg      mg    Malagasy
+may/msa  ms    Malay
+mal            Malayalam
+mlt      ml    Maltese
+man            Mandingo
+mni            Manipuri
+mno            Manobo languages
+max            Manx
+mao/mri  mi    Maori
+mar      mr    Marathi
+chm            Mari
+mah            Marshall
+mwr            Marwari
+mas            Masai
+myn            Mayan languages
+men            Mende
+mic            Micmac
+min            Minangkabau
+mis            Miscellaneous (Other)
+moh            Mohawk
+mol      mo    Moldavian
+mkh            Mon-Kmer (Other)
+lol            Mongo
+mon      mn    Mongolian
+mos            Mossi
+mul            Multiple languages
+mun            Munda languages
+nau      na    Nauru
+nav            Navajo
+nde            Ndebele, North
+nbl            Ndebele, South
+ndo            Ndongo
+nep      ne    Nepali
+new            Newari
+nic            Niger-Kordofanian (Other)
+ssa            Nilo-Saharan (Other)
+niu            Niuean
+non            Norse, Old
+nai            North American Indian (Other)
+nor      no    Norwegian
+nno            Norwegian (Nynorsk)
+nub            Nubian languages
+nym            Nyamwezi
+nya            Nyanja
+nyn            Nyankole
+nyo            Nyoro
+nzi            Nzima
+oji            Ojibwa
+ori      or    Oriya
+orm      om    Oromo
+osa            Osage
+oss            Ossetic
+oto            Otomian languages
+pal            Pahlavi
+pau            Palauan
+pli            Pali
+pam            Pampanga
+pag            Pangasinan
+pan      pa    Panjabi
+pap            Papiamento
+paa            Papuan-Australian (Other)
+fas/per  fa    Persian
+peo            Persian, Old (ca 600 - 400 B.C.)
+phn            Phoenician
+pol      pl    Polish
+pon            Ponape
+por      pt    Portuguese
+pra            Prakrit languages
+pro            Provencal, Old (to 1500)
+pus      ps    Pushto
+que      qu    Quechua
+roh      rm    Rhaeto-Romance
+raj            Rajasthani
+rar            Rarotongan
+roa            Romance (Other)
+ron/rum  ro    Romanian
+rom            Romany
+run      rn    Rundi
+rus      ru    Russian
+sal            Salishan languages
+sam            Samaritan Aramaic
+smi            Sami languages
+smo      sm    Samoan
+sad            Sandawe
+sag      sg    Sango
+san      sa    Sanskrit
+srd            Sardinian
+sco            Scots
+sel            Selkup
+sem            Semitic (Other)
+         sr    Serbian
+scr      sh    Serbo-Croatian
+srr            Serer
+shn            Shan
+sna      sn    Shona
+sid            Sidamo
+bla            Siksika
+snd      sd    Sindhi
+sin      si    Singhalese
+sit      -     Sino-Tibetan (Other)
+sio            Siouan languages
+sla            Slavic (Other)
+ssw      ss    Siswant
+slk/slo  sk    Slovak
+slv      sl    Slovenian
+sog            Sogdian
+som      so    Somali
+son            Songhai
+wen            Sorbian languages
+nso            Sotho, Northern
+sot      st    Sotho, Southern
+sai            South American Indian (Other)
+esl/spa  es    Spanish
+suk            Sukuma
+sux            Sumerian
+sun      su    Sudanese
+sus            Susu
+swa      sw    Swahili
+ssw            Swazi
+sve/swe  sv    Swedish
+syr            Syriac
+tgl      tl    Tagalog
+tah            Tahitian
+tgk      tg    Tajik
+tmh            Tamashek
+tam      ta    Tamil
+tat      tt    Tatar
+tel      te    Telugu
+ter            Tereno
+tha      th    Thai
+bod/tib  bo    Tibetan
+tig            Tigre
+tir      ti    Tigrinya
+tem            Timne
+tiv            Tivi
+tli            Tlingit
+tog      to    Tonga (Nyasa)
+ton            Tonga (Tonga Islands)
+tru            Truk
+tsi            Tsimshian
+tso      ts    Tsonga
+tsn      tn    Tswana
+tum            Tumbuka
+tur      tr    Turkish
+ota            Turkish, Ottoman (1500 - 1928)
+tuk      tk    Turkmen
+tyv            Tuvinian
+twi      tw    Twi
+uga            Ugaritic
+uig      ug    Uighur
+ukr      uk    Ukrainian
+umb            Umbundu
+und            Undetermined
+urd      ur    Urdu
+uzb      uz    Uzbek
+vai            Vai
+ven            Venda
+vie      vi    Vietnamese
+vol      vo    Volapk
+vot            Votic
+wak            Wakashan languages
+wal            Walamo
+war            Waray
+was            Washo
+cym/wel  cy    Welsh
+wol      wo    Wolof
+xho      xh    Xhosa
+sah            Yakut
+yao            Yao
+yap            Yap
+yid      yi    Yiddish
+yor      yo    Yoruba
+zap            Zapotec
+zen            Zenaga
+zha      za    Zhuang
+zul      zu    Zulu
+zun            Zuni
+
+

ISO 639: 2-letter codes

+
AA "Afar"
+AB "Abkhazian"
+AF "Afrikaans"
+AM "Amharic"
+AR "Arabic"
+AS "Assamese"
+AY "Aymara"
+AZ "Azerbaijani"
+BA "Bashkir"
+BE "Byelorussian"
+BG "Bulgarian"
+BH "Bihari"
+BI "Bislama"
+BN "Bengali" "Bangla"
+BO "Tibetan"
+BR "Breton"
+CA "Catalan"
+CO "Corsican"
+CS "Czech"
+CY "Welsh"
+DA "Danish"
+DE "German"
+DZ "Bhutani"
+EL "Greek"
+EN "English" "American"
+EO "Esperanto"
+ES "Spanish"
+ET "Estonian"
+EU "Basque"
+FA "Persian"
+FI "Finnish"
+FJ "Fiji"
+FO "Faeroese"
+FR "French"
+FY "Frisian"
+GA "Irish"
+GD "Gaelic" "Scots Gaelic"
+GL "Galician"
+GN "Guarani"
+GU "Gujarati"
+HA "Hausa"
+HI "Hindi"
+HR "Croatian"
+HU "Hungarian"
+HY "Armenian"
+IA "Interlingua"
+IE "Interlingue"
+IK "Inupiak"
+IN "Indonesian"
+IS "Icelandic"
+IT "Italian"
+IW "Hebrew"
+JA "Japanese"
+JI "Yiddish"
+JW "Javanese"
+KA "Georgian"
+KK "Kazakh"
+KL "Greenlandic"
+KM "Cambodian"
+KN "Kannada"
+KO "Korean"
+KS "Kashmiri"
+KU "Kurdish"
+KY "Kirghiz"
+LA "Latin"
+LN "Lingala"
+LO "Laothian"
+LT "Lithuanian"
+LV "Latvian" "Lettish"
+MG "Malagasy"
+MI "Maori"
+MK "Macedonian"
+ML "Malayalam"
+MN "Mongolian"
+MO "Moldavian"
+MR "Marathi"
+MS "Malay"
+MT "Maltese"
+MY "Burmese"
+NA "Nauru"
+NE "Nepali"
+NL "Dutch"
+NO "Norwegian"
+OC "Occitan"
+OM "Oromo" "Afan"
+OR "Oriya"
+PA "Punjabi"
+PL "Polish"
+PS "Pashto" "Pushto"
+PT "Portuguese"
+QU "Quechua"
+RM "Rhaeto-Romance"
+RN "Kirundi"
+RO "Romanian"
+RU "Russian"
+RW "Kinyarwanda"
+SA "Sanskrit"
+SD "Sindhi"
+SG "Sangro"
+SH "Serbo-Croatian"
+SI "Singhalese"
+SK "Slovak"
+SL "Slovenian"
+SM "Samoan"
+SN "Shona"
+SO "Somali"
+SQ "Albanian"
+SR "Serbian"
+SS "Siswati"
+ST "Sesotho"
+SU "Sudanese"
+SV "Swedish"
+SW "Swahili"
+TA "Tamil"
+TE "Tegulu"
+TG "Tajik"
+TH "Thai"
+TI "Tigrinya"
+TK "Turkmen"
+TL "Tagalog"
+TN "Setswana"
+TO "Tonga"
+TR "Turkish"
+TS "Tsonga"
+TT "Tatar"
+TW "Twi"
+UK "Ukrainian"
+UR "Urdu"
+UZ "Uzbek"
+VI "Vietnamese"
+VO "Volapuk"
+WO "Wolof"
+XH "Xhosa"
+YO "Yoruba"
+ZH "Chinese"
+ZU "Zulu"
+
+
+

Document Modified August 9, 1999

+ \ No newline at end of file diff --git a/src/WindowsInstaller/lang/TranslatedLanguages.nsh b/src/WindowsInstaller/lang/TranslatedLanguages.nsh new file mode 100644 index 0000000000..aabfa5223c --- /dev/null +++ b/src/WindowsInstaller/lang/TranslatedLanguages.nsh @@ -0,0 +1,33 @@ +!macro LANG LANG_NAME + # NSIS language file + !insertmacro MUI_LANGUAGE "${LANG_NAME}" + # FreeCAD language file + !insertmacro LANGFILE_INCLUDE_WITHDEFAULT "lang\${LANG_NAME}.nsh" "lang\english.nsh" +!macroend + +# list of all languages the installer is translated to +!insertmacro LANG "english" # first language is the default +!insertmacro LANG "arabic" +!insertmacro LANG "basque" +!insertmacro LANG "catalan" +!insertmacro LANG "czech" +!insertmacro LANG "danish" +!insertmacro LANG "dutch" +!insertmacro LANG "french" +!insertmacro LANG "german" +!insertmacro LANG "galician" +!insertmacro LANG "hungarian" +!insertmacro LANG "indonesian" +!insertmacro LANG "italian" +!insertmacro LANG "japanese" +!insertmacro LANG "norwegian" +!insertmacro LANG "polish" +!insertmacro LANG "portuguese" +!insertmacro LANG "portugueseBR" +!insertmacro LANG "romanian" +!insertmacro LANG "russian" +!insertmacro LANG "slovak" +!insertmacro LANG "spanish" +!insertmacro LANG "swedish" +!insertmacro LANG "turkish" +!insertmacro LANG "ukrainian" diff --git a/src/WindowsInstaller/lang/arabic.nsh b/src/WindowsInstaller/lang/arabic.nsh new file mode 100644 index 0000000000..a97346e770 --- /dev/null +++ b/src/WindowsInstaller/lang/arabic.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Arabic +*/ + +!insertmacro LANGFILE_EXT "Arabic" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(تركيب للمستخدم الحالي)" + +${LangFileString} TEXT_WELCOME "هذا المساعد سوف يرشدك خلال تركيب $(^NameDA), $\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "بناء سكربتات بايثون..." + +${LangFileString} TEXT_FINISH_DESKTOP "إنشاء اختصار سطح المكتب" +${LangFileString} TEXT_FINISH_WEBSITE "زيارة freecadweb.org لمشاهدة آخر الاخبار, الدعم والأفكار" + +#${LangFileString} FileTypeTitle "مستند - ليك" + +#${LangFileString} SecAllUsersTitle "تركيب لكل المستخدمين؟" +${LangFileString} SecFileAssocTitle "اقتران الملف" +${LangFileString} SecDesktopTitle "رمز سطح المكتب" + +${LangFileString} SecCoreDescription "ملفات ليك." +#${LangFileString} SecAllUsersDescription "تركيب ليك لهذا المستخدم أم لجميع المستخدمين." +${LangFileString} SecFileAssocDescription "الملفات بلاحقة .FCStd سوف تفتح تلفائيا ببرنامج ليك." +${LangFileString} SecDesktopDescription "رمز ليم على سطح المكتب." +#${LangFileString} SecDictionaries "قواميس" +#${LangFileString} SecDictionariesDescription "قواميس المدقق الإملائي التي يمكن تنزيلها وتركيبها." + +#${LangFileString} PathName 'مسار الملف $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'الملف $\"xxx.exe$\" ليس في المسار المحدد.' + +#${LangFileString} DictionariesFailed 'فشل تنزيل قاموس اللغة $\"$R3$\" .' + +#${LangFileString} ConfigInfo "ضبط ليك سيستغرق وفت." + +#${LangFileString} RunConfigureFailed "لم ينفذ سكريبت الضبط" +${LangFileString} InstallRunning "المركب يعمل حاليا!" +${LangFileString} AlreadyInstalled "ليك ${APP_SERIES_KEY2} تم تركيبه بالفعل!$\r$\n\ + التركيب على النسخة الحالية غير مفضل إذا كانت النسخة الحالية$\r$\n\ + تجريبية أو بها مشاكل.$\r$\n\ + في هذه الحالة من الأفضل إعادة التركيب.$\r$\n\ + هل تريد بالرغم من ذلك تركيب ليك على النسخة الحالية؟" +${LangFileString} NewerInstalled "تحاول تركيب نسخة ليك أقدم من الموجودة حاليا.$\r$\n\ + إذا كنت تريدها بالتأكيد, عليك حذف النسخة الحالية $OldVersionNumber أولا." + +#${LangFileString} FinishPageMessage "مبروك! تم تركيب ليك بنجاح.$\r$\n\ +# $\r$\n\ +# (البدء الأول لليك ربما يستغرق ثوان.)" +${LangFileString} FinishPageRun "بدء ليك" + +${LangFileString} UnNotInRegistryLabel "لم يتم العثور على ليك في سجل النظام.$\r$\n\ + إختصارات سطح المكتب وقائمة البدء لم يتم حذفها." +${LangFileString} UnInstallRunning "يجب إغلاق ليك أولا!" +${LangFileString} UnNotAdminLabel "يجب أن يكون لديك صلاحيات المدير لكي تحذف ليك!" +${LangFileString} UnReallyRemoveLabel "هل ترغب بإزالة ليك مع كل مكوناته؟" +${LangFileString} UnFreeCADPreferencesTitle 'تفضيلات مستخدم ليك' + +#${LangFileString} SecUnProgDescription "إزالة مدير ثبت المراجع xxx." +${LangFileString} SecUnPreferencesDescription 'حذف FreeCAD$\'s ضبط$\r$\n\ + (مجلد $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + لك او لكل المستخدمين (إذا كنت المدير).' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "إزالة ليك مع كل مكوناته." diff --git a/src/WindowsInstaller/lang/basque.nsh b/src/WindowsInstaller/lang/basque.nsh new file mode 100644 index 0000000000..981d11bf20 --- /dev/null +++ b/src/WindowsInstaller/lang/basque.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Basque +*/ + +!insertmacro LANGFILE_EXT "Basque" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Instalatu uneko erabiltzailearentzat)" + +${LangFileString} TEXT_WELCOME "Morroi honek $(^NameDA) aplikazioaren instalazio urratsetan zehar lagunduko dizu, $\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Python script-ak konpilatzen..." + +${LangFileString} TEXT_FINISH_DESKTOP "Sortu mahaigaineko lasterbidea" +${LangFileString} TEXT_FINISH_WEBSITE "Bisitatu freecadweb.org azken berriak, aholkuak eta laguntza lortzeko" + +#${LangFileString} FileTypeTitle "FreeCAD-dokumentua" + +#${LangFileString} SecAllUsersTitle "Instalatu erabiltzaile guztientzako?" +${LangFileString} SecFileAssocTitle "Fitxategiaren esleipenak" +${LangFileString} SecDesktopTitle "Mahaigaineko ikonoa" + +${LangFileString} SecCoreDescription "FreeCAD fitxategiak." +#${LangFileString} SecAllUsersDescription "Instalatu FreeCAD erabiltzaile guztientzako, edo soilik uneko erabiltzailearentzako." +${LangFileString} SecFileAssocDescription ".FCStd luzapeneko fitxategiak FreeCAD-ekin irekiko dira automatikoki." +${LangFileString} SecDesktopDescription "FreeCAD ikonoa mahaigainean." +#${LangFileString} SecDictionaries "Hiztegia" +#${LangFileString} SecDictionariesDescription "Zuzentzaile ortografikoen hiztegiak deskarga eta instala daitezke." + +#${LangFileString} PathName '$\"xxx.exe$\" fitxategiaren bide-izena' +#${LangFileString} InvalidFolder '$\"xxx.exe$\" fitxategia ez dago zehaztutako bide-izenean.' + +#${LangFileString} DictionariesFailed 'Huts egin du $\"$R3$\" hizkuntzaren hiztegia deskargatzean.' + +#${LangFileString} ConfigInfo "FreeCAD-en hurrengo konfigurazioak denbora piskat beharko du." + +#${LangFileString} RunConfigureFailed "Ezin izan da konfigurazioaren script-a exekutatu" +${LangFileString} InstallRunning "Instalatzailea jadanik exekutatzen ari da." +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} jadanik instalatuta dago!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "Instalatuta dagoen FreeCAD baino bertsio zaharragoa instalatzen saiatzen ari zara.$\r$\n\ + Hori egitea nahi baduzu, lehenbizi existitzen den FreeCAD $OldVersionNumber desinstalatu beharko duzu." + +#${LangFileString} FinishPageMessage "Zorionak! FreeCAD ongi instalatu da.$\r$\n\ +# $\r$\n\ +# (FreeCAD aurreneko aldiz abiatzean denbora piskat beharko du.)" +${LangFileString} FinishPageRun "Abiarazi FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Ezin da FreeCAD aurkitu erregistroan.$\r$\n\ + Mahaigaineko eta Hasiera menuko lasterbideak ez dira kenduko." +${LangFileString} UnInstallRunning "Aurrenik FreeCAD itxi behar duzu." +${LangFileString} UnNotAdminLabel "Administratzailearen baimenak behar dituzu FreeCAD desinstalatzeko." +${LangFileString} UnReallyRemoveLabel "Ziur zaude FreeCAD eta bere osagai guztiak kentzea nahi dituzula??" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCAD-eko erabiltzailearen hobespenak' + +#${LangFileString} SecUnProgDescription "xxx kudeatzailea desinstalatzen du." +${LangFileString} SecUnPreferencesDescription 'FreeCAD-en konfigurazioa ezabatzen du$\r$\n\ + ($\"$AppPre\erabiltzailea\$\r$\n\ + $AppSuff\$\r$\n\ + \${APP_DIR_USERDATA}$\"$\r$\n\ + zuretzako edo erabiltzaile guztientzako (administratzailea bazara).' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Desinstalatu FreeCAD eta bere osagai guztiak." diff --git a/src/WindowsInstaller/lang/catalan.nsh b/src/WindowsInstaller/lang/catalan.nsh new file mode 100644 index 0000000000..12a77adc31 --- /dev/null +++ b/src/WindowsInstaller/lang/catalan.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Catalan +*/ + +!insertmacro LANGFILE_EXT "Catalan" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "Aquest assistent us guiarà en la instal·lació del FreeCAD.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." + +${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" + +#${LangFileString} FileTypeTitle "Document FreeCAD" + +#${LangFileString} SecAllUsersTitle "Voleu instal·lar-ho per a tots els usuaris?" +${LangFileString} SecFileAssocTitle "Associació de fitxers" +${LangFileString} SecDesktopTitle "Icona a l'escriptori" + +${LangFileString} SecCoreDescription "Els fitxers del FreeCAD." +#${LangFileString} SecAllUsersDescription "Instal·la el FreeCAD per a tots els usuaris o només per a l'usuari actual." +${LangFileString} SecFileAssocDescription "Els fitxers amb extensió .FCStd s'obriran automàticament amb el FreeCAD." +${LangFileString} SecDesktopDescription "Una icona del FreeCAD a l'escriptori." +#${LangFileString} SecDictionaries "Diccionaris" +#${LangFileString} SecDictionariesDescription "Spell-checker dictionaries that can be downloaded and installed." + +#${LangFileString} PathName 'Camí al fitxer $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'El fitxer $\"xxx.exe$\" no es troba al camí indicat.' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "La configuració següent del FreeCAD pot trigar una mica." + +#${LangFileString} RunConfigureFailed "No es pot executar el programa de configuració" +${LangFileString} InstallRunning "L'instal·lador ja s'està executant!" +${LangFileString} AlreadyInstalled "El FreeCAD ${APP_SERIES_KEY2} ja es troba instal·lat!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "You are trying to install an older version of FreeCAD than what you have installed.$\r$\n\ + If you really want this, you must uninstall the existing FreeCAD $OldVersionNumber before." + +#${LangFileString} FinishPageMessage "Felicitats! Heu instal·lat correctament el FreeCAD.$\r$\n\ +# $\r$\n\ +# (La primera execució del FreeCAD pot trigar alguns segons.)" +${LangFileString} FinishPageRun "Executa el FreeCAD" + +${LangFileString} UnNotInRegistryLabel "No es possible trobar el FreeCAD al registre.$\r$\n\ + No se suprimiran les dreceres de l'escriptori i del menú inici." +${LangFileString} UnInstallRunning "Primer heu de tancar el FreeCAD!" +${LangFileString} UnNotAdminLabel "Necessiteu drets d'administrador per desinstal·lar el FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Esteu segur de voler suprimir completament el FreeCAD i tots els seus components?" +${LangFileString} UnFreeCADPreferencesTitle 'Preferències d$\'usuari del FreeCAD' + +#${LangFileString} SecUnProgDescription "Desinstal·xxx." +${LangFileString} SecUnPreferencesDescription 'Suprimeix les carptes de configuració del FreeCAD$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + de tots els usuaris.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Desinstal·la el FreeCAD i tots els seus components." diff --git a/src/WindowsInstaller/lang/czech.nsh b/src/WindowsInstaller/lang/czech.nsh new file mode 100644 index 0000000000..807cf7c82e --- /dev/null +++ b/src/WindowsInstaller/lang/czech.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Czech +*/ + +!insertmacro LANGFILE_EXT "Czech" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "Tento pomocník vás provede instalací FreeCADu.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." + +${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" + +#${LangFileString} FileTypeTitle "FreeCAD-dokumentů" + +#${LangFileString} SecAllUsersTitle "Instalovat pro všechny uživatele?" +${LangFileString} SecFileAssocTitle "Asociovat soubory" +${LangFileString} SecDesktopTitle "Ikonu na plochu" + +${LangFileString} SecCoreDescription "Soubory FreeCADu." +#${LangFileString} SecAllUsersDescription "Instalovat FreeCAD pro všechny uživatele nebo pouze pro současného uživatele." +${LangFileString} SecFileAssocDescription "Soubory s příponou .FCStd se automaticky otevřou v FreeCADu." +${LangFileString} SecDesktopDescription "Ikonu FreeCADu na plochu." +#${LangFileString} SecDictionaries "Slovníky" +#${LangFileString} SecDictionariesDescription "Spell-checker dictionaries that can be downloaded and installed." + +#${LangFileString} PathName 'Cesta k souboru $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Soubor $\"xxx.exe$\" není v zadané cestě.' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "The following configuration of FreeCAD could take a while." + +#${LangFileString} RunConfigureFailed "Nelze spustit konfigurační skript" +${LangFileString} InstallRunning "Instalátor je již spuštěn!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} je již nainstalován!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "You are trying to install an older version of FreeCAD than what you have installed.$\r$\n\ + If you really want this, you must uninstall the existing FreeCAD $OldVersionNumber before." + +#${LangFileString} FinishPageMessage "Blahopřejeme! FreeCAD byl úspěšně nainstalován.$\r$\n\ +# $\r$\n\ +# (První spuštění FreeCADu může trvat delší dobu.)" +${LangFileString} FinishPageRun "Spustit FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Nelze nalézt FreeCAD v registrech.$\r$\n\ + Zástupce na ploše a ve Start menu nebude smazán." +${LangFileString} UnInstallRunning "Nejprve musíte zavřít FreeCAD!" +${LangFileString} UnNotAdminLabel "Musíte mít administrátorská práva pro odinstalování FreeCADu!" +${LangFileString} UnReallyRemoveLabel "Chcete opravdu smazat FreeCAD a všechny jeho komponenty?" +${LangFileString} UnFreeCADPreferencesTitle 'Uživatelská nastavení FreeCADu' + +#${LangFileString} SecUnProgDescription "Odinstalovat xxx." +${LangFileString} SecUnPreferencesDescription 'Smazat konfigurační adresář FreeCADu$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + pro všechny uživatele.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Odinstalovat FreeCAD a všechny jeho komponenty." diff --git a/src/WindowsInstaller/lang/danish.nsh b/src/WindowsInstaller/lang/danish.nsh new file mode 100644 index 0000000000..9c43044e6f --- /dev/null +++ b/src/WindowsInstaller/lang/danish.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Danish +*/ + +!insertmacro LANGFILE_EXT "Danish" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "Denne guide vil installere FreeCAD på din computer.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." + +${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" + +#${LangFileString} FileTypeTitle "FreeCAD-Dokument" + +#${LangFileString} SecAllUsersTitle "Installer til alle brugere?" +${LangFileString} SecFileAssocTitle "Fil-associationer" +${LangFileString} SecDesktopTitle "Skrivebordsikon" + +${LangFileString} SecCoreDescription "Filerne til FreeCAD." +#${LangFileString} SecAllUsersDescription "Installer FreeCAD til alle brugere, eller kun den aktuelle bruger." +${LangFileString} SecFileAssocDescription "Opret association mellem FreeCAD og .FCStd filer." +${LangFileString} SecDesktopDescription "Et FreeCAD ikon på skrivebordet" +#${LangFileString} SecDictionaries "Ordbøger" +#${LangFileString} SecDictionariesDescription "Spell-checker dictionaries that can be downloaded and installed." + +#${LangFileString} PathName 'Sti til filen $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Kunne ikke finde $\"xxx.exe$\".' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "Den følgende konfiguration af FreeCAD vil tage et stykke tid." + +#${LangFileString} RunConfigureFailed "Mislykket forsog på at afvikle konfigurations-scriptet" +${LangFileString} InstallRunning "Installationsprogrammet kører allerede!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} er allerede installeret!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "You are trying to install an older version of FreeCAD than what you have installed.$\r$\n\ + If you really want this, you must uninstall the existing FreeCAD $OldVersionNumber before." + +#${LangFileString} FinishPageMessage "Tillykke!! FreeCAD er installeret.$\r$\n\ +# $\r$\n\ +# (Når FreeCAD startes første gang, kan det tage noget tid.)" +${LangFileString} FinishPageRun "Start FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Kunne ikke finde FreeCAD i registreringsdatabsen.$\r$\n\ + Genvejene på skrivebordet og i Start-menuen bliver ikke fjernet" +${LangFileString} UnInstallRunning "Du ma afslutte FreeCAD forst!" +${LangFileString} UnNotAdminLabel "Du skal have administrator-rettigheder for at afinstallere FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Er du sikker på, at du vil slette FreeCAD og alle tilhørende komponenter?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCAD$\'s user preferences' + +#${LangFileString} SecUnProgDescription 'Afinstallerer programmet $\"xxx$\".' +${LangFileString} SecUnPreferencesDescription 'Sletter FreeCAD$\'s konfigurations mappe$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + for alle brugere.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Afinstallerer FreeCAD og alle dets komponenter." diff --git a/src/WindowsInstaller/lang/dutch.nsh b/src/WindowsInstaller/lang/dutch.nsh new file mode 100644 index 0000000000..e3cc15322f --- /dev/null +++ b/src/WindowsInstaller/lang/dutch.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Dutch +*/ + +!insertmacro LANGFILE_EXT "Dutch" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "Dit installatie programma zal FreeCAD op uw systeem installeren.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." + +${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" + +#${LangFileString} FileTypeTitle "FreeCAD-Document" + +#${LangFileString} SecAllUsersTitle "Installeer voor alle gebruikers?" +${LangFileString} SecFileAssocTitle "Bestand associaties" +${LangFileString} SecDesktopTitle "Bureaublad pictogram" + +${LangFileString} SecCoreDescription "De FreeCAD bestanden." +#${LangFileString} SecAllUsersDescription "Installeer FreeCAD voor alle gebruikers of uitsluitend de huidige gebruiker?" +${LangFileString} SecFileAssocDescription "Associeer het FreeCAD programma met de .FCStd extensie." +${LangFileString} SecDesktopDescription "Een FreeCAD pictogram op het Bureaublad." +#${LangFileString} SecDictionaries "Woordenboeken" +#${LangFileString} SecDictionariesDescription "Spell-checker dictionaries that can be downloaded and installed." + +#${LangFileString} PathName 'Map met het programma $\"xxx.exe$\"' +#${LangFileString} InvalidFolder '$\"xxx.exe$\" is niet gevonden.' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "De volgende configuratie van FreeCAD zal enige tijd duren." + +#${LangFileString} RunConfigureFailed "Mislukte configuratie poging" +${LangFileString} InstallRunning "Het installatieprogramma is al gestart!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} is reeds geinstalleerd!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "You are trying to install an older version of FreeCAD than what you have installed.$\r$\n\ + If you really want this, you must uninstall the existing FreeCAD $OldVersionNumber before." + +#${LangFileString} FinishPageMessage "Gefeliciteerd! FreeCAD is succesvol geinstalleerd.$\r$\n\ +# $\r$\n\ +# (De eerste keer dat u FreeCAD start kan dit enige seconden duren.)" +${LangFileString} FinishPageRun "Start FreeCAD" + +${LangFileString} UnNotInRegistryLabel "FreeCAD is niet gevonden in het Windows register.$\r$\n\ + Snelkoppelingen op het Bureaublad en in het Start Menu worden niet verwijderd." +${LangFileString} UnInstallRunning "U moet FreeCAD eerst afsluiten!" +${LangFileString} UnNotAdminLabel "U heeft systeem-beheerrechten nodig om FreeCAD te verwijderen!" +${LangFileString} UnReallyRemoveLabel "Weet u zeker dat u FreeCAD en alle componenten volledig wil verwijderen van deze computer?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCAD$\'s user preferences' + +#${LangFileString} SecUnProgDescription "Verwijder xxx." +${LangFileString} SecUnPreferencesDescription 'Verwijder FreeCAD$\'s configuratie map$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + voor alle gebruikers.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Verwijder FreeCAD en alle bijbehorende onderdelen." diff --git a/src/WindowsInstaller/lang/english.nsh b/src/WindowsInstaller/lang/english.nsh new file mode 100644 index 0000000000..138c5aada0 --- /dev/null +++ b/src/WindowsInstaller/lang/english.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: English +*/ + +!insertmacro LANGFILE_EXT "English" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "This wizard will guide you through the installation of $(^NameDA), $\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." + +${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org/ for the latest news, support and tips" + +#${LangFileString} FileTypeTitle "FreeCAD-Document" + +#${LangFileString} SecAllUsersTitle "Install for all users?" +${LangFileString} SecFileAssocTitle "File associations" +${LangFileString} SecDesktopTitle "Desktop icon" + +${LangFileString} SecCoreDescription "The FreeCAD files." +#${LangFileString} SecAllUsersDescription "Install FreeCAD for all users or just the current user." +${LangFileString} SecFileAssocDescription "Files with a .FCStd extension will automatically open in FreeCAD." +${LangFileString} SecDesktopDescription "A FreeCAD icon on the desktop." +#${LangFileString} SecDictionaries "Dictionaries" +#${LangFileString} SecDictionariesDescription "Spell-checker dictionaries that can be downloaded and installed." + +#${LangFileString} PathName 'Path to the file $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'The file $\"xxx.exe$\" is not in the specified path.' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "The following configuration of FreeCAD could take a while." + +#${LangFileString} RunConfigureFailed "Could not run configure script." +${LangFileString} InstallRunning "The installer is already running!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} is already installed!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Do you nevertheless want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "You are trying to install an older version of FreeCAD than what you have installed.$\r$\n\ + If you really want this, you must uninstall the existing FreeCAD $OldVersionNumber before." + +#${LangFileString} FinishPageMessage "Congratulations! FreeCAD has been installed successfully.$\r$\n\ +# $\r$\n\ +# (The first start of FreeCAD might take some seconds.)" +${LangFileString} FinishPageRun "Launch FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Unable to find FreeCAD in the registry.$\r$\n\ + Shortcuts on the desktop and in the Start Menu will not be removed." +${LangFileString} UnInstallRunning "You must close FreeCAD at first!" +${LangFileString} UnNotAdminLabel "You must have administrator privileges to uninstall FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Are you sure you want to completely remove FreeCAD and all of its components?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCAD$\'s user preferences' + +#${LangFileString} SecUnProgDescription "Uninstalls xxx." +${LangFileString} SecUnPreferencesDescription 'Deletes FreeCAD$\'s configuration$\r$\n\ + (folder $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + for you or for all users (if you are admin).' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Uninstall FreeCAD and all of its components." diff --git a/src/WindowsInstaller/lang/french.nsh b/src/WindowsInstaller/lang/french.nsh new file mode 100644 index 0000000000..5b4132444f --- /dev/null +++ b/src/WindowsInstaller/lang/french.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: French +*/ + +!insertmacro LANGFILE_EXT "French" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installation pour l'utilisateur courant)" + +${LangFileString} TEXT_WELCOME "Cet assistant va vous guider tout au long de l'installation de $(^NameDA).$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compilation des scripts Python..." + +${LangFileString} TEXT_FINISH_DESKTOP "Créer un raccourci sur le bureau" +${LangFileString} TEXT_FINISH_WEBSITE "Consulter les dernières nouvelles, trucs et astuces sur le site freecadweb.org" + +#${LangFileString} FileTypeTitle "Document FreeCAD" + +#${LangFileString} SecAllUsersTitle "Installer pour tous les utilisateurs ?" +${LangFileString} SecFileAssocTitle "Associations de fichiers" +${LangFileString} SecDesktopTitle "Icône du bureau" + +${LangFileString} SecCoreDescription "Les fichiers FreeCAD" +#${LangFileString} SecAllUsersDescription "Installer FreeCAD pour tous les utilisateurs, ou seulement pour l$\'utilisateur courant ?" +${LangFileString} SecFileAssocDescription "Les fichiers de suffixe .FCStd seront automatiquement ouverts dans FreeCAD." +${LangFileString} SecDesktopDescription "Une icône FreeCAD sur le bureau." +#${LangFileString} SecDictionaries "Dictionnaires" +#${LangFileString} SecDictionariesDescription "Les dictionnaires pour correcteur orthographique qui peuvent être téléchargés et installés." + +#${LangFileString} PathName 'Chemin vers le fichier $\"xxx.exe$\"' +#${LangFileString} InvalidFolder '$\"xxx.exe$\" introuvable dans le chemin d$\'accès spécifié.' + +#${LangFileString} DictionariesFailed 'Le chargement du dictionnaire pour la langue $\"$R3$\" a échoué.' + +#${LangFileString} ConfigInfo "La configuration de FreeCAD qui va suivre prendra un moment." + +#${LangFileString} RunConfigureFailed "Échec de la tentative de configuration initiale de FreeCAD." +${LangFileString} InstallRunning "Le programme d$\'installation est toujours en cours !" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} est déjà installé !$\r$\n\ + L'installation par dessus les installations existantes n'est pas recommandée si la version installée$\r$\n\ + est une version de test ou si vous avez des problèmes avec votre installation FreeCAD existante.$\r$\n\ + Dans ces situations il vaut mieux réinstaller FreeCAD.$\r$\n\ + Voulez-vous néanmoins installer FreeCAD par dessus la version existante ?" +${LangFileString} NewerInstalled "Vous essayez d$\'installer une version de FreeCAD plus ancienne que celle qui est déjà installée.$\r$\n\ + Si c$\'est ce qu vous voulez, vous devez d$\'abord désinstaller FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Félicitations ! FreeCAD est installé avec succès.$\r$\n\ +# $\r$\n\ +# (Le premier démarrage de FreeCAD peut demander quelques secondes.)" +${LangFileString} FinishPageRun "Démarrer FreeCAD" + +${LangFileString} UnNotInRegistryLabel "FreeCAD introuvable dans la base des registres.$\r$\n\ + Les raccourcis sur le bureau et dans le menu de démarrage ne seront pas supprimés." +${LangFileString} UnInstallRunning "Vous devez fermer FreeCAD d$\'abord !" +${LangFileString} UnNotAdminLabel "Vous devez avoir les droits d$\'administration pour désinstaller FreeCAD !" +${LangFileString} UnReallyRemoveLabel "Êtes vous sûr(e) de vouloir supprimer complètement FreeCAD et tous ses composants ?" +${LangFileString} UnFreeCADPreferencesTitle 'Préférences utilisateurs de FreeCAD' + +#${LangFileString} SecUnProgDescription "Désinstalle le gestionnaire de bibliographie xxx." +${LangFileString} SecUnPreferencesDescription 'Supprime le répertoire de configuration de FreeCAD$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + pour tous les utilisateurs.' +${LangFileString} DialogUnPreferences 'Vous avez choisi de supprimer le répertoire de configuration de FreeCADs.$\r$\n\ + Cela supprimera également tous les addons FreeCAD installés.$\r$\n\ + Êtes-vous d$\'accord avec cela ?' +${LangFileString} SecUnProgramFilesDescription "Désinstaller FreeCAD et tous ses composants." diff --git a/src/WindowsInstaller/lang/galician.nsh b/src/WindowsInstaller/lang/galician.nsh new file mode 100644 index 0000000000..48d684f2d9 --- /dev/null +++ b/src/WindowsInstaller/lang/galician.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Galician +*/ + +!insertmacro LANGFILE_EXT "Galician" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "Este asistente vai-no guiar na instalación do FreeCAD no seu computador.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." + +${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" + +#${LangFileString} FileTypeTitle "Documento FreeCAD" + +#${LangFileString} SecAllUsersTitle "Instalar para todos os usuários?" +${LangFileString} SecFileAssocTitle "Asociación dos ficheiros" +${LangFileString} SecDesktopTitle "Icone do ambiente de traballo" + +${LangFileString} SecCoreDescription "Os ficheiros FreeCAD." +#${LangFileString} SecAllUsersDescription "Instalar o FreeCAD monousuário ou multiusuário." +${LangFileString} SecFileAssocDescription "Asociar a extensión .FCStd co FreeCAD." +${LangFileString} SecDesktopDescription "Cria un icone do FreeCAD no ambiente de traballo." +#${LangFileString} SecDictionaries "Dicionarios" +#${LangFileString} SecDictionariesDescription "Spell-checker dictionaries that can be downloaded and installed." + +#${LangFileString} PathName 'Camiño ao ficheiro $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'O ficheiro $\"xxx.exe$\" non está no camiño especificado.' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "A configuración seguinte do FreeCAD irá demorar un pouco." + +#${LangFileString} RunConfigureFailed "Non se deu executado o script de configuración" +${LangFileString} InstallRunning "O instalador xa está a correr!" +${LangFileString} AlreadyInstalled "O FreeCAD ${APP_SERIES_KEY2} xa está instalado!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "You are trying to install an older version of FreeCAD than what you have installed.$\r$\n\ + If you really want this, you must uninstall the existing FreeCAD $OldVersionNumber before." + +#${LangFileString} FinishPageMessage "Parabéns! O FreeCAD foi instalado con suceso.$\r$\n\ +# $\r$\n\ +# (O primeiro início do FreeCAD pode levar alguns segundos.)" +${LangFileString} FinishPageRun "Lanzar o FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Non se da achado o FreeCAD no registo.$\r$\n\ + Non se eliminarán os atallos para o ambiente de traballo e no menu de Início." +${LangFileString} UnInstallRunning "Debe fechar o FreeCAD en primeiro lugar!" +${LangFileString} UnNotAdminLabel "Precisa de priviléxios de administrador para desinstalar o FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Seguro que quer eliminar completamente o FreeCAD e todos os seus componentes?" +${LangFileString} UnFreeCADPreferencesTitle 'Preferéncias de usuário do FreeCAD' + +#${LangFileString} SecUnProgDescription "Desinstala xxx." +${LangFileString} SecUnPreferencesDescription 'Elimina as pastas de configuración do FreeCAD$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + de todos os usuários.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Desinstala FreeCAD e todos os seus componentes." diff --git a/src/WindowsInstaller/lang/german.nsh b/src/WindowsInstaller/lang/german.nsh new file mode 100644 index 0000000000..44e831d58e --- /dev/null +++ b/src/WindowsInstaller/lang/german.nsh @@ -0,0 +1,71 @@ +/* +FreeCAD Installer Language File +Language: German +Author: Uwe Stöhr +*/ + +!insertmacro LANGFILE_EXT "German" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installiert für den aktuellen Benutzer)" + +${LangFileString} TEXT_WELCOME "Dieser Assistent wird Sie durch die Installation von $(^NameDA) begleiten.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Kompiliere Python Skripte..." + +${LangFileString} TEXT_FINISH_DESKTOP "Ein Symbol auf der Arbeitsoberfläche erzeugen" +${LangFileString} TEXT_FINISH_WEBSITE "Besuchen Sie freecadweb.org für aktuelle Neuigkeiten" + +#${LangFileString} FileTypeTitle "FreeCAD-Dokument" + +#${LangFileString} SecAllUsersTitle "Für alle Nutzer installieren?" +${LangFileString} SecFileAssocTitle "Dateizuordnungen" +${LangFileString} SecDesktopTitle "Desktopsymbol" + +${LangFileString} SecCoreDescription "Das Programm FreeCAD." +#${LangFileString} SecAllUsersDescription "FreeCAD für alle Nutzer oder nur für den aktuellen Nutzer installieren." +${LangFileString} SecFileAssocDescription "Vernüpfung zwischen FreeCAD und der .FCStd Dateiendung." +${LangFileString} SecDesktopDescription "Verknüpfung zu FreeCAD auf dem Desktop." +#${LangFileString} SecDictionaries "Wörterbücher" +#${LangFileString} SecDictionariesDescription "Rechtschreibprüfung- Wörterbucher die heruntergeladen und installiert werden können." + +#${LangFileString} PathName 'Pfad zur Datei $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Kann die Datei $\"xxx.exe$\" nicht finden.' + +#${LangFileString} DictionariesFailed 'Herunterladen des Wörterbuchs für Sprache $\"$R3$\" fehlgeschlagen.' + +#${LangFileString} ConfigInfo "Die folgende Konfiguration von FreeCAD wird eine Weile dauern." + +#${LangFileString} RunConfigureFailed "Konnte das Konfigurationsskript nicht ausführen." +${LangFileString} InstallRunning "Der Installer läuft bereits!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} ist bereits installiert!$\r$\n\ + Das Installieren über bestehende Installationen ist nicht empfohlen, wenn die installierte Version$\r$\n\ + eine Testversion ist oder wenn es Probleme mit der bestehenden FreeCAD-Installation gibt.$\r$\n\ + Besser Sie deinstallieren in diesen Fällen FreeCAD zuerst.$\r$\n\ + Wollen Sie FreeCAD dennoch über die bestehende Version installieren?" +${LangFileString} NewerInstalled "Sie versuchen eine Vesion von FreeCAD zu installieren, die älter als die derzeit installierte ist.$\r$\n\ + Wenn Sie das wirklich wollen, müssen Sie erst das existierende FreeCAD $OldVersionNumber deinstallieren." + +#${LangFileString} FinishPageMessage "Glückwunsch! FreeCAD wurde erfolgreich installiert.$\r$\n\ +# $\r$\n\ +# (Der erste Start von FreeCAD kann etwas länger dauern.)" +${LangFileString} FinishPageRun "FreeCAD starten" + +${LangFileString} UnNotInRegistryLabel "Kann FreeCAD nicht in der Registry finden.$\r$\n\ + Desktopsymbole und Einträge im Startmenü können nicht entfernt werden." +${LangFileString} UnInstallRunning "Sie müssen FreeCAD zuerst beenden!" +${LangFileString} UnNotAdminLabel "Sie benötigen Administratorrechte um FreeCAD zu deinstallieren!" +${LangFileString} UnReallyRemoveLabel "Sind Sie sicher, dass sie FreeCAD und all seine Komponenten deinstallieren möchten?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCADs Benutzereinstellungen' + +#${LangFileString} SecUnProgDescription "Deinstalliert xxx." +${LangFileString} SecUnPreferencesDescription 'Löscht FreeCADs Benutzereinstellungen$\r$\n\ + (Ordner $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + für Sie oder für alle Benutzer (wenn Sie Admin sind).' +${LangFileString} DialogUnPreferences 'Sie haben ausgewählt, die FreeCAD-Benutzereinstellungen zu löschen.$\r$\n\ + Dies wird auch alle installierten FreeCAD-Addons löschen.$\r$\n\ + Sind Sie damit einverstanden?' +${LangFileString} SecUnProgramFilesDescription "Deinstalliert FreeCAD und all seine Komponenten." diff --git a/src/WindowsInstaller/lang/hungarian.nsh b/src/WindowsInstaller/lang/hungarian.nsh new file mode 100644 index 0000000000..5230dc66a4 --- /dev/null +++ b/src/WindowsInstaller/lang/hungarian.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Hungarian +*/ + +!insertmacro LANGFILE_EXT "Hungarian" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Telepítve az aktuális felhasználónak)" + +${LangFileString} TEXT_WELCOME "A varázsló segítségével tudja telepíteni a FreeCAD-et.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Python parancsfájlok fordítása..." + +${LangFileString} TEXT_FINISH_DESKTOP "Indítóikon létrehozása Asztalon" +${LangFileString} TEXT_FINISH_WEBSITE "Látogasson el a freecadweb.org oldalra az aktuális hírekért, támogatásért és tippekért" + +#${LangFileString} FileTypeTitle "FreeCAD-dokumentum" + +#${LangFileString} SecAllUsersTitle "Telepítés minden felhasználónak" +${LangFileString} SecFileAssocTitle "Fájltársítások" +${LangFileString} SecDesktopTitle "Parancsikon Asztalra" + +${LangFileString} SecCoreDescription "A FreeCAD futtatásához szükséges fájlok." +#${LangFileString} SecAllUsersDescription "Minden felhasználónak telepítsem vagy csak az aktuálisnak?" +${LangFileString} SecFileAssocDescription "A .FCStd kiterjesztéssel rendelkező fájlok megnyitása automatikusan a FreeCAD-el történjen." +${LangFileString} SecDesktopDescription "FreeCAD-ikon elhelyezése az Asztalon." +#${LangFileString} SecDictionaries "Szótárak" +#${LangFileString} SecDictionariesDescription "Helyesírás-ellenőrző szótárak, amiket letölthet és telepíthet." + +#${LangFileString} PathName 'A $\"xxx.exe$\" fájl elérési útja' +#${LangFileString} InvalidFolder 'Nem találom a $\"xxx.exe$\" fájlt, a megadott helyen.' + +#${LangFileString} DictionariesFailed 'Szótár letöltése a(z) $\"$R3$\" nyelvhez sikertelen.' + +#${LangFileString} ConfigInfo "A FreeCAD telepítés utáni beállítása hosszú időt vehet igénybe." + +#${LangFileString} RunConfigureFailed "Nem tudom végrehajtani a configure parancsfájlt!" +${LangFileString} InstallRunning "A telepítő már fut!" +${LangFileString} AlreadyInstalled "A FreeCAD ${APP_SERIES_KEY2} már teleptve van!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "A jelenleg telepítettnél régebbi FreeCAD verziót próbál telepíteni.$\r$\n\ + Ha valóban ezt akarja, először el kell távolítania a meglévő FreeCAD $OldVersionNumber változatot." + +#${LangFileString} FinishPageMessage "Gratulálok! Sikeresen telepítette a FreeCAD-et.$\r$\n\ +# $\r$\n\ +# (A program első indítása egy kis időt vehet igénybe...)" +${LangFileString} FinishPageRun "FreeCAD indítása" + +${LangFileString} UnNotInRegistryLabel "Nem találom a FreeCAD-et a regisztriben.$\r$\n\ + Az Asztalon és a Start Menüben található parancsikonok nem lesznek eltávolítva!." +${LangFileString} UnInstallRunning "Először be kell zárnia a FreeCAD-et!" +${LangFileString} UnNotAdminLabel "A FreeCAD eltávolításhoz rendszergazdai jogokkal kell rendelkeznie!" +${LangFileString} UnReallyRemoveLabel "Biztosan abban, hogy el akarja távolítani a FreeCAD-t, minden tartozékával együtt?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCAD felhasználói beállítások' + +#${LangFileString} SecUnProgDescription "xxx eltávolítása." +${LangFileString} SecUnPreferencesDescription 'A FreeCAD beállítások mappa törlése$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + minden felhasználónál.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "A FreeCAD és minden komponensének eltávolítása." diff --git a/src/WindowsInstaller/lang/indonesian.nsh b/src/WindowsInstaller/lang/indonesian.nsh new file mode 100644 index 0000000000..1b92dd13b3 --- /dev/null +++ b/src/WindowsInstaller/lang/indonesian.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Indonesian +*/ + +!insertmacro LANGFILE_EXT "Indonesian" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Pasang untuk Pengguna Yang Ini)" + +${LangFileString} TEXT_WELCOME "Program ini akan memandu anda dalam melakukan instalasi FreeCAD.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Proses kompilasi skrip Python ..." + +${LangFileString} TEXT_FINISH_DESKTOP "Membuat pintasan ikon di destop" +${LangFileString} TEXT_FINISH_WEBSITE "Kunjungi freecadweb.org untuk berita terbaru serta dukungan" + +#${LangFileString} FileTypeTitle "Dokumen-FreeCAD" + +#${LangFileString} SecAllUsersTitle "Pasang untuk semua pengguna?" +${LangFileString} SecFileAssocTitle "Berkas yang terkait" +${LangFileString} SecDesktopTitle "Ikon Desktop" + +${LangFileString} SecCoreDescription "Berkas-berkas FreeCAD." +#${LangFileString} SecAllUsersDescription "Pasang FreeCAD untuk semua pengguna atau hanya untuk pengguna ini saja." +${LangFileString} SecFileAssocDescription "Berkas dengan ekstensi .FCStd akan otomatis dibuka menggunakan FreeCAD." +${LangFileString} SecDesktopDescription "Ikon FreeCAD muncul di desktop." +#${LangFileString} SecDictionaries "Kamus" +#${LangFileString} SecDictionariesDescription "Kamus pemeriksa ejaan yang dapat diunduh dan dipasang." + +#${LangFileString} PathName 'Lokasi tempat berkas $\"xxx.exe$\" berada' +#${LangFileString} InvalidFolder 'Berkas $\"xxx.exe$\" tidak berada di lokasi tempat yang dinyatakan.' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "Proses konfigurasi FreeCAD selanjutnya akan memerlukan waktu beberapa saat." + +#${LangFileString} RunConfigureFailed "Tidak bisa menjalankan skrip konfigurasi" +${LangFileString} InstallRunning "Program instalasi sedang berjalan!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} sudah pernah diinstal!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "Anda akan memasang versi FreeCAD yang lama dari yang sudah terpasang.$\r$\n\ + Jika memang dikehendaki, anda harus menghapus dulu FreeCAD yang ada, FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Selamat! FreeCAD berhasil diinstal dengan sukses.$\r$\n\ +# $\r$\n\ +# (Menjalankan FreeCAD untuk pertama kali memerlukan waktu beberapa detik.)" +${LangFileString} FinishPageRun "Menjalankan FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Tidak bisa menemukan FreeCAD di catatan registry.$\r$\n\ + Shortcuts pada desktop dan yang ada di Menu Start tidak dihapus." +${LangFileString} UnInstallRunning "Anda harus menutup FreeCAD terlebih dahulu!" +${LangFileString} UnNotAdminLabel "Anda harus berlaku dan mempunyai hak sebagai administrator untuk menghapus FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Apakah anda yakin akan menghapus FreeCAD secara menyeluruh termasuk semua komponen yang ada?" +${LangFileString} UnFreeCADPreferencesTitle 'Preferensi pengguna FreeCAD' + +#${LangFileString} SecUnProgDescription "Penghapusan program xxx." +${LangFileString} SecUnPreferencesDescription 'Menghapus berkas konfigurasi FreeCAD pada folder$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + untuk semua pengguna.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Penghapusan FreeCAD serta semua komponen yang ada." diff --git a/src/WindowsInstaller/lang/italian.nsh b/src/WindowsInstaller/lang/italian.nsh new file mode 100644 index 0000000000..589ac1e945 --- /dev/null +++ b/src/WindowsInstaller/lang/italian.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Italian +*/ + +!insertmacro LANGFILE_EXT "Italian" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "Verrete guidati nell'installazione di $(^NameDA)$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compilazione degli script Python in corso..." + +${LangFileString} TEXT_FINISH_DESKTOP "Crea icona sul desktop" +${LangFileString} TEXT_FINISH_WEBSITE "Visitate freecadweb.org per ultime novità, aiuto e suggerimenti" + +#${LangFileString} FileTypeTitle "Documento di FreeCAD" + +#${LangFileString} SecAllUsersTitle "Installare per tutti gli utenti?" +${LangFileString} SecFileAssocTitle "Associazioni dei file" +${LangFileString} SecDesktopTitle "Icona sul Desktop" + +${LangFileString} SecCoreDescription "I file di FreeCAD." +#${LangFileString} SecAllUsersDescription "Installazione FreeCAD per tutti gli utenti o solo per l'utente attuale." +${LangFileString} SecFileAssocDescription "Associa i files con estensione .FCStd al programma FreeCAD." +${LangFileString} SecDesktopDescription "Icona FreeCAD sul desktop." +#${LangFileString} SecDictionaries "Dizionari" +#${LangFileString} SecDictionariesDescription "Dizionari per il controllo ortografico che possono essere scaricati e installati." + +#${LangFileString} PathName 'Percorso del file $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Il file $\"xxx.exe$\" non è nel percorso indicato.' + +#${LangFileString} DictionariesFailed 'Lo scaricamento del dizionario per la lingua $\"$R3$\" non e$\' andato a buon fine.' + +#${LangFileString} ConfigInfo "La seguente configurazione di FreeCAD richiederà un po' di tempo." + +#${LangFileString} RunConfigureFailed "Fallito tentativo di eseguire lo script di configurazione" +${LangFileString} InstallRunning "Il programma di installazione è già in esecuzione!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} è già installato!$\r$\n\ + Procedere con l'installazione su quella esistente non è raccomandabile se la versione version$\r$\n\ + è una release di test o se avete problemi con la vostra installazione corrente di FreeCAD.$\r$\n\ + In questi casi è preferibile installare nuovamente FreeCAD.$\r$\n\ + Volete procedere comunque con l'installazione di FreeCAD su quella esistente?" +${LangFileString} NewerInstalled "Si sta procedendo ad installare una versione di FreeCAD precedente a quella in uso.$\r$\n\ + Se si vuole procedere, è necessario prima disinstallare la versione FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Congratulazioni! FreeCAD è stato installato con successo.$\r$\n\ +# $\r$\n\ +# (Il primo avvio di FreeCAD potrebbe richiedere qualche secondo in più.)" +${LangFileString} FinishPageRun "Lancia FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Non riesco a trovare FreeCAD nel registro.$\r$\n\ + I collegamenti sul desktop e nel menu Start non saranno rimossi." +${LangFileString} UnInstallRunning "È necessario chiudere FreeCAD!" +${LangFileString} UnNotAdminLabel "Occorrono i privilegi da amministratore per rimuovere FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Siete sicuri di voler rimuovere completamente FreeCAD e tutti i suoi componenti?" +${LangFileString} UnFreeCADPreferencesTitle 'Impostazioni personali di FreeCAD' + +#${LangFileString} SecUnProgDescription "Rimuove xxx." +${LangFileString} SecUnPreferencesDescription 'Elimina la cartella con la configurazione di FreeCAD$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + per tutti gli utenti.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Rimuove FreeCAD e tutti i suoi componenti." diff --git a/src/WindowsInstaller/lang/japanese.nsh b/src/WindowsInstaller/lang/japanese.nsh new file mode 100644 index 0000000000..b973095539 --- /dev/null +++ b/src/WindowsInstaller/lang/japanese.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Japanese +*/ + +!insertmacro LANGFILE_EXT "Japanese" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(現ユーザー用に導入を行う)" + +${LangFileString} TEXT_WELCOME "このウィザードが、あなたのFreeCAD導入作業中のご案内をします。$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Pythonスクリプトをコンパイルしています..." + +${LangFileString} TEXT_FINISH_DESKTOP "デスクトップにショートカットを作成する" +${LangFileString} TEXT_FINISH_WEBSITE "freecadweb.orgを開いて最新ニュースやサポート、ヒントなどを入手する" + +#${LangFileString} FileTypeTitle "FreeCAD文書" + +#${LangFileString} SecAllUsersTitle "すべてのユーザー用に導入を行いますか?" +${LangFileString} SecFileAssocTitle "ファイル関連付け" +${LangFileString} SecDesktopTitle "デスクトップ・アイコン" + +${LangFileString} SecCoreDescription "FreeCADのファイル。" +#${LangFileString} SecAllUsersDescription "FreeCADをすべてのユーザー用に導入するか、現在のユーザー向けだけに導入するか。" +${LangFileString} SecFileAssocDescription "拡張子が.FCStdのファイルは自動的にFreeCADで開かれる。" +${LangFileString} SecDesktopDescription "デスクトップ上のFreeCADアイコン" +#${LangFileString} SecDictionaries "辞書" +#${LangFileString} SecDictionariesDescription "ダウンロード及び導入が可能なスペルチェック用辞書" + +#${LangFileString} PathName '$\"xxx.exe$\"ファイルへのパス' +#${LangFileString} InvalidFolder '指定されたパスに$\"xxx.exe$\"ファイルが見つかりません。' + +#${LangFileString} DictionariesFailed '言語$\"$R3$\"用辞書のダウンロードに失敗しました。' + +#${LangFileString} ConfigInfo "以下のFreeCADの設定には少々時間がかかります。" + +#${LangFileString} RunConfigureFailed "configureスクリプトを実行することができませんでした" +${LangFileString} InstallRunning "導入プログラムは既に動作中です!" +${LangFileString} AlreadyInstalled "FreeCAD${APP_SERIES_KEY2}は既に導入済みです!$\r$\n\ + 導入済みのバージョンがテスト版であったり、導入済みFreeCADで問題がある場合には、$\r$\n\ + 上書き導入作業は推奨されません。これらの場合には、FreeCADを最初から再導入する$\r$\n\ + ことが推奨されます。$\r$\n\ + これらを承知の上で、既存のFreeCADを上書きしますか?" +${LangFileString} NewerInstalled "あなたは、既に導入済みのFreeCADよりも古い版を導入しようとしています。$\r$\n\ + 本当にそうしたいのであれば、既存の FreeCAD $OldVersionNumber をまず導入解除してください。" + +#${LangFileString} FinishPageMessage "おめでとうございます!FreeCADが正しく導入されました。$\r$\n\ +# $\r$\n\ +# 初回のFreeCADの起動には時間がかかります。)" +${LangFileString} FinishPageRun "FreeCADを起動する" + +${LangFileString} UnNotInRegistryLabel "レジストリにFreeCADが見当たりません。$\r$\n\ + デスクトップとスタートメニューのショートカットは削除されません。" +${LangFileString} UnInstallRunning "まずFreeCADを閉じてください!" +${LangFileString} UnNotAdminLabel "FreeCADの導入解除を行うには、管理者権限を持っていなくてはなりません!" +${LangFileString} UnReallyRemoveLabel "本当に、FreeCADとすべての附属コンポーネントを削除してしまう積もりですか?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCADのユーザー設定' + +#${LangFileString} SecUnProgDescription "文献管理プログラムxxxの導入解除を行います。" +${LangFileString} SecUnPreferencesDescription 'ユーザー共通のFreeCADの設定フォルダ$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + を削除します。' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "FreeCADとすべての附属コンポーネントの導入解除を行います。" diff --git a/src/WindowsInstaller/lang/norwegian.nsh b/src/WindowsInstaller/lang/norwegian.nsh new file mode 100644 index 0000000000..6069b9278f --- /dev/null +++ b/src/WindowsInstaller/lang/norwegian.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Norwegian +*/ + +!insertmacro LANGFILE_EXT "Norwegian" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installer for denne brukeren)" + +${LangFileString} TEXT_WELCOME "Denne veiviseren installerer FreeCAD på datamaskinen din.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Kompilerer Python script..." + +${LangFileString} TEXT_FINISH_DESKTOP "Lager snarveg på skrivebordet" +${LangFileString} TEXT_FINISH_WEBSITE "Besøk freecadweb.org for de seneste nyhetene, hjelp og støtte" + +#${LangFileString} FileTypeTitle "FreeCAD-dokument" + +#${LangFileString} SecAllUsersTitle "Installer for alle brukere?" +${LangFileString} SecFileAssocTitle "Fil-assosiasjoner" +${LangFileString} SecDesktopTitle "Skrivebordsikon" + +${LangFileString} SecCoreDescription "FreeCAD-filene." +#${LangFileString} SecAllUsersDescription "Installer FreeCAD for alle brukere, eller kun for denne brukeren." +${LangFileString} SecFileAssocDescription "Filer med endelsen .FCStd åpnes automatisk i FreeCAD." +${LangFileString} SecDesktopDescription "Et FreeCAD-ikon på skrivebordet." +#${LangFileString} SecDictionaries "Ordbøker" +#${LangFileString} SecDictionariesDescription "Ordbøker til rettskrivningsprogram som kan lastes ned og installeres." + +#${LangFileString} PathName 'Stien til filen $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Filen $\"xxx.exe$\" fins ikke i den oppgitte mappa.' + +#${LangFileString} DictionariesFailed 'Nedlastingen av ordliste for språket $\"$R3$\" feilet.' + +#${LangFileString} ConfigInfo "Konfigurasjon av FreeCAD vil ta en stund." + +#${LangFileString} RunConfigureFailed "Fikk ikke kjørt konfigurasjonsscriptet" +${LangFileString} InstallRunning "Installasjonsprogrammet er allerede i gang!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} er allerede installert!$\r$\n\ + Vi anbefaler ikke å installere over en eksisterende installasjon hvis den installere versjonen$\r$\n\ + er en testversjon eller om du har problemer med den eksisterende installasjonen.$\r$\n\ + I slike tilfeller er det bedre å reinstallere FreeCAD.$\r$\n\ + Vil du likevel installere FreeCAD over den eksisterende versjonen?" +${LangFileString} NewerInstalled "Du prøver å installere en eldre versjon av FreeCAD enn den du har installert fra før.$\r$\n\ + Dersom du ønsker dette må du avinstallere FreeCAD $OldVersionNumber først." + +#${LangFileString} FinishPageMessage "Gratulerer!! FreeCAD er installert.$\r$\n\ +# $\r$\n\ +# (Første gangs oppstart av FreeCAD kan ta noen sekunder.)" +${LangFileString} FinishPageRun "Start FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Fant ikke FreeCAD i registeret.$\r$\n\ + Snarveier på skrivebordet og i startmenyen fjernes ikke." +${LangFileString} UnInstallRunning "Du må avslutte FreeCAD først!" +${LangFileString} UnNotAdminLabel "Du må ha administratorrettigheter for å fjerne FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Er du sikker på at du vil fjerne FreeCAD og alle tilhørende komponenter?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCAD sine bruker innstillinger' + +#${LangFileString} SecUnProgDescription "Avinstallerer xxx." +${LangFileString} SecUnPreferencesDescription 'Sletter FreeCAD sine konfigurasjonsmapper$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + for alle brukere.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Avinstallerer FreeCAD og alle delkomponenter." diff --git a/src/WindowsInstaller/lang/polish.nsh b/src/WindowsInstaller/lang/polish.nsh new file mode 100644 index 0000000000..861959f5a4 --- /dev/null +++ b/src/WindowsInstaller/lang/polish.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Polish +*/ + +!insertmacro LANGFILE_EXT "Polish" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Zainstalowane dla bieżącego użytkownika)" + +${LangFileString} TEXT_WELCOME "Kreator przeprowadzi Ciebie przez proces instalacji FreeCAD$\'a.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Kompilowanie skryptów Python..." + +${LangFileString} TEXT_FINISH_DESKTOP "Utwórz skrót na pulpicie" +${LangFileString} TEXT_FINISH_WEBSITE "Odwiedź freecadweb.org by poznać wiadomości i wskazówki lub skorzystać ze wsparcia" + +#${LangFileString} FileTypeTitle "Dokument FreeCAD" + +#${LangFileString} SecAllUsersTitle "Instalacja dla wszystkich użytkowników?" +${LangFileString} SecFileAssocTitle "Skojarzenie plików .FCStd" +${LangFileString} SecDesktopTitle "Ikona na pulpicie" + +${LangFileString} SecCoreDescription "Pliki FreeCAD$\'a." +#${LangFileString} SecAllUsersDescription "Instalacja dla wszystkich użytkowników lub tylko dla bieżącego użytkownika." +${LangFileString} SecFileAssocDescription "Skojarzenie FreeCAD-a z plikami o rozszerzeniu .FCStd." +${LangFileString} SecDesktopDescription "Ikona FreeCAD$\'a na pulpicie." +#${LangFileString} SecDictionaries "Słowniki" +#${LangFileString} SecDictionariesDescription "Słowniki sprawdzania pisowni, które mogą zostać pobrane i zainstalowane." + +#${LangFileString} PathName 'Ścieżka do pliku $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Plik $\"xxx.exe$\" nie znajduje się w podanej ścieżce.' + +#${LangFileString} DictionariesFailed 'Pobranie słownika dla języka $\"$R3$\" nie powiodło się.' + +#${LangFileString} ConfigInfo "Dalsza konfiguracja FreeCAD$\'a chwilę potrwa." + +#${LangFileString} RunConfigureFailed "Niedana próba wykonania skryptu konfiguracyjnego" +${LangFileString} InstallRunning "Instalator jest już uruchomiony!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} jest już zainstalowany!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "Próbujesz zainstalować starszą wersję FreeCAD, niż ta która jest już zainstalowana.$\r$\n\ + Jeżeli naprawdę chcesz tego dokonać, musisz wpierw odinstalować FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Gratulacje! FreeCAD został pomyślnie zainstalowany.$\r$\n\ +# $\r$\n\ +# (Pierwsze uruchomienie może potrwać kilka sekund.)" +${LangFileString} FinishPageRun "Uruchom FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Nie można znaleźć FreeCAD$\'a w rejestrze.$\r$\n\ + Skróty na pulpicie i w menu Start nie zostaną usunięte." +${LangFileString} UnInstallRunning "Musisz najpierw zamknąć FreeCAD$\'a!" +${LangFileString} UnNotAdminLabel "Musisz posiadać prawa administratora do deinstalacji programu FreeCAD." +${LangFileString} UnReallyRemoveLabel "Czy na pewno chcesz usunąć FreeCAD$\'a i wszystkie jego komponenty?" +${LangFileString} UnFreeCADPreferencesTitle 'Preferencje użytkownika FreeCAD$\'a' + +#${LangFileString} SecUnProgDescription "Deinstalacja xxx." +${LangFileString} SecUnPreferencesDescription 'Usuwa folder konfiguracji FreeCAD$\'a$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + wszystkim użytkownikom.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Deinstalacja FreeCAD i wszystkich jego komponentów." diff --git a/src/WindowsInstaller/lang/portuguese.nsh b/src/WindowsInstaller/lang/portuguese.nsh new file mode 100644 index 0000000000..df7aa3fbb5 --- /dev/null +++ b/src/WindowsInstaller/lang/portuguese.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Portuguese +*/ + +!insertmacro LANGFILE_EXT "Portuguese" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Instalado para o Utilizador Atual)" + +${LangFileString} TEXT_WELCOME "Este assistente de instalação irá guiá-lo através da instalação do FreeCAD.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compilando os scripts de Python..." + +${LangFileString} TEXT_FINISH_DESKTOP "Criar um atalho no ambiente de trabalho" +${LangFileString} TEXT_FINISH_WEBSITE "Visite freecadweb.org para as últimas notícias, suporte e dicas" + +#${LangFileString} FileTypeTitle "Documento FreeCAD" + +#${LangFileString} SecAllUsersTitle "Instalar para todos os utilizadores?" +${LangFileString} SecFileAssocTitle "Associação dos ficheiros" +${LangFileString} SecDesktopTitle "Icone do ambiente de trabalho" + +${LangFileString} SecCoreDescription "Os ficheiros FreeCAD." +#${LangFileString} SecAllUsersDescription "Instalar o FreeCAD para todos os utilizadores ou apenas para o presente utilizador." +${LangFileString} SecFileAssocDescription "Os ficheiros com a extensão .FCStd irão abrir automaticamente no FreeCAD." +${LangFileString} SecDesktopDescription "Um icone do FreeCAD no ambiente de trabalho." +#${LangFileString} SecDictionaries "Dicionários" +#${LangFileString} SecDictionariesDescription "Dicionários do corretor ortográfico que podem ser descarregados e instalados." + +#${LangFileString} PathName 'Caminho ao ficheiro $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'O ficheiro $\"xxx.exe$\" não está no caminho especificado.' + +#${LangFileString} DictionariesFailed 'Falha ao descarregar o dicionário para o idioma $\"$R3$\".' + +#${LangFileString} ConfigInfo "A configuração seguinte do FreeCAD irá demorar um bocado." + +#${LangFileString} RunConfigureFailed "Não foi possível executar o script de configuração" +${LangFileString} InstallRunning "O instalador já está a correr!" +${LangFileString} AlreadyInstalled "O FreeCAD ${APP_SERIES_KEY2} já está instalado!$\r$\n\ + Não é recomendado instalar sobre uma instalação já existente se a versão instalada$\r$\n\ + é uma versão de teste ou se tiver problemas com a instalação atual.$\r$\n\ + Nestes casos é melhor reinstalar o FreeCAD$\r$\n\ + Quer continuar na mesma a instalar o FreeCAD sobre a versão existente?" +${LangFileString} NewerInstalled "Está a tentar instalar uma versão mais antiga do que a que tem instalada.$\r$\n\ + Se realmente quer fazer isto deve antes desinstalar o FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Parabéns! O FreeCAD foi instalado com sucesso.$\r$\n\ +# $\r$\n\ +# (O primeiro início do FreeCAD pode levar alguns segundos.)" +${LangFileString} FinishPageRun "Lançar o FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Incapaz de encontrar o FreeCAD no registry.$\r$\n\ + Os atalhos para o ambiente de trabalho no menu Start não serão removidos." +${LangFileString} UnInstallRunning "Deve fechar o FreeCAD em primeiro lugar!" +${LangFileString} UnNotAdminLabel "Precisa de privilégios de administrador para desinstalar o FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Tem a certeza que quer remover completamente o FreeCAD e todas as suas componentes?" +${LangFileString} UnFreeCADPreferencesTitle 'Preferências de utilizador do FreeCAD' + +#${LangFileString} SecUnProgDescription "Desinstala xxx." +${LangFileString} SecUnPreferencesDescription 'Apaga as pastas de configuração do FreeCAD$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + de todos os utilizadores.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Desinstala FreeCAD e todas as suas componentes." diff --git a/src/WindowsInstaller/lang/portugueseBR.nsh b/src/WindowsInstaller/lang/portugueseBR.nsh new file mode 100644 index 0000000000..b2925508e4 --- /dev/null +++ b/src/WindowsInstaller/lang/portugueseBR.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Brazilian Portuguese +*/ + +!insertmacro LANGFILE_EXT "PortugueseBR" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Instalado para o Usuário Atual)" + +${LangFileString} TEXT_WELCOME "Este assistente guiará você durante a instalação do $(^NameDA), $\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compilando scripts Python..." + +${LangFileString} TEXT_FINISH_DESKTOP "Criar atalho na área de trabalho" +${LangFileString} TEXT_FINISH_WEBSITE "Visite freecadweb.org para ver as últimas novidades do FreeCAD!" + +#${LangFileString} FileTypeTitle "Documento-FreeCAD" + +#${LangFileString} SecAllUsersTitle "Instalar para todos os usuários?" +${LangFileString} SecFileAssocTitle "Associações de arquivos" +${LangFileString} SecDesktopTitle "Ícone de área de trabalho" + +${LangFileString} SecCoreDescription "Os arquivos do FreeCAD." +#${LangFileString} SecAllUsersDescription "Instalar o FreeCAD para todos os usuários ou apenas para o usuário atual." +${LangFileString} SecFileAssocDescription "Arquivos com a extensão .FCStd serão abertos automaticamente no FreeCAD." +${LangFileString} SecDesktopDescription "Um ícone do FreeCAD na área de trabalho." +#${LangFileString} SecDictionaries "Dicionários" +#${LangFileString} SecDictionariesDescription "Dicionários ortográficos que podem ser baixados e instalados." + +#${LangFileString} PathName 'Caminho para o arquivo $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'O arquivo $\"xxx.exe$\" não existe no caminho especificado.' + +#${LangFileString} DictionariesFailed 'Ocorreu uma falha ao baixar o dicionário ortográfico do idioma $\"$R3$\".' + +#${LangFileString} ConfigInfo "A configuração do FreeCAD que será feita a seguir vai demorar bastante." + +#${LangFileString} RunConfigureFailed "Não foi possível executar o script de configuração" +${LangFileString} InstallRunning "O instalador já está em execução!" +${LangFileString} AlreadyInstalled "O FreeCAD ${APP_SERIES_KEY2} já está instalado!$\r$\n\ + Não é recomendado instalar sobre uma instalação existente se a versão já instalada$\r$\n\ + for uma versão de teste ou se houver algum problema com a instalação existente do FreeCAD.$\r$\n\ + Nesses casos é melhor reinstalar o FreeCAD.$\r$\n\ + Deseja instalar sobre a versão existente mesmo assim?" +${LangFileString} NewerInstalled "A versão que você está tentando instalar é mais antiga que aquela que já está instalada.$\r$\n\ + Se isso for realmente o que deseja, primeiro desinstale o FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Parabéns! O FreeCAD foi instalado com sucesso.$\r$\n\ +# $\r$\n\ +# (A primeira execução do FreeCAD pode demorar alguns segundos.)" +${LangFileString} FinishPageRun "Executar o FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Não foi possível encontrar o FreeCAD no Registro.$\r$\n\ + Os atalhos na área de trabalho e no Menu Iniciar não serão removidos." +${LangFileString} UnInstallRunning "É necessário fechar o FreeCAD primeiro!" +${LangFileString} UnNotAdminLabel "Para desinstalar o FreeCAD é necessário ter privilégios de administrador!" +${LangFileString} UnReallyRemoveLabel "Tem certeza que deseja remover completamente o FreeCAD e todos os seus componentes?" +${LangFileString} UnFreeCADPreferencesTitle 'Preferências de usuário do FreeCAD' + +#${LangFileString} SecUnProgDescription "Desinstala xxx." +${LangFileString} SecUnPreferencesDescription 'Exclui a configuração do FreeCAD$\r$\n\ + (pasta $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + para você ou para todos os usuários (se você for um administrador)).' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Desinstalar o FreeCAD e todos os seus componentes." diff --git a/src/WindowsInstaller/lang/romanian.nsh b/src/WindowsInstaller/lang/romanian.nsh new file mode 100644 index 0000000000..c95950fe2c --- /dev/null +++ b/src/WindowsInstaller/lang/romanian.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Romanian +*/ + +!insertmacro LANGFILE_EXT "Romanian" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "Acest asistent vă va ghida în procesul de instalare a programului FreeCAD. $\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." + +${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" + +#${LangFileString} FileTypeTitle "Document FreeCAD" + +#${LangFileString} SecAllUsersTitle "Doriţi să instalaţi pentru toţi utilizatorii?" +${LangFileString} SecFileAssocTitle "Asocierea fişierelor" +${LangFileString} SecDesktopTitle "Iconiţă pe desktop" + +${LangFileString} SecCoreDescription "Fişierele FreeCAD." +#${LangFileString} SecAllUsersDescription "Instalează FreeCAD pentru toţi utilizatorii sau doar pentru utilizatorul curent." +${LangFileString} SecFileAssocDescription "Fişierele cu extensia .FCStd vor fi deschise automat cu FreeCAD." +${LangFileString} SecDesktopDescription "A iconiţă FreeCAD pe desktop." +#${LangFileString} SecDictionaries "Dicționare" +#${LangFileString} SecDictionariesDescription "Spell-checker dictionaries that can be downloaded and installed." + +#${LangFileString} PathName 'Calea către fişierul $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Fişierul $\"xxx.exe$\" nu se află în calea specificată.' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "Configurarea programului FreeCAD va dura o perioadă de timp." + +#${LangFileString} RunConfigureFailed "Nu am putut executa scriptul de configurare" +${LangFileString} InstallRunning "Programul de instalare este deja pornit!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} este deja instalat!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "You are trying to install an older version of FreeCAD than what you have installed.$\r$\n\ + If you really want this, you must uninstall the existing FreeCAD $OldVersionNumber before." + +#${LangFileString} FinishPageMessage "Felicitări! FreeCAD a fost instalat cu succes.$\r$\n\ +# $\r$\n\ +# (Prima oară cînd porniţi FreeCAD s-ar putea să dureze cîteva secunde.)" +${LangFileString} FinishPageRun "Lansează FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Nu am găsit FreeCAD în registri.$\r$\n\ + Scurtăturile de pe desktop şi Start Menu nu vor fi şterse." +${LangFileString} UnInstallRunning "Trebuie să inchideţi FreeCAD prima oară!" +${LangFileString} UnNotAdminLabel "Trebuie să aveţi drepturi de administrator pentru dezinstalarea programului FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Sunteţi sigur că doriţi să dezinstalaţi programul FreeCAD şi toate componentele lui?" +${LangFileString} UnFreeCADPreferencesTitle 'Preferinţele utilizatorului pentru FreeCAD' + +#${LangFileString} SecUnProgDescription "Dezinstalează xxx." +${LangFileString} SecUnPreferencesDescription 'Şterge directorul cu setările FreeCAD$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + pentru toţi utilizatorii.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Dezinstalaţi programul FreeCAD şi toate componentele lui." diff --git a/src/WindowsInstaller/lang/russian.nsh b/src/WindowsInstaller/lang/russian.nsh new file mode 100644 index 0000000000..92cc4169fd --- /dev/null +++ b/src/WindowsInstaller/lang/russian.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Russian +*/ + +!insertmacro LANGFILE_EXT "Russian" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Установлено для текущего пользователя)" + +${LangFileString} TEXT_WELCOME "Этот мастер проведет вас через процесс установки $(^NameDA). $\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Компиляция скриптов Python..." + +${LangFileString} TEXT_FINISH_DESKTOP "Создать ярлык на рабочем столе" +${LangFileString} TEXT_FINISH_WEBSITE "Перейти на freecadweb.org за новостями, поддержкой и советами" + +#${LangFileString} FileTypeTitle "FreeCAD-Document" + +#${LangFileString} SecAllUsersTitle "Установить для всех пользователей?" +${LangFileString} SecFileAssocTitle "Ассоциации файлов" +${LangFileString} SecDesktopTitle "Значок на рабочем столе" + +${LangFileString} SecCoreDescription "Файлы FreeCAD." +#${LangFileString} SecAllUsersDescription "Установить FreeCAD для всех пользователей или только для текущего пользователя." +${LangFileString} SecFileAssocDescription "Файлы с расширением .FCStd будут автоматически открываться в FreeCAD." +${LangFileString} SecDesktopDescription "Значок FreeCAD на рабочем столе." +#${LangFileString} SecDictionaries "Словари" +#${LangFileString} SecDictionariesDescription "Словари для проверки орфографии, которые можно скачать и установить." + +#${LangFileString} PathName 'Путь к файлу $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Файл $\"xxx.exe$\" отсутствует по этому пути.' + +#${LangFileString} DictionariesFailed 'Не удалось загрузить словарь для языка $\"$R3$\".' + +#${LangFileString} ConfigInfo "Следующая конфигурация FreeCAD займет некоторое время." + +#${LangFileString} RunConfigureFailed "Не удалось выполнить сценарий настройки" +${LangFileString} InstallRunning "Установщик уже запущен!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} уже установлен!$\r$\n\ + Установка поверх существующих установок не рекомендуется, если установленная версия$\r$\n\ + является тестовым выпуском или у вас возникли проблемы с существующей установкой FreeCAD.$\r$\n\ + В этих случаях лучше переустановить FreeCAD.$\r$\n\ + Вы все равно хотите установить FreeCAD поверх существующей версии?" +${LangFileString} NewerInstalled "Вы пытаетесь установить более старую версию FreeCAD, чем уже установленная.$\r$\n\ + Если вы действительно хотите этого, то сначала необходимо удалить существующий FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Поздравляем! FreeCAD был успешно установлен.$\r$\n\ +# $\r$\n\ +# (Первый запуск FreeCAD может занять несколько секунд.)" +${LangFileString} FinishPageRun "Запустить FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Не удалось найти FreeCAD в реестре.$\r$\n\ + Ярлыки на рабочем столе и в меню Пуск не будут удалены." +${LangFileString} UnInstallRunning "Вы должны сначала закрыть FreeCAD!" +${LangFileString} UnNotAdminLabel "Необходимо иметь права администратора для удаления FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Вы действительно хотите полностью удалить FreeCAD и все его компоненты?" +${LangFileString} UnFreeCADPreferencesTitle 'Пользовательские настройки FreeCAD' + +#${LangFileString} SecUnProgDescription "Удалить менеджер xxx." +${LangFileString} SecUnPreferencesDescription 'Удалить настройки FreeCAD$\r$\n\ + (каталог $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + для вас или для всех пользователей (если вы администратор).' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Удалить FreeCAD и все его компоненты." diff --git a/src/WindowsInstaller/lang/slovak.nsh b/src/WindowsInstaller/lang/slovak.nsh new file mode 100644 index 0000000000..14e0aef61e --- /dev/null +++ b/src/WindowsInstaller/lang/slovak.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Slovak +*/ + +!insertmacro LANGFILE_EXT "Slovak" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Inštalované pre súčasného užívateľa)" + +${LangFileString} TEXT_WELCOME "Tento sprievodca Vám pomáha inštalovať FreeCAD.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Kompilácia Python skriptov..." + +${LangFileString} TEXT_FINISH_DESKTOP "Vytvoriť skratku pre pracovnú plochu" +${LangFileString} TEXT_FINISH_WEBSITE "Navštívte freecadweb.org pre posledné novinky, podporu a tipy" + +#${LangFileString} FileTypeTitle "FreeCAD dokument" + +#${LangFileString} SecAllUsersTitle "Inštalovať pre všetkých užívateľov?" +${LangFileString} SecFileAssocTitle "Asociácie súborov" +${LangFileString} SecDesktopTitle "Ikona pracovnej plochy" + +${LangFileString} SecCoreDescription "Súbory FreeCADu." +#${LangFileString} SecAllUsersDescription "Inštalovať FreeCAD pre všetkých užívateľov alebo len pre súčasného užívateľa." +${LangFileString} SecFileAssocDescription "Súbory s rozšírením .FCStd sa automaticky otvárajú v FreeCADe." +${LangFileString} SecDesktopDescription "Ikona FreeCADa na pracovnej ploche." +#${LangFileString} SecDictionaries "Slovníky" +#${LangFileString} SecDictionariesDescription "Slovníky pre kontrolu pravopisu ktoré možno načítať a inštalovať." + +#${LangFileString} PathName 'Cesta na súbor $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Súbor $\"xxx.exe$\" nie je na špecifikovanej ceste.' + +#${LangFileString} DictionariesFailed 'Načítanie slovníka pre jazyk $\"$R3$\" zlyhalo.' + +#${LangFileString} ConfigInfo "Nasledujúca konfigurácia FreeCADu trochu potrvá." + +#${LangFileString} RunConfigureFailed "Nedal sa spustiť konfiguračný skript" +${LangFileString} InstallRunning "Inštalačný program už beží!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} je už inštalovaný!$\r$\n\ + Inštalovať ponad existujúce inštalácie sa nedoporučuje keď inštalovaná verzia$\r$\n\ + je testovné vydanie alebo keď máte problémy s existujúcou inštaláciou.$\r$\n\ + V takýchto prípadoch je lepšie reinštalovať FreeCAD.$\r$\n\ + Napriek tomu chcete inštalovať FreeCAD ponad existujúcu verziu?" +${LangFileString} NewerInstalled "Pokúšate sa inštalovať verziu FreeCADu ktorá je staršia ako tá ktorá je inštalovaná.$\r$\n\ + Keď to naozaj chcete, odinštalujte najprv existujúci FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Gratulácia! FreeCAD bol úspešne inštalovaný.$\r$\n\ +# $\r$\n\ +# (Prvý FreeCAD štart môže trvať niekoľko sekúnd.)" +${LangFileString} FinishPageRun "Spustiť FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Nemôžem nájsť FreeCAD v registre.$\r$\n\ + Skratky na pracovnej ploche a v štartovacom Menu sa nedajú odstrániť." +${LangFileString} UnInstallRunning "Najprv treba zavrieť FreeCAD!" +${LangFileString} UnNotAdminLabel "Pre odinštaláciu FreeCAD potrebujete administrátorské práva!" +${LangFileString} UnReallyRemoveLabel "Ste si istý, že chcete kompletne odinštalovať FreeCAD a všetky jeho súčiastky?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCADove užívateľské nastavenia' + +#${LangFileString} SecUnProgDescription "Odinštaluje xxx." +${LangFileString} SecUnPreferencesDescription 'Odstráni konfiguračný adresár FreeCADu $\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + pre všetkých užívateľov (keď máte administrátorské práva).' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Odinštaluj FreeCAD a všetky jeho súčiastky." diff --git a/src/WindowsInstaller/lang/spanish.nsh b/src/WindowsInstaller/lang/spanish.nsh new file mode 100644 index 0000000000..eb6c5a2079 --- /dev/null +++ b/src/WindowsInstaller/lang/spanish.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Spanish +*/ + +!insertmacro LANGFILE_EXT "Spanish" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Instalado para el actual usuario)" + +${LangFileString} TEXT_WELCOME "Este programa instalará FreeCAD en su ordenador.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compilando guiones Python..." + +${LangFileString} TEXT_FINISH_DESKTOP "Crear acceso directo en el escritorio" +${LangFileString} TEXT_FINISH_WEBSITE "Visite freecadweb.org para últimas noticias, ayuda y consejos" + +#${LangFileString} FileTypeTitle "Documento FreeCAD" + +#${LangFileString} SecAllUsersTitle "Instalar para todos los usuarios" +${LangFileString} SecFileAssocTitle "Asociar ficheros" +${LangFileString} SecDesktopTitle "Icono de escritorio" + +${LangFileString} SecCoreDescription "Los ficheros de FreeCAD." +#${LangFileString} SecAllUsersDescription "Instalar FreeCAD para todos los usuarios o sólo para el usuario actual." +${LangFileString} SecFileAssocDescription "Asociar la extensión .FCStd con FreeCAD." +${LangFileString} SecDesktopDescription "Crear un icono de FreeCAD en el escritorio." +#${LangFileString} SecDictionaries "Diccionarios" +#${LangFileString} SecDictionariesDescription "Diccionarios de revisión ortográfica que se pueden descargar e instalar." + +#${LangFileString} PathName 'Ruta al fichero $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Imposible encontrar $\"xxx.exe$\".' + +#${LangFileString} DictionariesFailed 'La descarga del diccionario para el idioma $\"$R3$\" ha fallado.' + +#${LangFileString} ConfigInfo "La siguiente configuración de FreeCAD va a tardar un poco." + +#${LangFileString} RunConfigureFailed "Error al intentar ejecutar el programa de configuración" +${LangFileString} InstallRunning "El instalador ya está siendo ejecutado!" +${LangFileString} AlreadyInstalled "¡FreeCAD ${APP_SERIES_KEY2} ya está instalado!$\r$\n\ + Se recomienda no instalar sobre una instalación existente$\r$\n\ + si la versión instalada es de prueba o da problemas.$\r$\n\ + En estos casos es mejor reinstalar FreeCAD.$\r$\n\ + Aún así, ¿quiere instalar FreeCAD sobre la versión existente?" +${LangFileString} NewerInstalled "Está tratando de instalar una versión de FreeCAD más antigua que la que tiene instalada.$\r$\n\ + Si realmente lo desea, debe desinstalar antes la versión de FreeCAD instalada $OldVersionNumber." + +#${LangFileString} FinishPageMessage "¡Enhorabuena! FreeCAD ha sido instalado con éxito.$\r$\n\ +# $\r$\n\ +# (El primer arranque de FreeCAD puede tardar algunos segundos.)" +${LangFileString} FinishPageRun "Ejecutar FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Imposible encontrar FreeCAD en el registro.$\r$\n\ + Los accesos rápidos del escritorio y del Menú de Inicio no serán eliminados." +${LangFileString} UnInstallRunning "Antes cierre FreeCAD!" +${LangFileString} UnNotAdminLabel "Necesita privilegios de administrador para desinstalar FreeCAD!" +${LangFileString} UnReallyRemoveLabel "¿Está seguro de que desea eliminar completamente FreeCAD y todos sus componentes?" +${LangFileString} UnFreeCADPreferencesTitle 'Preferencias de usuario de FreeCAD' + +#${LangFileString} SecUnProgDescription "Desinstala xxx." +${LangFileString} SecUnPreferencesDescription 'Elimina las carpetas de configuración de FreeCAD$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + de todos los usuarios.' +${LangFileString} DialogUnPreferences 'Eligió eliminar la configuración de usuario de FreeCAD.$\r$\n\ + Esto también eliminará todos los addons de FreeCAD instalados.$\r$\n\ + ¿Está de acuerdo con esto?' +${LangFileString} SecUnProgramFilesDescription "Desinstala FreeCAD y todos sus componentes." diff --git a/src/WindowsInstaller/lang/swedish.nsh b/src/WindowsInstaller/lang/swedish.nsh new file mode 100644 index 0000000000..22bb333d20 --- /dev/null +++ b/src/WindowsInstaller/lang/swedish.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Swedish +*/ + +!insertmacro LANGFILE_EXT "Swedish" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installerad för aktuell användare)" + +${LangFileString} TEXT_WELCOME "Denna guide tar dig igenom installationen av $(^NameDA), $\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Kompilerar Pythonskript..." + +${LangFileString} TEXT_FINISH_DESKTOP "Skapa skrivbordsgenväg" +${LangFileString} TEXT_FINISH_WEBSITE "Besök freecadweb.org för de senaste nyheterna, support och tips" + +#${LangFileString} FileTypeTitle "FreeCAD-dokument" + +#${LangFileString} SecAllUsersTitle "Installera för alla användare?" +${LangFileString} SecFileAssocTitle "Filassociationer" +${LangFileString} SecDesktopTitle "Skrivbordsikon" + +${LangFileString} SecCoreDescription "FreeCAD-filerna." +#${LangFileString} SecAllUsersDescription "Installera FreeCAD för alla användare, eller enbart för den aktuella användaren." +${LangFileString} SecFileAssocDescription "Filer med ändelsen .FCStd kommer att automatiskt öppnas i FreeCAD." +${LangFileString} SecDesktopDescription "En FreeCAD-ikon på skrivbordet." +#${LangFileString} SecDictionaries "Ordböcker" +#${LangFileString} SecDictionariesDescription "Stavningskontrollens ordböcker som kan laddas ned och installeras." + +#${LangFileString} PathName 'Sökväg till filen $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'Filen $\"xxx.exe$\" finns inte i den angivna sökvägen.' + +#${LangFileString} DictionariesFailed 'Nedladdning av ordbok för språk $\"$R3$\" misslyckades.' + +#${LangFileString} ConfigInfo "Följande konfigurering av FreeCAD kommer att ta en stund." + +#${LangFileString} RunConfigureFailed "Kunde inte köra konfigurationsskriptet" +${LangFileString} InstallRunning "Installationsprogrammet körs redan!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} är redan installerad!$\r$\n\ + Att installera över en nuvarande installation är inte rekommenderat om den installerade$\r$\n\ + versionen är en testutgåva eller om du har problem med din nuvarande FreeCAD-installation.$\r$\n\ + I dessa fall är det bättre att ominstallera FreeCAD.$\r$\n\ + Vill du ändå installera FreeCAD över den nuvarande versionen?" +${LangFileString} NewerInstalled "Du försöker att installera en äldre version av FreeCAD än vad du har installerad.$\r$\n\ + Om du verkligen vill detta måste du avinstallera den befintliga FreeCAD $OldVersionNumber innan." + +#${LangFileString} FinishPageMessage "Gratulerar! FreeCAD har installerats framgångsrikt.$\r$\n\ +# $\r$\n\ +# (Den första starten av FreeCAD kan ta en stund.)" +${LangFileString} FinishPageRun "Kör FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Kan inte hitta FreeCAD i registret.$\r$\n\ + Genvägar på skrivbordet och i startmenyn kommer inte att tas bort." +${LangFileString} UnInstallRunning "Du måste stänga FreeCAD först!" +${LangFileString} UnNotAdminLabel "Du måste ha administratörsbehörighet för att avinstallera FreeCAD!" +${LangFileString} UnReallyRemoveLabel "Är du säker på att du verkligen vill fullständigt ta bort FreeCAD och alla dess komponenter?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCAD-användarinställningar' + +#${LangFileString} SecUnProgDescription "Avinstallerar xxx." +${LangFileString} SecUnPreferencesDescription 'Raderar FreeCAD-konfiguration$\r$\n\ + (katalog $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + för dig eller för alla användare (om du är admin).' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Avinstallera FreeCAD och alla dess komponenter." diff --git a/src/WindowsInstaller/lang/turkish.nsh b/src/WindowsInstaller/lang/turkish.nsh new file mode 100644 index 0000000000..dd1511abcf --- /dev/null +++ b/src/WindowsInstaller/lang/turkish.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Turkish +*/ + +!insertmacro LANGFILE_EXT "Turkish" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Installed for Current User)" + +${LangFileString} TEXT_WELCOME "Bu sihirbaz size FreeCAD programını kuracak.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Compiling Python scripts..." + +${LangFileString} TEXT_FINISH_DESKTOP "Create desktop shortcut" +${LangFileString} TEXT_FINISH_WEBSITE "Visit freecadweb.org for the latest news, support and tips" + +#${LangFileString} FileTypeTitle "FreeCAD-Document" + +#${LangFileString} SecAllUsersTitle "Tüm kullanıcılar için kur?" +${LangFileString} SecFileAssocTitle "Dosya eşleşmeleri" +${LangFileString} SecDesktopTitle "Masaüstü ikonu" + +${LangFileString} SecCoreDescription "FreeCAD dosyaları." +#${LangFileString} SecAllUsersDescription "FreeCAD tüm kullanıcılar için mi yoksa yalnızca bu kullanıcıya mı kurulacak." +${LangFileString} SecFileAssocDescription "Uzantısı .FCStd olan dosyalar otomatik olarak FreeCAD ile açılsın." +${LangFileString} SecDesktopDescription "Masaüstüne bir FreeCAD ikonu koy." +#${LangFileString} SecDictionaries "Sözlükleri" +#${LangFileString} SecDictionariesDescription "Spell-checker dictionaries that can be downloaded and installed." + +#${LangFileString} PathName 'Path to the file $\"xxx.exe$\"' +#${LangFileString} InvalidFolder '$\"xxx.exe$\" dosyası belirttiğiniz dizinde bulunamadı.' + +#${LangFileString} DictionariesFailed 'Download of dictionary for language $\"$R3$\" failed.' + +#${LangFileString} ConfigInfo "Sıradaki FreeCAD yapılandırması biraz zaman alacak." + +#${LangFileString} RunConfigureFailed "Yapılandırma programı çalıştırılamadı" +${LangFileString} InstallRunning "Kurulum programı zaten çalışıyor!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} kurulu zaten!$\r$\n\ + Installing over existing installations is not recommended if the installed version$\r$\n\ + is a test release or if you have problems with your existing FreeCAD installation.$\r$\n\ + In these cases better reinstall FreeCAD.$\r$\n\ + Dou you nevertheles want to install FreeCAD over the existing version?" +${LangFileString} NewerInstalled "You are trying to install an older version of FreeCAD than what you have installed.$\r$\n\ + If you really want this, you must uninstall the existing FreeCAD $OldVersionNumber before." + +#${LangFileString} FinishPageMessage "Tebrikler! FreeCAD başarıyla kuruldu.$\r$\n\ +# $\r$\n\ +# (FreeCAD in ilk açılışı birkaç saniye alabilir.)" +${LangFileString} FinishPageRun "FreeCAD Başlat" + +${LangFileString} UnNotInRegistryLabel "Sistem kütüğünde FreeCAD bulunamadı.$\r$\n\ + Başlat menüsü ve masaüstünüzdeki kısayollar silinemeyecek." +${LangFileString} UnInstallRunning "Önce FreeCAD i kapatmalısınız!" +${LangFileString} UnNotAdminLabel "FreeCAD kaldırabilmek için yönetici yetkileri gerekiyor!" +${LangFileString} UnReallyRemoveLabel "FreeCAD ve tüm bileşenlerini kaldırmak istediğinize emin misiniz?" +${LangFileString} UnFreeCADPreferencesTitle 'FreeCAD$\'s user preferences' + +#${LangFileString} SecUnProgDescription "Uninstalls xxx." +${LangFileString} SecUnPreferencesDescription 'Deletes FreeCAD$\'s configuration folder$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + for all users.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Uninstall FreeCAD and all of its components." diff --git a/src/WindowsInstaller/lang/ukrainian.nsh b/src/WindowsInstaller/lang/ukrainian.nsh new file mode 100644 index 0000000000..d1e4f975f2 --- /dev/null +++ b/src/WindowsInstaller/lang/ukrainian.nsh @@ -0,0 +1,70 @@ +/* +FreeCAD Installer Language File +Language: Ukrainian +*/ + +!insertmacro LANGFILE_EXT "Ukrainian" + +${LangFileString} TEXT_INSTALL_CURRENTUSER "(Встановлено для поточного користувача)" + +${LangFileString} TEXT_WELCOME "За допомогою цього майстра ви зможете встановити FreeCAD у вашу систему.$\r$\n\ + $\r$\n\ + $_CLICK" + +#${LangFileString} TEXT_CONFIGURE_PYTHON "Обробка скриптів Python..." + +${LangFileString} TEXT_FINISH_DESKTOP "Створити значок на стільниці" +${LangFileString} TEXT_FINISH_WEBSITE "Відвідати freecadweb.org, щоб ознайомитися з новинами, довідковими матеріалами та підказками" + +#${LangFileString} FileTypeTitle "Документ FreeCAD" + +#${LangFileString} SecAllUsersTitle "Встановити для всіх користувачів?" +${LangFileString} SecFileAssocTitle "Прив’язка файлів" +${LangFileString} SecDesktopTitle "Піктограма стільниці" + +${LangFileString} SecCoreDescription "Файли FreeCAD." +#${LangFileString} SecAllUsersDescription "Визначає, чи слід встановити FreeCAD для всіх користувачів, чи лише для поточного користувача." +${LangFileString} SecFileAssocDescription "Файли з суфіксом .FCStd автоматично відкриватимуться за допомогою FreeCAD." +${LangFileString} SecDesktopDescription "Піктограма FreeCAD на стільниці." +#${LangFileString} SecDictionaries "Словники" +#${LangFileString} SecDictionariesDescription "Словники для перевірки правопису, які можна отримати і встановити." + +#${LangFileString} PathName 'Розташування файла $\"xxx.exe$\"' +#${LangFileString} InvalidFolder 'У вказаній теці немає файла $\"xxx.exe$\".' + +#${LangFileString} DictionariesFailed 'Спроба отримання словника для мови $\"$R3$\" зазнала невдачі.' + +#${LangFileString} ConfigInfo "Налаштування FreeCAD може тривати досить довго." + +#${LangFileString} RunConfigureFailed "Не вдалося виконати скрипт налаштування" +${LangFileString} InstallRunning "Засіб для встановлення вже працює!" +${LangFileString} AlreadyInstalled "FreeCAD ${APP_SERIES_KEY2} вже встановлено!$\r$\n\ + Встановлення нової версії на місце вже встановлених не рекомендоване, якщо$\r$\n\ + встановлено тестову версію або у вас виникають проблеми із уже встановленим FreeCAD.$\r$\n\ + У таких випадках краще перевстановити FreeCAD.$\r$\n\ + Чи хочете ви попри ці зауваження встановити FreeCAD на місце наявної версії?" +${LangFileString} NewerInstalled "Ви намагаєтеся встановити версію FreeCAD, яка є застарілою порівняно з вже встановленою.$\r$\n\ + Якщо ви хочете встановити застарілу версію, вам слід спочатку вилучити вже встановлений FreeCAD $OldVersionNumber." + +#${LangFileString} FinishPageMessage "Вітаємо! FreeCAD було успішно встановлено.$\r$\n\ +# $\r$\n\ +# (Перший запуск FreeCAD може тривати декілька секунд.)" +${LangFileString} FinishPageRun "Запустити FreeCAD" + +${LangFileString} UnNotInRegistryLabel "Не вдалося знайти записи FreeCAD у регістрі.$\r$\n\ + Записи на стільниці і у меню запуску вилучено не буде." +${LangFileString} UnInstallRunning "Спочатку слід завершити роботу програми FreeCAD!" +${LangFileString} UnNotAdminLabel "Для вилучення FreeCAD вам слід мати привілеї адміністратора!" +${LangFileString} UnReallyRemoveLabel "Ви справді бажаєте повністю вилучити FreeCAD і всі його компоненти?" +${LangFileString} UnFreeCADPreferencesTitle 'Параметри FreeCAD, встановлені користувачем' + +#${LangFileString} SecUnProgDescription "Вилучає xxx." +${LangFileString} SecUnPreferencesDescription 'Вилучає теку з налаштуваннями FreeCAD$\r$\n\ + $\"$AppPre\username\$\r$\n\ + $AppSuff\$\r$\n\ + ${APP_DIR_USERDATA}$\")$\r$\n\ + для всіх користувачів.' +${LangFileString} DialogUnPreferences 'You chose to delete the FreeCADs user configuration.$\r$\n\ + This will also delete all installed FreeCAD addons.$\r$\n\ + Do you agree with this?' +${LangFileString} SecUnProgramFilesDescription "Вилучити FreeCAD і всі його компоненти." diff --git a/src/WindowsInstaller/setup/configure.nsh b/src/WindowsInstaller/setup/configure.nsh new file mode 100644 index 0000000000..d91c8ca3b4 --- /dev/null +++ b/src/WindowsInstaller/setup/configure.nsh @@ -0,0 +1,103 @@ +/* + +configure.nsh + +Write registry information and configure FreeCAD + +*/ + +#!define SHORTCUT '${APP_NAME} ${APP_SERIES_NAME}.lnk" "$INSTDIR\${APP_RUN}" "" "$INSTDIR\${APP_RUN}" "" "" "" "${APP_INFO}"' + +#-------------------------------- +# Registry information + +Section -InstallData + + # Registry information + WriteRegStr SHCTX ${APP_REGKEY} "" $INSTDIR + WriteRegStr SHCTX ${APP_REGKEY} "Version" "${APP_VERSION_NUMBER}" + + # Start Menu shortcut + SetOutPath "$INSTDIR\bin" # this is the folder in which the shortcut is executed + # we must assure that the folder is not empty (happens on silent install and can accidentally happen) + ${if} $StartmenuFolder == "" + StrCpy $StartmenuFolder "${APP_DIR}" + ${endif} + CreateDirectory "$SMPROGRAMS\$StartmenuFolder" + CreateShortCut "$SMPROGRAMS\$StartmenuFolder\${APP_NAME}.lnk" "$INSTDIR\${APP_RUN}" "" "$INSTDIR\${APP_RUN}" "" "" "" "${APP_INFO}" + # Link to website and Wiki + WriteINIStr "$SMPROGRAMS\$StartmenuFolder\${APP_WEBPAGE_INFO}.url" "InternetShortcut" "URL" "${APP_WEBPAGE}" + WriteINIStr "$SMPROGRAMS\$StartmenuFolder\${APP_WIKI_INFO}.url" "InternetShortcut" "URL" "${APP_WIKI}" + # create desktop icon + ${if} $CreateDesktopIcon == "true" + SetOutPath "$INSTDIR\bin" + CreateShortCut "$DESKTOP\${APP_NAME} ${APP_SERIES_NAME}.lnk" "$INSTDIR\${APP_RUN}" "" "$INSTDIR\${APP_RUN}" "" "" "" "${APP_INFO}" + ${endif} + + # Uninstaller information + ${If} $MultiUser.InstallMode == "CurrentUser" + WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayName" "${APP_NAME} ${APP_VERSION} $(TEXT_INSTALL_CURRENTUSER)" + ${Else} + WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayName" "${APP_NAME} ${APP_VERSION}" + ${EndIf} + + WriteRegStr SHCTX ${APP_UNINST_KEY} "UninstallString" '"$INSTDIR\${SETUP_UNINSTALLER}"' + WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayVersion" "${APP_VERSION}" + WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayIcon" "$INSTDIR\bin\FreeCAD.exe" + WriteRegStr SHCTX ${APP_UNINST_KEY} "URLUpdateInfo" "${APP_WEBPAGE}" + WriteRegStr SHCTX ${APP_UNINST_KEY} "URLInfoAbout" "https://www.freecadweb.org/" + WriteRegStr SHCTX ${APP_UNINST_KEY} "Publisher" "${APP_NAME} Team" + WriteRegStr SHCTX ${APP_UNINST_KEY} "HelpLink" "https://forum.freecadweb.org/" + WriteRegDWORD SHCTX ${APP_UNINST_KEY} "NoModify" 0x00000001 + WriteRegDWORD SHCTX ${APP_UNINST_KEY} "NoRepair" 0x00000001 + WriteRegStr SHCTX ${APP_UNINST_KEY} "StartMenu" "$SMPROGRAMS\$StartmenuFolder" + + # if we install over an older existing version, remove the old uninstaller information + ${if} $OldVersionNumber < ${APP_SERIES_KEY} + DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber" + # also delete in the case of an emergency release + DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber1" + ${endif} + +SectionEnd + +#-------------------------------- +# Write FreeCAD file associations + +Section -Configure + + # Associate .FCStd files with FreeCAD for current user or all users + + ${if} $CreateFileAssociations == "true" + WriteRegStr SHCTX "${APP_DIR_REGKEY}" "" "$INSTDIR\${APP_RUN}" + ${endif} + + ${if} $CreateFileAssociations == "true" + WriteRegStr SHCTX "Software\Classes\${APP_REGNAME_DOC}" "" "${APP_NAME} Document" + WriteRegStr SHCTX "Software\Classes\${APP_REGNAME_DOC}\DefaultIcon" "" "$INSTDIR\${APP_RUN},0" + WriteRegStr SHCTX "Software\Classes\${APP_REGNAME_DOC}\Shell\open\command" "" '"$INSTDIR\${APP_RUN}" "%1"' + # we need to update also the automatically created entry about the FreeCAD.exe + # otherwise .FCStd-files will could be opened with an older FreeCAD version + ReadRegStr $0 SHCTX "Software\Classes\Applications\${BIN_FREECAD}\shell\open\command" "" + ${if} $0 != "" # if something was found + WriteRegStr SHCTX "Software\Classes\Applications\${BIN_FREECAD}\shell\open\command" "" '"$INSTDIR\${APP_RUN}" "%1"' + ${endif} + # .FCStd + WriteRegStr SHCTX "Software\Classes\${APP_EXT}" "" "${APP_REGNAME_DOC}" + WriteRegStr SHCTX "Software\Classes\${APP_EXT}" "Content Type" "${APP_MIME_TYPE}" + # FIXME: what about .FCMat and .FCMacro? + + # Refresh shell + ${RefreshShellIcons} + ${endif} + +SectionEnd + +#-------------------------------- +# + +Function StartFreeCAD + + Exec "$INSTDIR\${APP_RUN}" + +FunctionEnd diff --git a/src/WindowsInstaller/setup/install.nsh b/src/WindowsInstaller/setup/install.nsh new file mode 100644 index 0000000000..3ba5ababce --- /dev/null +++ b/src/WindowsInstaller/setup/install.nsh @@ -0,0 +1,50 @@ +/* + +install.nsh + +Installation of program files, dictionaries and external components + +*/ + +#-------------------------------- +# Program files + +Section -ProgramFiles SecProgramFiles + + # if the $INSTDIR does not contain "FreeCAD" we must add a subfolder to avoid that FreeCAD will e.g. + # be installed directly to C:\programs - the uninstaller will then delete the whole + # C:\programs directory + StrCpy $String $INSTDIR + StrCpy $Search "FreeCAD" + Call StrPoint # function from Utils.nsh + ${if} $Pointer == "-1" + StrCpy $INSTDIR "$INSTDIR\${APP_DIR}" + ${endif} + + # Install and register the core FreeCAD files + + # Initializes the plug-ins dir ($PLUGINSDIR) if not already initialized. + # $PLUGINSDIR is automatically deleted when the installer exits. + InitPluginsDir + + # Binaries + SetOutPath "$INSTDIR" + # recursively copy all files under bin + File /r "${FILES_FREECAD}\bin" + + # MSVC redistributable DLLs + SetOutPath "$INSTDIR\bin" + File "${FILES_DEPS}\*.*" + + # Others + SetOutPath "$INSTDIR" + File /r "${FILES_FREECAD}\data" + File /r "${FILES_FREECAD}\doc" + File /r "${FILES_FREECAD}\Ext" + File /r "${FILES_FREECAD}\lib" + File /r "${FILES_FREECAD}\Mod" + + # Create uninstaller + WriteUninstaller "$INSTDIR\${SETUP_UNINSTALLER}" + +SectionEnd diff --git a/src/WindowsInstaller/setup/uninstall.nsh b/src/WindowsInstaller/setup/uninstall.nsh new file mode 100644 index 0000000000..9dbbb89658 --- /dev/null +++ b/src/WindowsInstaller/setup/uninstall.nsh @@ -0,0 +1,82 @@ +/* + +uninstall.nsh + +Uninstall + +*/ + +Var FileAssociation + +# ---------------------------------- + +Section "un.FreeCAD" un.SecUnProgramFiles + + SectionIn RO + + # delete start menu folder + ReadRegStr $0 SHCTX "${APP_UNINST_KEY}" "StartMenu" + RMDir /r "$0" + # delete desktop icon + Delete "$DESKTOP\${APP_NAME} ${APP_SERIES_NAME}.lnk" + + # remove file extension .FCStd + ReadRegStr $R0 SHCTX "Software\Classes\${APP_EXT}" "" + ${if} $R0 == "${APP_REGNAME_DOC}" + DeleteRegKey SHCTX "Software\Classes\${APP_EXT}" + #DeleteRegKey SHCTX "Software\Classes\${APP_REGNAME_DOC}" + ${endif} + ${if} $MultiUser.Privileges == "Admin" + DeleteRegKey HKCR "${APP_NAME}.Document" + ${endif} + + # Uninstaller itself + Delete "$INSTDIR\${SETUP_UNINSTALLER}" + + # Application folder + SetOutPath "$TEMP" + RMDir /r "$INSTDIR" + + # Registry keys and values + DeleteRegKey SHCTX "${APP_REGKEY_SETUP}" + DeleteRegKey SHCTX "${APP_REGKEY}" + DeleteRegKey SHCTX "${APP_UNINST_KEY}" + DeleteRegKey HKCR "Applications\${BIN_FREECAD}" + DeleteRegValue HKCR "${APP_NAME}.Document\Shell\open\command" "" + DeleteRegValue HKCR "${APP_NAME}.Document\DefaultIcon" "" + + # File associations + ReadRegStr $FileAssociation SHELL_CONTEXT "Software\Classes\${APP_EXT}" "" + + ${If} $FileAssociation == "${APP_REGNAME_DOC}" + DeleteRegKey SHELL_CONTEXT "Software\Classes\${APP_EXT}" + ${EndIf} + + # clean other registry entries + DeleteRegKey SHCTX "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\${APP_NAME}.exe" + DeleteRegKey SHCTX "SOFTWARE\${APP_REGKEY}" + +SectionEnd + +#--------------------------------- +# user preferences +Section /o "un.$(UnFreeCADPreferencesTitle)" un.SecUnPreferences + + # issue a warning dialog + MessageBox MB_YESNO|MB_DEFBUTTON2|MB_ICONEXCLAMATION $(DialogUnPreferences) /SD IDYES IDYES +2 # continue if yes + Goto NotPreferences + # remove FreeCAD's config files + StrCpy $AppSubfolder ${APP_DIR_USERDATA} + Call un.DelAppPathSub # function from Utils.nsh + NotPreferences: + # remove registry settings + DeleteRegKey HKCU "Software\${APP_NAME}\${APP_NAME}${APP_SERIES_NAME}" + +SectionEnd + +#--------------------------------- +# Section descriptions +!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN +!insertmacro MUI_DESCRIPTION_TEXT ${un.SecUnPreferences} "$(SecUnPreferencesDescription)" +!insertmacro MUI_DESCRIPTION_TEXT ${un.SecUnProgramFiles} "$(SecUnProgramFilesDescription)" +!insertmacro MUI_UNFUNCTION_DESCRIPTION_END