mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: Improvement in user interface regarding the configuration of archivers.
ADD: When attempting to quit configuration of archivers with unsaved modification, we're now prompt to save or not. ADD: When disabling an archiver configuration, the whole setting turn gray. ADD: We may now start a new archiver configuration by copying an existing one. ADD: We may now import/export configuration or archivers. ADD: We may now sort the archivers in the configuration. ADD: Function enable/disable all the archivers at once. ADD: New internal command "cm_ConfigArchivers". ADD: When importing/export toolbar to TC, there is now an translation between "cm_ConfigArchivers" and "cm_PackerConfig". ADD: Little variable reminder helper in popup menu for commands and parameters. UPD: Language file regenerated. Minimal impact with above modification since existing translation have been re-used, with no additional "Fuzzy". UPD: French language translation back 100% done.
This commit is contained in:
parent
673c114d7b
commit
21e0a429dd
40 changed files with 341406 additions and 339844 deletions
25142
language/doublecmd.bg.po
25142
language/doublecmd.bg.po
File diff suppressed because it is too large
Load diff
26463
language/doublecmd.ca.po
26463
language/doublecmd.ca.po
File diff suppressed because it is too large
Load diff
24218
language/doublecmd.cs.po
24218
language/doublecmd.cs.po
File diff suppressed because it is too large
Load diff
25574
language/doublecmd.da.po
25574
language/doublecmd.da.po
File diff suppressed because it is too large
Load diff
24792
language/doublecmd.de.po
24792
language/doublecmd.de.po
File diff suppressed because it is too large
Load diff
24813
language/doublecmd.el.po
24813
language/doublecmd.el.po
File diff suppressed because it is too large
Load diff
24266
language/doublecmd.es.po
24266
language/doublecmd.es.po
File diff suppressed because it is too large
Load diff
24917
language/doublecmd.fr.po
24917
language/doublecmd.fr.po
File diff suppressed because it is too large
Load diff
25676
language/doublecmd.hr.po
25676
language/doublecmd.hr.po
File diff suppressed because it is too large
Load diff
24905
language/doublecmd.hu.po
24905
language/doublecmd.hu.po
File diff suppressed because it is too large
Load diff
25199
language/doublecmd.it.po
25199
language/doublecmd.it.po
File diff suppressed because it is too large
Load diff
24875
language/doublecmd.ja.po
24875
language/doublecmd.ja.po
File diff suppressed because it is too large
Load diff
25206
language/doublecmd.ko.po
25206
language/doublecmd.ko.po
File diff suppressed because it is too large
Load diff
24186
language/doublecmd.nl.po
24186
language/doublecmd.nl.po
File diff suppressed because it is too large
Load diff
24223
language/doublecmd.pl.po
24223
language/doublecmd.pl.po
File diff suppressed because it is too large
Load diff
|
|
@ -1891,6 +1891,10 @@ msgstr ""
|
|||
msgid "Copy path to command line"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.actbenchmark.caption
|
||||
msgid "&Benchmark"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.actbriefview.caption
|
||||
msgid "Brief view"
|
||||
msgstr ""
|
||||
|
|
@ -1985,6 +1989,10 @@ msgctxt "TFRMMAIN.ACTCOMPAREDIRECTORIES.HINT"
|
|||
msgid "Compare Directories"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.actconfigarchivers.caption
|
||||
msgid "Configuration of Archivers"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.actconfigdirhotlist.caption
|
||||
msgctxt "tfrmmain.actconfigdirhotlist.caption"
|
||||
msgid "Configuration of Directory Hotlist"
|
||||
|
|
@ -2797,11 +2805,6 @@ msgctxt "tfrmmain.lblcommandpath.caption"
|
|||
msgid "Path"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.menuitem2.caption
|
||||
msgctxt "TFRMMAIN.MENUITEM2.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mi2080.caption
|
||||
msgid "&20/80"
|
||||
msgstr ""
|
||||
|
|
@ -2843,181 +2846,6 @@ msgstr ""
|
|||
msgid "Create link..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline1.caption
|
||||
msgctxt "TFRMMAIN.MILINE1.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline10.caption
|
||||
msgctxt "TFRMMAIN.MILINE10.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline11.caption
|
||||
msgctxt "TFRMMAIN.MILINE11.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline12.caption
|
||||
msgctxt "TFRMMAIN.MILINE12.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline13.caption
|
||||
msgctxt "TFRMMAIN.MILINE13.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline14.caption
|
||||
msgctxt "TFRMMAIN.MILINE14.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline15.caption
|
||||
msgctxt "TFRMMAIN.MILINE15.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline16.caption
|
||||
msgctxt "TFRMMAIN.MILINE16.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline17.caption
|
||||
msgctxt "TFRMMAIN.MILINE17.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline18.caption
|
||||
msgctxt "TFRMMAIN.MILINE18.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline19.caption
|
||||
msgctxt "TFRMMAIN.MILINE19.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline2.caption
|
||||
msgctxt "TFRMMAIN.MILINE2.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline20.caption
|
||||
msgctxt "TFRMMAIN.MILINE20.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline21.caption
|
||||
msgctxt "TFRMMAIN.MILINE21.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline22.caption
|
||||
msgctxt "TFRMMAIN.MILINE22.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline23.caption
|
||||
msgctxt "TFRMMAIN.MILINE23.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline24.caption
|
||||
msgctxt "TFRMMAIN.MILINE24.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline25.caption
|
||||
msgctxt "TFRMMAIN.MILINE25.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline26.caption
|
||||
msgctxt "TFRMMAIN.MILINE26.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline3.caption
|
||||
msgctxt "TFRMMAIN.MILINE3.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline32.caption
|
||||
msgctxt "TFRMMAIN.MILINE32.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline33.caption
|
||||
msgctxt "TFRMMAIN.MILINE33.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline37.caption
|
||||
msgctxt "TFRMMAIN.MILINE37.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline38.caption
|
||||
msgctxt "TFRMMAIN.MILINE38.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline39.caption
|
||||
msgctxt "TFRMMAIN.MILINE39.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline4.caption
|
||||
msgctxt "TFRMMAIN.MILINE4.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline40.caption
|
||||
msgctxt "TFRMMAIN.MILINE40.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline47.caption
|
||||
msgctxt "TFRMMAIN.MILINE47.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline5.caption
|
||||
msgctxt "TFRMMAIN.MILINE5.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline50.caption
|
||||
msgctxt "TFRMMAIN.MILINE50.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline55.caption
|
||||
msgctxt "TFRMMAIN.MILINE55.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline6.caption
|
||||
msgctxt "TFRMMAIN.MILINE6.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline7.caption
|
||||
msgctxt "TFRMMAIN.MILINE7.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline8.caption
|
||||
msgctxt "TFRMMAIN.MILINE8.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.miline9.caption
|
||||
msgctxt "TFRMMAIN.MILINE9.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.milogclear.caption
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
|
@ -3080,16 +2908,6 @@ msgstr ""
|
|||
msgid "C&onfiguration"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnucontextline1.caption
|
||||
msgctxt "TFRMMAIN.MNUCONTEXTLINE1.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnucontextline2.caption
|
||||
msgctxt "TFRMMAIN.MNUCONTEXTLINE2.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.mnufavoritetabs.caption
|
||||
msgid "Favorites"
|
||||
msgstr ""
|
||||
|
|
@ -3153,11 +2971,6 @@ msgctxt "TFRMMAIN.TBPASTE.CAPTION"
|
|||
msgid "Paste"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmain.tbseparator.caption
|
||||
msgctxt "TFRMMAIN.TBSEPARATOR.CAPTION"
|
||||
msgid "-"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmmaincommandsdlg.btncancel.caption
|
||||
msgctxt "TFRMMAINCOMMANDSDLG.BTNCANCEL.CAPTION"
|
||||
msgid "&Cancel"
|
||||
|
|
@ -3755,88 +3568,228 @@ msgstr ""
|
|||
msgid "Please select one of the subpages, this page does not contain any settings."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnautoconfig.caption
|
||||
msgid "A&uto Configure"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnmultiarcadd.caption
|
||||
msgctxt "TFRMOPTIONSARCHIVERS.BTNMULTIARCADD.CAPTION"
|
||||
#: tfrmoptionsarchivers.btnarchiveradd.caption
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiveradd.caption"
|
||||
msgid "A&dd"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnmultiarcapply.caption
|
||||
msgctxt "tfrmoptionsarchivers.btnmultiarcapply.caption"
|
||||
#: tfrmoptionsarchivers.btnarchiveraddhelper.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiveraddhelper.hint"
|
||||
msgid "Variable reminder helper"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnarchiverapply.caption
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverapply.caption"
|
||||
msgid "A&pply"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnmultiarcdelete.caption
|
||||
msgctxt "tfrmoptionsarchivers.btnmultiarcdelete.caption"
|
||||
msgid "D&elete"
|
||||
#: tfrmoptionsarchivers.btnarchivercopy.caption
|
||||
msgid "Cop&y"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnmultiarcrename.caption
|
||||
msgctxt "TFRMOPTIONSARCHIVERS.BTNMULTIARCRENAME.CAPTION"
|
||||
msgid "&Rename"
|
||||
#: tfrmoptionsarchivers.btnarchiverdelete.caption
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverdelete.caption"
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnrelativearchiver.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnrelativearchiver.hint"
|
||||
#: tfrmoptionsarchivers.btnarchiverdeletehelper.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverdeletehelper.hint"
|
||||
msgid "Variable reminder helper"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnarchiverextracthelper.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverextracthelper.hint"
|
||||
msgid "Variable reminder helper"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnarchiverextractwithoutpathhelper.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverextractwithoutpathhelper.hint"
|
||||
msgid "Variable reminder helper"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnarchiverlisthelper.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverlisthelper.hint"
|
||||
msgid "Variable reminder helper"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnarchiverother.caption
|
||||
msgid "Oth&er..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnarchiverrelativer.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverrelativer.hint"
|
||||
msgid "Some functions to select appropriate path"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.chkmultiarcdebug.caption
|
||||
msgid "De&bug mode"
|
||||
#: tfrmoptionsarchivers.btnarchiverrename.caption
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverrename.caption"
|
||||
msgid "&Rename"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.chkmultiarcenabled.caption
|
||||
#: tfrmoptionsarchivers.btnarchiverselfextracthelper.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnarchiverselfextracthelper.hint"
|
||||
msgid "Variable reminder helper"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.btnarchivertesthelper.hint
|
||||
msgctxt "tfrmoptionsarchivers.btnarchivertesthelper.hint"
|
||||
msgid "Variable reminder helper"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.chkarchiverenabled.caption
|
||||
msgctxt "tfrmoptionsarchivers.chkarchiverenabled.caption"
|
||||
msgid "E&nabled"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.chkmultiarcoutput.caption
|
||||
#: tfrmoptionsarchivers.chkarchivermultiarcdebug.caption
|
||||
msgid "De&bug mode"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.chkarchivermultiarcoutput.caption
|
||||
msgctxt "tfrmoptionsarchivers.chkarchivermultiarcoutput.caption"
|
||||
msgid "S&how console output"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.ckbarchiverunixfileattributes.caption
|
||||
msgid "Uni&x file attributes"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.ckbarchiverunixpath.caption
|
||||
msgid "&Unix path delimiter \"/\""
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.ckbarchiverwindowsfileattributes.caption
|
||||
msgid "Windows &file attributes"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.ckbarchiverwindowspath.caption
|
||||
msgid "Windows path deli&miter \"\\\""
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.gbarchiverformatparsingmode.caption
|
||||
msgid "Format parsing mode:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.gbarchiverids.caption
|
||||
msgid "ID's used with cm_OpenArchive to recognize archive by detecting its content and not via file extension:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.gbarchiveroptions.caption
|
||||
msgctxt "TFRMOPTIONSARCHIVERS.GBARCHIVEROPTIONS.CAPTION"
|
||||
msgid "Options"
|
||||
msgid "Options:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiveadd.caption
|
||||
#: tfrmoptionsarchivers.lblarchiveradd.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiveradd.caption"
|
||||
msgid "Add&ing:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiveextension.caption
|
||||
msgid "E&xtension:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiveextract.caption
|
||||
msgid "Ex&tract:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchivelist.caption
|
||||
msgid "&List:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchivelistend.caption
|
||||
msgid "Listing &finish (optional):"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchivelistformat.caption
|
||||
msgid "Listing for&mat:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiveliststart.caption
|
||||
msgid "Listin&g start (optional):"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiver.caption
|
||||
#: tfrmoptionsarchivers.lblarchiverarchiver.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiverarchiver.caption"
|
||||
msgid "Arc&hiver:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lbldescription.caption
|
||||
#: tfrmoptionsarchivers.lblarchiverdelete.caption
|
||||
msgid "De&lete:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverdescription.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiverdescription.caption"
|
||||
msgid "De&scription:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverextension.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiverextension.caption"
|
||||
msgid "E&xtension:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverextract.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiverextract.caption"
|
||||
msgid "Ex&tract:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverextractwithoutpath.caption
|
||||
msgid "Extract &without path:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiveridposition.caption
|
||||
msgid "ID Po&sition:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverids.caption
|
||||
msgid "&ID:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiveridseekrange.caption
|
||||
msgid "ID See&k Range:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverlist.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiverlist.caption"
|
||||
msgid "&List:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverlistbox.caption
|
||||
msgid "Archi&vers:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverlistend.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiverlistend.caption"
|
||||
msgid "Listing &finish (optional):"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverlistformat.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiverlistformat.caption"
|
||||
msgid "Listing for&mat:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverliststart.caption
|
||||
msgctxt "tfrmoptionsarchivers.lblarchiverliststart.caption"
|
||||
msgid "Listin&g start (optional):"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverpasswordquery.caption
|
||||
msgid "Password &query string:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchiverselfextract.caption
|
||||
msgid "Create self extractin&g archive:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.lblarchivertest.caption
|
||||
msgid "Tes&t:"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.miarchiverautoconfigure.caption
|
||||
msgid "Auto Configure"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.miarchiverdisableall.caption
|
||||
msgid "Disable all"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.miarchiverdiscardmodification.caption
|
||||
msgid "Discard modifications"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.miarchiverenableall.caption
|
||||
msgid "Enable all"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.miarchiverexport.caption
|
||||
msgctxt "tfrmoptionsarchivers.miarchiverexport.caption"
|
||||
msgid "Export..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.miarchiverimport.caption
|
||||
msgctxt "tfrmoptionsarchivers.miarchiverimport.caption"
|
||||
msgid "Import..."
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.miarchiversortarchivers.caption
|
||||
msgid "Sort archivers"
|
||||
msgstr ""
|
||||
|
||||
#: tfrmoptionsarchivers.tbarchiveradditional.caption
|
||||
msgid "Additional"
|
||||
msgstr ""
|
||||
|
|
@ -11045,55 +10998,126 @@ msgstr ""
|
|||
msgid "Add at &beginning;Add at the end;Smart add"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchivedelete
|
||||
msgid "Delete:"
|
||||
#: ulng.rsoptarchiveconfiguresavetochange
|
||||
msgid "To change current editing archive configuration, either APPLY or DELETE current editing one"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveextractwithoutpath
|
||||
msgid "Extract without path:"
|
||||
#: ulng.rsoptarchiveradditonalcmd
|
||||
msgid "Mode dependent, additional command"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveformmode
|
||||
msgid "Format parsing mode:"
|
||||
#: ulng.rsoptarchiveraddonlynotempty
|
||||
msgid "Add if it is non-empty"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveid
|
||||
msgid "ID:"
|
||||
#: ulng.rsoptarchiverarchivel
|
||||
msgid "Archive File (long name)"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveidpos
|
||||
msgid "ID Position:"
|
||||
#: ulng.rsoptarchiverarchives
|
||||
msgid "Archive file (short name)"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveidseekrange
|
||||
msgid "ID Seek Range:"
|
||||
#: ulng.rsoptarchiverchangeencoding
|
||||
msgid "Change Archiver Listing Encoding"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveparam
|
||||
msgid "Parameter"
|
||||
#: ulng.rsoptarchiverconfirmdelete
|
||||
msgid "Are you sure you want to delete: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchivepasswordquery
|
||||
msgid "Password query string:"
|
||||
#: ulng.rsoptarchiverdefaultexportfilename
|
||||
msgid "Exported Archiver Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveselfextract
|
||||
msgid "Create self extracting archive:"
|
||||
#: ulng.rsoptarchivererrorlevel
|
||||
msgid "errorlevel"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchivetest
|
||||
msgid "Test:"
|
||||
#: ulng.rsoptarchiverexportcaption
|
||||
msgid "Export archiver configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverexportdone
|
||||
msgid "Exportation of %d elements to file \"%s\" completed."
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverexportprompt
|
||||
msgid "Select the one(s) you want to export"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverfilelistl
|
||||
msgid "Filelist (long names)"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverfilelists
|
||||
msgid "Filelist (short names)"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverimportcaption
|
||||
msgid "Import archiver configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverimportdone
|
||||
msgid "Importation of %d elements from file \"%s\" completed."
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverimportfile
|
||||
msgid "Select the file to import archiver configuration(s)"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverimportprompt
|
||||
msgid "Select the one(s) you want to import"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverjustname
|
||||
msgid "Use name only, without path"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverjustpath
|
||||
msgid "Use path only, without name"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverprograml
|
||||
msgid "Archive Program (long name)"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverprograms
|
||||
msgid "Archive Program (short name)"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverquoteall
|
||||
msgid "Quote all names"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverquotewithspace
|
||||
msgid "Quote names with spaces"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiversinglefprocess
|
||||
msgid "Single filename to process"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchivertargetsubdir
|
||||
msgid "Target subdirecory"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveruseansi
|
||||
msgid "Use ANSI encoding"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiveruseutf8
|
||||
msgid "Use UTF8 encoding"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchiverwheretosave
|
||||
msgid "Enter location and filename where to save archiver configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchivetypename
|
||||
msgid "Archive type name:"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptarchivevalue
|
||||
msgctxt "ulng.rsoptarchivevalue"
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: ulng.rsoptassocpluginwith
|
||||
msgid "Associate plugin \"%s\" with:"
|
||||
msgstr ""
|
||||
|
|
|
|||
24823
language/doublecmd.pt.po
24823
language/doublecmd.pt.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
24739
language/doublecmd.ro.po
24739
language/doublecmd.ro.po
File diff suppressed because it is too large
Load diff
24881
language/doublecmd.ru.po
24881
language/doublecmd.ru.po
File diff suppressed because it is too large
Load diff
26657
language/doublecmd.sk.po
26657
language/doublecmd.sk.po
File diff suppressed because it is too large
Load diff
24220
language/doublecmd.sl.po
24220
language/doublecmd.sl.po
File diff suppressed because it is too large
Load diff
25346
language/doublecmd.sr.po
25346
language/doublecmd.sr.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
25654
language/doublecmd.tr.po
25654
language/doublecmd.tr.po
File diff suppressed because it is too large
Load diff
25538
language/doublecmd.uk.po
25538
language/doublecmd.uk.po
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
BIN
pixmaps/dctheme/16x16/actions/cm_configarchivers.png
Normal file
BIN
pixmaps/dctheme/16x16/actions/cm_configarchivers.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
pixmaps/dctheme/32x32/actions/cm_configarchivers.png
Normal file
BIN
pixmaps/dctheme/32x32/actions/cm_configarchivers.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
|
|
@ -20,7 +20,7 @@ object frmMain: TfrmMain
|
|||
SessionProperties = 'nbConsole.Height;seLogWindow.Height;TreePanel.Width'
|
||||
ShowHint = True
|
||||
ShowInTaskBar = stAlways
|
||||
LCLVersion = '1.6.0.4'
|
||||
LCLVersion = '1.8.4.0'
|
||||
Visible = True
|
||||
object MainToolBar: TKASToolBar
|
||||
AnchorSideTop.Control = Owner
|
||||
|
|
@ -1404,6 +1404,9 @@ object frmMain: TfrmMain
|
|||
object mnuConfigFolderTabs: TMenuItem
|
||||
Action = actConfigFolderTabs
|
||||
end
|
||||
object miConfigArchivers: TMenuItem
|
||||
Action = actConfigArchivers
|
||||
end
|
||||
object miLine55: TMenuItem
|
||||
Caption = '-'
|
||||
end
|
||||
|
|
@ -2668,6 +2671,12 @@ object frmMain: TfrmMain
|
|||
Hint = 'Switch between left and right file list'
|
||||
OnExecute = actExecute
|
||||
end
|
||||
object actConfigArchivers: TAction
|
||||
Tag = 5
|
||||
Category = 'Configuration'
|
||||
Caption = 'Configuration of Archivers'
|
||||
OnExecute = actExecute
|
||||
end
|
||||
end
|
||||
object pmHotList: TPopupMenu
|
||||
Images = imgLstDirectoryHotlist
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
Double Commander
|
||||
-------------------------------------------------------------------------
|
||||
Licence : GNU GPL v 2.0
|
||||
Copyright (C) 2006-2016 Alexander Koblov (Alexx2000@mail.ru)
|
||||
Copyright (C) 2006-2018 Alexander Koblov (Alexx2000@mail.ru)
|
||||
|
||||
Main Dialog window
|
||||
|
||||
|
|
@ -106,6 +106,7 @@ type
|
|||
actConfigSaveSettings: TAction;
|
||||
actExecuteScript: TAction;
|
||||
actFocusSwap: TAction;
|
||||
actConfigArchivers: TAction;
|
||||
actUnmarkCurrentNameExt: TAction;
|
||||
actMarkCurrentNameExt: TAction;
|
||||
actUnmarkCurrentName: TAction;
|
||||
|
|
@ -217,6 +218,7 @@ type
|
|||
lblRightDriveInfo: TLabel;
|
||||
lblLeftDriveInfo: TLabel;
|
||||
lblCommandPath: TLabel;
|
||||
miConfigArchivers: TMenuItem;
|
||||
mnuConfigSaveSettings: TMenuItem;
|
||||
miLine55: TMenuItem;
|
||||
mnuConfigureFavoriteTabs: TMenuItem;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -3,7 +3,7 @@
|
|||
-------------------------------------------------------------------------
|
||||
Creates Total Commander fake window (some plugins don't work without it)
|
||||
|
||||
Copyright (C) 2009-2017 Alexander Koblov (alexx2000@mail.ru)
|
||||
Copyright (C) 2009-2018 Alexander Koblov (alexx2000@mail.ru)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -211,7 +211,7 @@ const
|
|||
(TCCommand: 'cm_ThumbnailsConfig'; TCIcon: 34; DCCommand: ''; DCParameters: '' ), //Conf: Thumbnails
|
||||
(TCCommand: 'cm_LogConfig'; TCIcon: 34; DCCommand: ''; DCParameters: '' ), //Conf: Log file
|
||||
(TCCommand: 'cm_IgnoreConfig'; TCIcon: 34; DCCommand: ''; DCParameters: '' ), //Conf: Ignore list
|
||||
(TCCommand: 'cm_PackerConfig'; TCIcon: 34; DCCommand: ''; DCParameters: '' ), //Conf: Packer
|
||||
(TCCommand: 'cm_PackerConfig'; TCIcon: 34; DCCommand: 'cm_ConfigArchivers'; DCParameters: '' ), //Conf: Packer
|
||||
(TCCommand: 'cm_ZipPackerConfig'; TCIcon: 34; DCCommand: ''; DCParameters: '' ), //Conf: ZIP packer
|
||||
(TCCommand: 'cm_Confirmation'; TCIcon: 34; DCCommand: ''; DCParameters: '' ), //Conf: Misc, Confirmation
|
||||
(TCCommand: 'cm_ConfigSavePos'; TCIcon: -1; DCCommand: ''; DCParameters: '' ), //Conf: Save position
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
-------------------------------------------------------------------------
|
||||
Implementing of Showing messages with localization
|
||||
|
||||
Copyright (C) 2007-2016 Alexander Koblov (alexx2000@mail.ru)
|
||||
Copyright (C) 2007-2018 Alexander Koblov (alexx2000@mail.ru)
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
|
|
@ -122,6 +122,7 @@ function ShowInputQuery(Thread: TThread; const ACaption, APrompt: String; var Va
|
|||
|
||||
function ShowInputComboBox(const sCaption, sPrompt : String; slValueList : TStringList; var sValue : String) : Boolean;
|
||||
function ShowInputListBox(const sCaption, sPrompt : String; slValueList : TStringList; var sValue : String; var SelectedChoice:integer) : Boolean;
|
||||
function ShowInputMultiSelectListBox(const sCaption, sPrompt : String; slValueList, slOutputIndexSelected : TStringList) : Boolean;
|
||||
|
||||
procedure msgLoadLng;
|
||||
|
||||
|
|
@ -584,14 +585,13 @@ begin
|
|||
TForm(TComponent(Sender).Owner).ModalResult:=mrOk;
|
||||
end;
|
||||
|
||||
function ShowInputListBox(const sCaption, sPrompt : String; slValueList : TStringList;
|
||||
var sValue : String; var SelectedChoice:integer) : Boolean;
|
||||
function InnerShowInputListBox(const sCaption, sPrompt: String; bMultiSelect:boolean; slValueList,slOutputIndexSelected:TStringList; var sValue: String; var SelectedChoice:integer) : Boolean;
|
||||
var
|
||||
frmDialog : TForm;
|
||||
lblPrompt : TLabel;
|
||||
lbValue : TListBox;
|
||||
bbtnOK,
|
||||
bbtnCancel : TBitBtn;
|
||||
bbtnOK, bbtnCancel, bbtnSelectAll : TBitBtn;
|
||||
iIndex, iModalResult: integer;
|
||||
ProcedureHolder:TProcedureHolder;
|
||||
begin
|
||||
SelectedChoice:=-1;
|
||||
|
|
@ -625,12 +625,29 @@ begin
|
|||
height := (Screen.Height div 2);
|
||||
Items.Assign(slValueList);
|
||||
ItemIndex:=Items.IndexOf(sValue);
|
||||
lbValue.MultiSelect:=bMultiSelect;
|
||||
if (ItemIndex=-1) AND (Items.count>0) then ItemIndex:=0;
|
||||
Left := 6;
|
||||
AnchorToNeighbour(akTop, 6, lblPrompt);
|
||||
Constraints.MinWidth := max(280, Screen.Width div 4);
|
||||
OnDblClick:= ProcedureHolder.ListBoxDblClick;
|
||||
end;
|
||||
if bMultiSelect then
|
||||
begin
|
||||
bbtnSelectAll := TBitBtn.Create(frmDialog);
|
||||
with bbtnSelectAll do
|
||||
begin
|
||||
Parent := frmDialog;
|
||||
Kind := bkAll;
|
||||
Cancel := True;
|
||||
Left := 6;
|
||||
Width:= 90;
|
||||
Anchors := [akTop, akLeft];
|
||||
AnchorToNeighbour(akTop, 18, lbValue);
|
||||
AnchorSide[akLeft].Control := lbValue;
|
||||
AnchorSide[akLeft].Side := asrLeft;
|
||||
end;
|
||||
end;
|
||||
bbtnCancel := TBitBtn.Create(frmDialog);
|
||||
with bbtnCancel do
|
||||
begin
|
||||
|
|
@ -655,11 +672,21 @@ begin
|
|||
AnchorToNeighbour(akTop, 18, lbValue);
|
||||
AnchorToNeighbour(akRight, 6, bbtnCancel);
|
||||
end;
|
||||
Result := (ShowModal = mrOK) AND (lbValue.ItemIndex<>-1);
|
||||
iModalResult:=ShowModal;
|
||||
Result := (iModalResult = mrOK) AND (lbValue.ItemIndex<>-1);
|
||||
if (not Result) AND (bMultiSelect) AND (iModalResult = mrAll) then
|
||||
begin
|
||||
lbValue.SelectAll;
|
||||
Result:=True;
|
||||
end;
|
||||
if Result then
|
||||
begin
|
||||
sValue:=lbValue.Items.Strings[lbValue.ItemIndex];
|
||||
SelectedChoice:=lbValue.ItemIndex
|
||||
SelectedChoice:=lbValue.ItemIndex;
|
||||
if bMultiSelect then
|
||||
for iIndex:=0 to pred(lbValue.Items.count) do
|
||||
if lbValue.Selected[iIndex] then
|
||||
slOutputIndexSelected.Add(IntToStr(iIndex));
|
||||
end;
|
||||
finally
|
||||
FreeAndNil(frmDialog);
|
||||
|
|
@ -670,6 +697,20 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
function ShowInputListBox(const sCaption, sPrompt : String; slValueList : TStringList; var sValue : String; var SelectedChoice:integer) : Boolean;
|
||||
begin
|
||||
result := InnerShowInputListBox(sCaption, sPrompt, False, slValueList, nil, sValue, SelectedChoice);
|
||||
end;
|
||||
|
||||
function ShowInputMultiSelectListBox(const sCaption, sPrompt : String; slValueList, slOutputIndexSelected : TStringList) : Boolean;
|
||||
var
|
||||
sDummyValue:string;
|
||||
iDummySelectedChoice:integer;
|
||||
begin
|
||||
if slValueList.Count>0 then sDummyValue := slValueList.Strings[0];
|
||||
result := InnerShowInputListBox(sCaption, sPrompt, True, slValueList, slOutputIndexSelected, sDummyValue, iDummySelectedChoice);
|
||||
end;
|
||||
|
||||
function MsgChoiceBox(const Message: String; Buttons: TDynamicStringArray): Integer;
|
||||
const
|
||||
cButtonSpace = 8;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
Copyright (C) 2008 Dmitry Kolomiets (B4rr4cuda@rambler.ru)
|
||||
Copyright (C) 2008 Vitaly Zotov (vitalyzotov@mail.ru)
|
||||
Copyright (C) 2006-2017 Alexander Koblov (alexx2000@mail.ru)
|
||||
Copyright (C) 2006-2018 Alexander Koblov (alexx2000@mail.ru)
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -146,6 +146,9 @@ const
|
|||
// 10 - changed Icons/CustomDriveIcons to Icons/CustomIcons
|
||||
ConfigVersion = 10;
|
||||
|
||||
// Configuration related filenames
|
||||
sMULTIARC_FILENAME = 'multiarc.ini';
|
||||
|
||||
TKeyTypingModifierToShift: array[TKeyTypingModifier] of TShiftState =
|
||||
([], [ssAlt], [ssCtrl, ssAlt]);
|
||||
|
||||
|
|
@ -720,7 +723,7 @@ end;
|
|||
|
||||
function LoadMultiArcConfig(var {%H-}ErrorMessage: String): Boolean;
|
||||
begin
|
||||
gMultiArcList.LoadFromFile(gpCfgDir + 'multiarc.ini');
|
||||
gMultiArcList.LoadFromFile(gpCfgDir + sMULTIARC_FILENAME);
|
||||
Result := True;
|
||||
end;
|
||||
|
||||
|
|
@ -1200,8 +1203,8 @@ begin
|
|||
if not mbFileExists(gpCfgDir + 'pixmaps.txt') then
|
||||
CopyFile(gpGlobalCfgDir + 'pixmaps.txt', gpCfgDir + 'pixmaps.txt');
|
||||
// multiarc configuration file
|
||||
if not mbFileExists(gpCfgDir + 'multiarc.ini') then
|
||||
CopyFile(gpGlobalCfgDir + 'multiarc.ini', gpCfgDir + 'multiarc.ini');
|
||||
if not mbFileExists(gpCfgDir + sMULTIARC_FILENAME) then
|
||||
CopyFile(gpGlobalCfgDir + sMULTIARC_FILENAME, gpCfgDir + sMULTIARC_FILENAME);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
|
@ -1943,8 +1946,8 @@ begin
|
|||
LoadConfigCheckErrors(@LoadHotManConfig, gpCfgDir + gNameSCFile, ErrorMessage);
|
||||
|
||||
{ MultiArc addons }
|
||||
if mbFileExists(gpCfgDir + 'multiarc.ini') then
|
||||
LoadConfigCheckErrors(@LoadMultiArcConfig, gpCfgDir + 'multiarc.ini', ErrorMessage);
|
||||
if mbFileExists(gpCfgDir + sMULTIARC_FILENAME) then
|
||||
LoadConfigCheckErrors(@LoadMultiArcConfig, gpCfgDir + sMULTIARC_FILENAME, ErrorMessage);
|
||||
|
||||
{ Various history }
|
||||
if mbFileExists(gpCfgDir + 'history.xml') then
|
||||
|
|
|
|||
46
src/ulng.pas
46
src/ulng.pas
|
|
@ -3,7 +3,7 @@
|
|||
-------------------------------------------------------------------------
|
||||
Localization core unit
|
||||
|
||||
Copyright (C) 2007-2017 Alexander Koblov (alexx2000@mail.ru)
|
||||
Copyright (C) 2007-2018 Alexander Koblov (alexx2000@mail.ru)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -100,7 +100,39 @@ resourcestring
|
|||
rsMsgSelectOnlyCheckSumFiles = 'Please select only checksum files!';
|
||||
rsMsgPresetAlreadyExists = 'Preset "%s" already exists. Overwrite?';
|
||||
rsMsgVolumeSizeEnter = 'Please enter the volume size:';
|
||||
|
||||
// Archiver section.
|
||||
rsMsgArchiverCustomParams = 'Additional parameters for archiver command-line:';
|
||||
rsOptArchiverConfirmDelete = 'Are you sure you want to delete: %s';
|
||||
rsOptArchiverImportFile = 'Select the file to import archiver configuration(s)';
|
||||
rsOptArchiverWhereToSave = 'Enter location and filename where to save archiver configuration';
|
||||
rsOptArchiverDefaultExportFilename = 'Exported Archiver Configuration';
|
||||
rsOptArchiverImportCaption = 'Import archiver configuration';
|
||||
rsOptArchiverImportPrompt = 'Select the one(s) you want to import';
|
||||
rsOptArchiverImportDone = 'Importation of %d elements from file "%s" completed.';
|
||||
rsOptArchiverExportCaption = 'Export archiver configuration';
|
||||
rsOptArchiverExportPrompt = 'Select the one(s) you want to export';
|
||||
rsOptArchiverExportDone = 'Exportation of %d elements to file "%s" completed.';
|
||||
rsOptArchiverProgramL = 'Archive Program (long name)';
|
||||
rsOptArchiverProgramS = 'Archive Program (short name)';
|
||||
rsOptArchiverArchiveL = 'Archive File (long name)';
|
||||
rsOptArchiverArchiveS = 'Archive file (short name)';
|
||||
rsOptArchiverFileListL = 'Filelist (long names)';
|
||||
rsOptArchiverFileListS = 'Filelist (short names)';
|
||||
rsOptArchiverSingleFProcess = 'Single filename to process';
|
||||
rsOptArchiverErrorLevel = 'errorlevel';
|
||||
rsOptArchiverChangeEncoding = 'Change Archiver Listing Encoding';
|
||||
rsOptArchiverTargetSubDir = 'Target subdirecory';
|
||||
rsOptArchiverAdditonalCmd = 'Mode dependent, additional command';
|
||||
rsOptArchiverAddOnlyNotEmpty = 'Add if it is non-empty';
|
||||
rsOptArchiverQuoteWithSpace = 'Quote names with spaces';
|
||||
rsOptArchiverQuoteAll = 'Quote all names';
|
||||
rsOptArchiverJustName = 'Use name only, without path';
|
||||
rsOptArchiverJustPath = 'Use path only, without name';
|
||||
rsOptArchiverUseAnsi = 'Use ANSI encoding';
|
||||
rsOptArchiverUseUTF8 = 'Use UTF8 encoding';
|
||||
rsOptArchiveConfigureSaveToChange = 'To change current editing archive configuration, either APPLY or DELETE current editing one';
|
||||
|
||||
rsMsgMasterPassword = 'Master Password';
|
||||
rsMsgMasterPasswordEnter = 'Please enter the master password:';
|
||||
rsMsgWrongPasswordTryAgain = 'Wrong password!'#13'Please try again!';
|
||||
|
|
@ -599,17 +631,7 @@ resourcestring
|
|||
rsOptConfigSortOrder = 'Classic, legacy order;Alphabetic order (but language still first)';
|
||||
rsOptDifferFramePosition = 'Active frame panel on left, inactive on right (legacy);Left frame panel on left, right on right';
|
||||
//-------------------------------
|
||||
rsOptArchiveParam = 'Parameter';
|
||||
rsOptArchiveValue = 'Value';
|
||||
rsOptArchiveDelete = 'Delete:';
|
||||
rsOptArchiveTest = 'Test:';
|
||||
rsOptArchiveExtractWithoutPath = 'Extract without path:';
|
||||
rsOptArchiveSelfExtract = 'Create self extracting archive:';
|
||||
rsOptArchiveID = 'ID:';
|
||||
rsOptArchiveIDPos = 'ID Position:';
|
||||
rsOptArchiveIDSeekRange = 'ID Seek Range:';
|
||||
rsOptArchivePasswordQuery = 'Password query string:';
|
||||
rsOptArchiveFormMode = 'Format parsing mode:';
|
||||
|
||||
//-------------------------------
|
||||
rsOptEnterExt = 'Enter extension';
|
||||
rsOptAssocPluginWith = 'Associate plugin "%s" with:';
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
This unit contains DC actions of the main form
|
||||
|
||||
Copyright (C) 2008 Dmitry Kolomiets (B4rr4cuda@rambler.ru)
|
||||
Copyright (C) 2008-2016 Alexander Koblov (alexx2000@mail.ru)
|
||||
Copyright (C) 2008-2018 Alexander Koblov (alexx2000@mail.ru)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -354,6 +354,7 @@ type
|
|||
procedure cm_ExecuteScript(const {%H-}Params: array of string);
|
||||
procedure cm_FocusSwap(const {%H-}Params: array of string);
|
||||
procedure cm_Benchmark(const {%H-}Params: array of string);
|
||||
procedure cm_ConfigArchivers(const {%H-}Params: array of string);
|
||||
|
||||
// Internal commands
|
||||
procedure cm_ExecuteToolbarItem(const Params: array of string);
|
||||
|
|
@ -380,7 +381,7 @@ uses uFindFiles, Forms, Controls, Dialogs, Clipbrd, strutils, LCLProc, HelpIntfs
|
|||
uHotDir, DCXmlConfig, dmCommonData, fOptionsFrame, foptionsDirectoryHotlist,
|
||||
fOptionsToolbar, fMainCommandsDlg, uConnectionManager, fOptionsTabs, fOptionsFavoriteTabs,
|
||||
fTreeViewMenu, fOptionsTreeViewMenu, fOptionsTreeViewMenuColor, uArchiveFileSource,
|
||||
fOptionsFileSearch, fOptionsHotKeys, fBenchmark
|
||||
fOptionsFileSearch, fOptionsHotKeys, fBenchmark, fOptionsArchivers
|
||||
{$IFDEF COLUMNSFILEVIEW_VTV}
|
||||
, uColumnsFileViewVtv
|
||||
{$ELSE}
|
||||
|
|
@ -4825,6 +4826,18 @@ begin
|
|||
OperationsManager.AddOperation(TBenchmarkOperation.Create(frmMain));
|
||||
end;
|
||||
|
||||
{ TMainCommands.cm_ConfigArchivers }
|
||||
procedure TMainCommands.cm_ConfigArchivers(const {%H-}Params: array of string);
|
||||
var
|
||||
Editor: TOptionsEditor;
|
||||
Options: IOptionsDialog;
|
||||
begin
|
||||
Options := ShowOptions(TfrmOptionsArchivers);
|
||||
Editor := Options.GetEditor(TfrmOptionsArchivers);
|
||||
Application.ProcessMessages;
|
||||
if Editor.CanFocus then Editor.SetFocus;
|
||||
end;
|
||||
|
||||
{ TMainCommands.cm_AddNewSearch }
|
||||
procedure TMainCommands.cm_AddNewSearch(const Params: array of string);
|
||||
var
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
-------------------------------------------------------------------------
|
||||
Implementation of multi archiver support
|
||||
|
||||
Copyright (C) 2010-2013 Koblov Alexander (Alexx2000@mail.ru)
|
||||
Copyright (C) 2010-2018 Koblov Alexander (Alexx2000@mail.ru)
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -129,6 +129,7 @@ type
|
|||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
function CanYouHandleThisFile(const FileName: String): Boolean;
|
||||
function Clone: TMultiArcItem;
|
||||
property FID: AnsiString read FSignature write SetSignature;
|
||||
property FIDPos: AnsiString read FSignaturePosition write SetSignaturePosition;
|
||||
property FIDSeekRange: AnsiString read GetSignatureSeekRange write SetSignatureSeekRange;
|
||||
|
|
@ -151,6 +152,9 @@ type
|
|||
procedure LoadFromFile(const FileName: String);
|
||||
procedure SaveToFile(const FileName: String);
|
||||
function Add(const S: String; aMultiArcItem: TMultiArcItem): Integer;
|
||||
function Insert(Index: integer; const S: string; aMultiArcItem: TMultiArcItem): integer;
|
||||
function Clone: TMultiArcList;
|
||||
function ComputeSignature(Seed: dword = $00000000): dword;
|
||||
procedure Delete(Index: Integer);
|
||||
property Names[Index: Integer]: String read GetName write SetName;
|
||||
property Items[Index: Integer]: TMultiArcItem read GetItem; default;
|
||||
|
|
@ -160,7 +164,7 @@ type
|
|||
implementation
|
||||
|
||||
uses
|
||||
LCLProc, StrUtils, Math, FileUtil, DCClassesUtf8, uDCUtils, DCOSUtils;
|
||||
crc, LCLProc, StrUtils, Math, FileUtil, DCClassesUtf8, uDCUtils, DCOSUtils;
|
||||
|
||||
{ TMultiArcList }
|
||||
|
||||
|
|
@ -239,6 +243,7 @@ var
|
|||
FirstTime: Boolean = True;
|
||||
MultiArcItem: TMultiArcItem;
|
||||
begin
|
||||
Self.Clear;
|
||||
IniFile:= TIniFileEx.Create(FileName, fmOpenRead);
|
||||
try
|
||||
Sections:= TStringList.Create;
|
||||
|
|
@ -347,11 +352,68 @@ begin
|
|||
Result := FList.AddObject(S, aMultiArcItem);
|
||||
end;
|
||||
|
||||
function TMultiArcList.Insert(Index: integer; const S: string; aMultiArcItem: TMultiArcItem): integer;
|
||||
begin
|
||||
try
|
||||
FList.InsertObject(Index, S, aMultiArcItem);
|
||||
Result := Index;
|
||||
except
|
||||
Result := -1;
|
||||
end;
|
||||
end;
|
||||
procedure TMultiArcList.Delete(Index: Integer);
|
||||
begin
|
||||
Items[Index].Free;
|
||||
FList.Delete(Index);
|
||||
end;
|
||||
function TMultiArcList.Clone: TMultiArcList;
|
||||
var
|
||||
Index: integer;
|
||||
begin
|
||||
Result := TMultiArcList.Create;
|
||||
for Index := 0 to pred(Self.Count) do
|
||||
Result.Add(Self.FList.Strings[Index], Self.Items[Index].Clone);
|
||||
end;
|
||||
{ TMultiArcList.ComputeSignature }
|
||||
// Routine tries to pickup all char chain from element of all entries and compute a unique CRC32.
|
||||
// This CRC32 will be a kind of signature of the MultiArc settings.
|
||||
function TMultiArcList.ComputeSignature(Seed: dword): dword;
|
||||
procedure UpdateSignature(sInfo: string);
|
||||
begin
|
||||
if length(sInfo) > 0 then
|
||||
Result := crc32(Result, @sInfo[1], length(sInfo));
|
||||
end;
|
||||
var
|
||||
Index, iInnerIndex: integer;
|
||||
begin
|
||||
Result := Seed;
|
||||
for Index := 0 to pred(Count) do
|
||||
begin
|
||||
UpdateSignature(Self.FList.Strings[Index]);
|
||||
UpdateSignature(Self.Items[Index].FDescription);
|
||||
UpdateSignature(Self.Items[Index].FArchiver);
|
||||
UpdateSignature(Self.Items[Index].FExtension);
|
||||
UpdateSignature(Self.Items[Index].FList);
|
||||
UpdateSignature(Self.Items[Index].FStart);
|
||||
UpdateSignature(Self.Items[Index].FEnd);
|
||||
for iInnerIndex := 0 to pred(Self.Items[Index].FFormat.Count) do
|
||||
UpdateSignature(Self.Items[Index].FFormat.Strings[iInnerIndex]);
|
||||
UpdateSignature(Self.Items[Index].FExtract);
|
||||
UpdateSignature(Self.Items[Index].FAdd);
|
||||
UpdateSignature(Self.Items[Index].FDelete);
|
||||
UpdateSignature(Self.Items[Index].FTest);
|
||||
UpdateSignature(Self.Items[Index].FExtractWithoutPath);
|
||||
UpdateSignature(Self.Items[Index].FAddSelfExtract);
|
||||
UpdateSignature(Self.Items[Index].FPasswordQuery);
|
||||
UpdateSignature(Self.Items[Index].FID);
|
||||
UpdateSignature(Self.Items[Index].FIDPos);
|
||||
UpdateSignature(Self.Items[Index].FIDSeekRange);
|
||||
Result := crc32(Result, @Self.Items[Index].FFormMode, sizeof(Self.Items[Index].FFormMode));
|
||||
Result := crc32(Result, @Self.Items[Index].FEnabled, sizeof(Self.Items[Index].FEnabled));
|
||||
Result := crc32(Result, @Self.Items[Index].FOutput, sizeof(Self.Items[Index].FOutput));
|
||||
Result := crc32(Result, @Self.Items[Index].FDebug, sizeof(Self.Items[Index].FDebug));
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TMultiArcItem }
|
||||
|
||||
|
|
@ -512,6 +574,33 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
function TMultiArcItem.Clone: TMultiArcItem;
|
||||
begin
|
||||
Result := TMultiArcItem.Create;
|
||||
//Keep elements in some ordre a when loading them from the .ini, it will be simpler to validate if we are missing one.
|
||||
Result.FArchiver := Self.FArchiver;
|
||||
Result.FDescription := Self.FDescription;
|
||||
Result.FID := Self.FID;
|
||||
Result.FIDPos := Self.FIDPos;
|
||||
Result.FIDSeekRange := Self.FIDSeekRange;
|
||||
Result.FExtension := Self.FExtension;
|
||||
Result.FStart := Self.FStart;
|
||||
Result.FEnd := Self.FEnd;
|
||||
Result.FFormat.Assign(Self.FFormat);
|
||||
Result.FList := Self.FList;
|
||||
Result.FExtract := Self.FExtract;
|
||||
Result.FExtractWithoutPath := Self.FExtractWithoutPath;
|
||||
Result.FTest := Self.FTest;
|
||||
Result.FDelete := Self.FDelete;
|
||||
Result.FAdd := Self.FAdd;
|
||||
Result.FAddSelfExtract := Self.FAddSelfExtract;
|
||||
Result.FPasswordQuery := Self.FPasswordQuery;
|
||||
Result.FFormMode := Self.FFormMode;
|
||||
Result.FEnabled := Self.FEnabled;
|
||||
Result.FOutput := Self.FOutput;
|
||||
Result.FDebug := Self.FDebug;
|
||||
end;
|
||||
|
||||
{ TSignatureList }
|
||||
|
||||
function TSignatureList.GetSignature(Index: Integer): PSignature;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue