{
Double Commander
-------------------------------------------------------------------------
Localization core unit
Copyright (C) 2007-2019 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
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
}
unit uLng;
{$mode objfpc}{$H+}
interface
uses
LResources;
resourcestring
// File operations.
rsMsgNotDelete = 'Can not delete file %s';
rsMsgCannotDeleteDirectory = 'Cannot delete directory %s';
rsMsgCannotOverwriteDirectory = 'Cannot overwrite directory "%s" with non-directory "%s"';
rsMsgErrDirExists = 'Directory %s exists!';
rsMsgErrRename = 'Cannot rename file %s to %s';
rsMsgErrCannotCopyFile = 'Cannot copy file %s to %s';
rsMsgFileExistsOverwrite = 'Overwrite:';
rsMsgFileExistsWithFile = 'With file:';
rsMsgFileExistsFileInfo = '%s bytes, %s';
rsMsgFileExistsRwrt = 'File %s exists, overwrite?';
rsMsgFileChangedSave = 'File %s changed, save?';
rsMsgReplaceThisText = 'Do you want to replace this text?';
rsMsgFileReloadWarning = 'Are you sure you want to reload the current file and lose the changes?';
rsMsgFolderExistsRwrt = 'Folder %s exists, merge?';
rsMsgFileReadOnly = 'File %s is marked as read-only/hidden/system. Delete it?';
rsMsgNewFile = 'New file';
rsMsgDelFlDr = 'Delete %d selected files/directories?';
rsMsgDelSel = 'Delete selected "%s"?';
rsMsgVerifyChecksum = 'Do you want to verify selected checksums?';
rsMsgObjectNotExists = 'Object does not exist!';
// 12.05.2009 - another message, when deleting to trash
rsMsgDelFlDrT = 'Delete %d selected files/directories into trash can?';
rsMsgDelSelT = 'Delete selected "%s" into trash can?';
rsMsgDelToTrashForce = 'Can not delete "%s" to trash! Delete directly?';
rsMsgFileNotFound = 'File "%s" not found.';
// ---
rsMsgVerify = 'VERIFICATION:';
rsMsgVerifyWrong = 'The target file is corrupted, checksum mismatch!';
// ---
rsMsgWipeFlDr = 'Wipe %d selected files/directories?';
rsMsgWipeSel = 'Wipe selected "%s"?';
rsMsgCpFlDr = 'Copy %d selected files/directories?';
rsMsgCpSel = 'Copy selected "%s"?';
rsMsgRenFlDr = 'Rename/move %d selected files/directories?';
rsMsgRenSel = 'Rename/move selected "%s"?';
rsMsgErrForceDir = 'Can not create directory %s!';
rsMsgSelectedInfo = 'Selected: %s of %s, files: %d of %d, folders: %d of %d';
rsMsgCloseLockedTab = 'This tab (%s) is locked! Close anyway?';
rsMsgTabForOpeningInNewTab = 'This tab (%s) is locked! Open directory in another tab?';
rsSpaceMsg = 'Files: %d, Dirs: %d, Size: %s (%s bytes)';
rsSelectDir = 'Select a directory';
rsMarkPlus = 'Select mask';
rsMarkMinus = 'Unselect mask';
rsMaskInput = 'Input mask:';
rsMsgPopUpHotDelete = '&Delete %s';
rsMsgDiskNotAvail = 'Disk is not available';
rsMsgChDirFailed = 'Change current directory to "%s" failed!';
rsMsgNoFreeSpaceCont = 'No enough free space on target drive, Continue?';
rsMsgNoFreeSpaceRetry = 'No enough free space on target drive, Retry?';
rsMsgSetVolumeLabel = 'Set volume label';
rsMsgVolumeLabel = 'Volume label:';
rsMsgRestartForApplyChanges = 'Please, restart Double Commander in order to apply changes';
rsMsgEnterName = 'Enter name:';
rsMsgEnterFileExt = 'Enter file extension:';
rsMsgDefaultCustomActionName = 'Custom action';
rsMsgSelectExecutableFile = 'Select executable file for';
rsMsgWithActionWith = 'with';
rsMsgFollowSymlink = 'Follow symlink "%s"?';
rsMsgFileSizeTooBig = 'The file size of "%s" is too big for destination file system!';
rsMsgCloseAllInActiveTabs = 'Remove all inactive tabs?';
rsMsgErrRegExpSyntax = 'Syntax error in regular expression!';
rsMsgNoFilesSelected = 'No files selected.';
rsMsgTooManyFilesSelected = 'Too many files selected.';
rsMsgInvalidSelection = 'Invalid selection.';
rsMsgNotImplemented = 'Not implemented.';
rsMsgInvalidFilename = 'Invalid filename';
rsMsgInvalidPath = 'Invalid path';
rsMsgInvalidPathLong = 'Path %s contains forbidden characters.';
rsMsgSelectOnlyCheckSumFiles = 'Please select only checksum files!';
rsMsgPresetAlreadyExists = 'Preset "%s" already exists. Overwrite?';
rsMsgVolumeSizeEnter = 'Please enter the volume size:';
rsFilterAnyFiles = 'Any files';
rsFilterDCToolTipFiles = 'DC Tooltip files';
rsFilterToolbarFiles = 'DC Toolbar files';
rsFilterXmlConfigFiles = '.xml Config files';
rsFilterTCToolbarFiles = 'TC Toolbar files';
rsFilterExecutableFiles = 'Executables files';
rsFilterIniConfigFiles = '.ini Config files';
rsFilterLegacyTabFiles = 'Legacy DC .tab files';
rsFilterDirectoryHotListFiles = 'Directory Hotlist files';
rsFilterArchiverConfigFiles = 'Archiver config files';
rsFilterPluginFiles = 'Plugin files';
rsFilterLibraries = 'Library files';
// Archiver section.
rsMsgArchiverCustomParams = 'Additional parameters for archiver command-line:';
rsOptArchiverArchiver = 'Select archiver executable';
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';
// Tooltip section
rsOptTooltipConfigureSaveToChange = 'To change file type tooltip configuration, either APPLY or DELETE current editing one';
rsOptToolTipsFileTypeName = 'Tooltip file type name';
rsToolTipModeList = 'Combine DC and system tooltip, DC first (legacy);Combine DC and system tooltip, system first;Show DC tooltip when possible and system when not;Show DC tooltip only;Show system tooltip only';
rsToolTipHideTimeOutList = 'System default;1 sec;2 sec;3 sec;5 sec;10 sec;30 sec;1 min;Never hide';
rsOptAddingToolTipFileType = 'Adding new tooltip file type';
rsOptRenamingToolTipFileType = 'Renaming tooltip file type';
rsOptToolTipFileType = 'Tooltip file type name:';
rsOptToolTipFileTypeDefaultExportFilename = 'Exported tooltip file type configuration';
rsOptToolTipFileTypeWhereToSave = 'Enter location and filename where to save tooltip file type configuration';
rsOptToolTipFileTypeAlreadyExists = '"%s" already exists!';
rsOptToolTipFileTypeConfirmDelete = 'Are you sure you want to delete: "%s"?';
rsOptToolTipFileTypeImportCaption = 'Import tooltip file type configuration';
rsOptToolTipFileTypeImportPrompt = 'Select the one(s) you want to import';
rsOptToolTipFileTypeImportFile = 'Select the file to import tooltip file type configuration(s)';
rsOptToolTipFileTypeImportDone = 'Importation of %d elements from file "%s" completed.';
rsOptToolTipFileTypeExportPrompt = 'Select the one(s) you want to export';
rsOptToolTipFileTypeExportCaption = 'Export tooltip file type configuration';
rsOptToolTipFileTypeExportDone = 'Exportation of %d elements to file "%s" completed.';
rsMsgMasterPassword = 'Master Password';
rsMsgMasterPasswordEnter = 'Please enter the master password:';
rsMsgWrongPasswordTryAgain = 'Wrong password!'#13'Please try again!';
rsMsgPasswordEnter = 'Please enter the password:';
rsMsgPasswordVerify = 'Please re-enter the password for verification:';
rsMsgPasswordDiff = 'Passwords are different!';
rsMsgUserName = 'User name:';
rsMsgPassword = 'Password:';
rsMsgAccount = 'Account:';
rsMsgUserNameFirewall = 'User name (Firewall):';
rsMsgPasswordFirewall = 'Password (Firewall):';
rsMsgTargetDir = 'Target path:';
rsMsgURL = 'URL:';
rsMsgLoadingFileList = 'Loading file list...';
rsMsgNoFiles = 'No files';
rsMsgErrSetAttribute = 'Can not set attributes for "%s"';
rsMsgErrSetDateTime = 'Can not set date/time for "%s"';
rsMsgErrSetOwnership = 'Can not set owner/group for "%s"';
rsMsgErrSetPermissions = 'Can not set permissions for "%s"';
rsMsgErrDateNotSupported = 'Date %s is not supported';
rsMsgErrSaveFile = 'Cannot save file';
rsMsgErrCanNotConnect = 'Can not connect to server: "%s"';
rsMsgErrSaveAssociation = 'Can not save association!';
rsMsgFileOperationsActive = 'File operations active';
rsMsgFileOperationsActiveLong = 'Some file operations have not yet finished. Closing Double Commander may result in data loss.';
rsMsgConfirmQuit = 'Are you sure you want to quit?';
rsMsgCanNotCopyMoveItSelf = 'You can not copy/move a file "%s" to itself!';
rsMsgTabRenameCaption = 'Rename tab';
rsMsgTabRenamePrompt = 'New tab name:';
rsMsgInvalidPlugin = 'This is not a valid plugin!';
rsMsgInvalidPluginArchitecture = 'This plugin is built for Double Commander for %s.%sIt can not work with Double Commander for %s!';
rsMsgErrCreateFileDirectoryExists = 'There already exists a directory named "%s".';
rsMsgDeletePartiallyCopied = 'Delete the partially copied file ?';
rsMsgInvalidCommandLine = 'Error in command line';
rsMsgCofirmUserParam = 'Confirmation of parameter';
rsMsgAskQuoteOrNot = 'Do you want to enclose between quotes?';
rsMsgInvalidQuoting = 'Invalid quoting';
rsMsgErrorInContextMenuCommand = 'Error in context menu command';
rsMsgErrorLoadingConfiguration = 'Error when loading configuration';
rsMsgInvalidFormatOfConfigurationFile = 'Invalid format of configuration file';
rsDefaultSuffixDroppedText = '_DroppedText';
rsDefaultSuffixDroppedTextRichtextFilename = '_DroppedRichtext';
rsDefaultSuffixDroppedTextHTMLFilename = '_DroppedHTMLtext';
rsDefaultSuffixDroppedTextUnicodeUTF16Filename = '_DroppedUnicodeUTF16text';
rsDefaultSuffixDroppedTextUnicodeUTF8Filename = '_DroppedUnicodeUTF8text';
rsDefaultSuffixDroppedTextSimpleFilename = '_DroppedSimpleText';
rsDragAndDropTextFormat = 'Rich Text Format;HTML Format;Unicode Format;Simple Text Format';
rsCaptionForAskingFilename = 'Enter filename, with extension, for dropped text';
rsMsgPromptAskingFilename = 'Filename for dropped text:';
rsCaptionForTextFormatToImport = 'Text format to import';
rsMsgForTextFormatToImport = 'Select the text format to import';
rsMsgUserDidNotSetExtension = '';
rsMsgUserDidNotSetName = '';
rsMsgProblemExecutingCommand = 'Problem executing command (%s)';
rsMsgCopyBackward = 'The file %s has changed. Do you want to copy it backward?';
rsMsgCouldNotCopyBackward = 'Could not copy backward - do you want to keep the changed file?';
rsMsgFilePathOverMaxPath = 'The target name length (%d) is more than %d characters!' + #13 + '%s' + #13 + 'Most programs will not be able to access a file/directory with such a long name!';
rsExtsClosedBracketNoFound = '"]" not found in line %s';
rsExtsCommandWithNoExt = 'No extension defined before command "%s". It will be ignored.';
//Hot Dir related
rsMsgHotDirWhatToDelete = 'Do you want to delete all elements inside the sub-menu [%s]?'+#$0A+'Answering NO will delete only menu delimiters but will keep element inside sub-menu.';
rsMsgHotDirAddThisDirectory = 'Add current dir: ';
rsMsgHotDirAddSelectedDirectory = 'Add selected dir: ';
rsMsgHotDirReAddSelectedDirectory = 'Re-Add selected dir: ';
rsMsgHotDirReAddThisDirectory = 'Re-Add current dir: ';
rsMsgHotDirAddSelectedDirectories = 'Add %d selected dirs';
rsMsgHotDirConfigHotlist = 'Configuration of Directory Hotlist';
rsMsgHotDirDeleteAllEntries = 'Are you sure you want to remove all entries of your Directory Hotlist? (There is no "undo" to this action!)';
rsMsgHotDirName = 'Hotdir name';
rsMsgHotDirPath = 'Hotdir path';
rsMsgHotDirJustPath = '&Path:';
rsMsgHotDirTarget = 'Hotdir target';
rsMsgHotDirSubMenuName = 'Submenu name';
rsMsgHotDirSimpleName = '&Name:';
rsMsgHotDirSimpleSeparator = '(separator)';
rsMsgHotDirSimpleMenu = 'Menu &name:';
rsMsgHotDirSimpleEndOfMenu = '(end of sub menu)';
rsMsgHotDirSimpleCommand = 'Command:';
rsMsgHotDirCommandName = 'Do command';
rsMsgHotDirCommandSample = 'cm_somthing';
rsMsgHotDirDemoName = 'This is hot dir named ';
rsMsgHotDirDemoPath = 'This will change active frame to the following path:';
rsMsgHotDirDemoCommand = 'This will execute the following command:';
rsMsgHotDirDemoTarget = 'And inactive frame would change to the following path:';
rsMsgHotDirLocateHotlistFile = 'Locate ".hotlist" file to import';
rsMsgHotDirWhereToSave = 'Enter location and filename where to save a Directory Hotlist file';
rsMsgHotDirRestoreWhat = 'Enter location and filename of Directory Hotlist to restore';
rsMsgHotDirImportall = 'Import all!';
rsMsgHotDirImportSel = 'Import selected';
rsMsgHotDirImportHotlist = 'Import Directory Hotlist - Select the entries you want to import';
rsMsgHotDirExportall = 'Export all!';
rsMsgHotDirExportSel = 'Export selected';
rsMsgHotDirExportHotlist = 'Export Directory Hotlist - Select the entries you want to export';
rsMsgHotDirNbNewEntries = 'Number of new entries: %d';
rsMsgHotDirTotalExported = 'Total entries exported: ';
rsMsgHotDirErrorExporting = 'Error exporting entries...';
rsMsgHotDirNothingToExport = 'Nothing selected to export!';
rsMsgHotDirTipSpecialDirBut = 'Some functions to select appropriate path relative, absolute, windows special folders, etc.';
rsMsgHotDirTipOrderPath = 'Determine if you want the active frame to be sorted in a specified order after changing directory';
rsMsgHotDirTipOrderTarget = 'Determine if you want the not active frame to be sorted in a specified order after changing directory';
rsMsgHotDirTotalBackuped = 'Total entries saved: %d'+#$0A+#$0A+'Backup filename: %s';
rsMsgHotDirErrorBackuping = 'Error backuping entries...';
rsHotDirWarningAbortRestoreBackup = 'Warning! When restoring a .hotlist backup file, this will erase existing list to replace by the imported one.'+#$0A+#$0A+
'Are you sure you want to proceed?';
rsHotDirForceSortingOrderChoices = 'none;Name, a-z;Name, z-a;Ext, a-z;Ext, z-a;Size 9-0;Size 0-9;Date 9-0;Date 0-9';
//Special dir related
rsMsgSpecialDirUseDC = 'Use Double Commander special path...';
rsMsgSpecialDirUseTC = 'Use Windows special folder (TC)...';
rsMsgSpecialDirUseOther = 'Use other Windows special folder...';
rsMsgSpecialDirEnvVar = 'Use environment variable...';
rsMsgSpecialDirMkDCRel = 'Make relative to Double Commander special path...';
rsMsgSpecialDirMkTCTel = 'Make relative to Windows special folder (TC)...';
rsMsgSpecialDirMkWnRel = 'Make relative to other Windows special folder...';
rsMsgSpecialDirMkEnvRel = 'Make relative to environment variable...';
rsMsgSpecialDirMkAbso = 'Make path absolute';
rsMsgSpecialDirAddActi = 'Add path from active frame';
rsMsgSpecialDirAddNonActi = 'Add path from inactive frame';
rsMsgSpecialDirBrowsSel = 'Browse and use selected path';
rsMsgSpecialDir = 'Special Dirs';
rsMsgSpecialDirGotoDC = 'Go to Double Commander special path...';
rsMsgSpecialDirGotoTC = 'Go to Windows special folder (TC)...';
rsMsgSpecialDirGotoOther = 'Go to other Windows special folder...';
rsMsgSpecialDirGotoEnvVar = 'Go to environment variable...';
rsMsgSpecialDirUseHotDir = 'Use hotdir path';
rsMsgSpecialDirMakeRelToHotDir = 'Make relative to hotdir path';
//Favorite Tabs related
rsMsgFavoriteTabsEnterName = 'Enter a name for this new Favorite Tabs entry:';
rsMsgFavoriteTabsEnterNameTitle = 'Saving a new Favorite Tabs entry';
rsMsgFavoriteTabsSubMenuName = 'Submenu name';
rsMsgFavoriteTabsImportSubMenuName = 'Legacy tabs imported';
rsMsgFavoriteTabsDragHereEntry = 'Drag here other entries';
rsMsgFavortieTabsSaveOverExisting = 'Save current tabs over existing Favorite Tabs entry';
rsOptFavoriteTabsWhereToAddInList = 'Add at beginning;Add at the end;Alphabetical sort';
rsMsgFavoriteTabsThisWillLoadFavTabs = 'This will load the Favorite Tabs: "%s"';
rsMsgFavoriteTabsDeleteAllEntries = 'Are you sure you want to remove all entries of your Favorite Tabs? (There is no "undo" to this action!)';
rsTitleRenameFavTabs = 'Rename Favorite Tabs';
rsMsgRenameFavTabs = 'Enter new friendly name for this Favorite Tabs';
rsTitleRenameFavTabsMenu = 'Rename Favorite Tabs sub-menu';
rsMsgRenameFavTabsMenu = 'Enter new name for this menu';
rsMsgFavoriteTabsImportedSuccessfully = 'Number of file(s) imported successfully: %d on %d';
rsMsgFavoriteTabsExportedSuccessfully = 'Number of Favorite Tabs exported successfully: %d on %d';
rsMsgFavoriteTabsModifiedNoImport = 'Last Favorite Tabs modification have been saved yet. Do you want to save them prior to continue?';
rsMsgFavoriteTabsSimpleMode = 'Keep saving dir history with Favorite Tabs:';
rsMsgFavoriteTabsExtraMode = 'Default extra setting for save dir history for new Favorite Tabs:';
rsTabsActionOnDoubleClickChoices = 'Do nothing;Close tab;Access Favorite Tabs;Tabs popup menu';
rsFavTabsPanelSideSelection = 'Left;Right;Active;Inactive;Both;None';
rsFavTabsSaveDirHistory = 'No;Yes';
rsMsgFavoriteTabsImportTitle = 'Select .tab file(s) to import (could be more than one at the time!)';
//Total Commander related message
rsMsgLocateTCExecutable = 'Locate TC executable file (totalcmd.exe or totalcmd64.exe)';
rsMsgLocateTCConfiguation = 'Locate TC configuration file (wincmd.ini)';
rsDefaultImportedTCToolbarHint = 'Imported TC toolbar';
rsDefaultImportedDCToolbarHint = 'Imported DC toolbar';
rsFilenameExportedTCBarPrefix = 'Exported_from_DC';
rsNoEquivalentInternalCommand = 'No internal equivalent command';
// Locked by another process
rsMsgProcessId = 'PID: %d';
rsMsgApplicationName = 'Description: %s';
rsMsgExecutablePath = 'Executable: %s';
rsMsgOpenInAnotherProgram = 'The action cannot be completed because the file is open in another program:';
rsMsgTerminateProcess = 'WARNING: Terminating a process can cause undesired results including loss of data and system instability.' + #32 +
'The process will not be given the chance to save its state or data before it is terminated. Are you sure you want to terminate the process?';
// for context menu
rsMnuActions = 'Actions';
rsMnuOpen = 'Open';
rsMnuView = 'View';
rsMnuEdit = 'Edit';
rsMnuOpenWith = 'Open with';
rsMnuOpenWithOther = 'Other...';
rsMnuMount = 'Mount';
rsMnuUmount = 'Unmount';
rsMnuNoMedia = 'No media available';
rsMnuEject = 'Eject';
rsMnuSortBy = 'Sort by';
rsMnuNew = 'New';
rsMnuPackHere = 'Pack here...';
rsMnuExtractHere = 'Extract here...';
// for main menu
rsMnuCreateShortcut = 'Create Shortcut...';
rsMnuMapNetworkDrive = 'Map Network Drive...';
rsMnuDisconnectNetworkDrive = 'Disconnect Network Drive...';
rsMnuCopyNetNamesToClip = 'Copy names with UNC path';
// for content plugins menu
rsMnuContentDefault = '';
rsMnuContentOctal = 'Octal';
// wcx module messages
rsMsgSelLocNextVol = 'Please select location of next volume';
rsMsgNextVolUnpack = 'Next volume will be unpacked';
// wcx module errors messages
rsMsgErrEndArchive = 'No more files in archive';
rsMsgErrNoMemory = 'Not enough memory';
rsMsgErrBadData = 'Data is bad';
rsMsgErrBadArchive = 'CRC error in archive data';
rsMsgErrUnknownFormat = 'Archive format unknown';
rsMsgErrEOpen = 'Cannot open existing file';
rsMsgErrECreate = 'Cannot create file';
rsMsgErrEClose = 'Error closing file';
rsMsgErrERead = 'Error reading from file';
rsMsgErrEWrite = 'Error writing to file';
rsMsgErrSmallBuf = 'Buffer too small';
rsMsgErrEAborted = 'Function aborted by user';
rsMsgErrNoFiles = 'No files found';
rsMsgErrTooManyFiles = 'Too many files to pack';
rsMsgErrNotSupported = 'Function not supported!';
rsMsgErrInvalidLink = 'Invalid link';
// Vfs
rsVfsNetwork = 'Network';
// Buttons.
rsDlgButtonOK = '&OK';
rsDlgButtonNo = '&No';
rsDlgButtonYes = '&Yes';
rsDlgButtonCancel = '&Cancel';
rsDlgButtonNone = 'Non&e';
rsDlgButtonAppend = 'A&ppend';
rsDlgButtonResume = '&Resume';
rsDlgButtonRename = 'R&ename';
rsDlgButtonCopyInto = '&Merge';
rsDlgButtonCopyIntoAll = 'Mer&ge All';
rsDlgButtonOverwrite = '&Overwrite';
rsDlgButtonOverwriteAll = 'Overwrite &All';
rsDlgButtonOverwriteOlder = 'Overwrite All Ol&der';
rsDlgButtonOverwriteSmaller = 'Overwrite All S&maller';
rsDlgButtonOverwriteLarger = 'Overwrite All &Larger';
rsDlgButtonAutoRenameSource = 'A&uto-rename source files';
rsDlgButtonSkip = '&Skip';
rsDlgButtonSkipAll = 'S&kip All';
rsDlgButtonIgnore = 'Ig&nore';
rsDlgButtonIgnoreAll = 'I&gnore All';
rsDlgButtonAll = 'A&ll';
rsDlgButtonRetry = 'Re&try';
rsDlgButtonAbort = 'Ab&ort';
rsDlgButtonOther = 'Ot&her';
rsDlgButtonRetryAdmin = 'As Ad&ministrator';
rsDlgButtonUnlock = '&Unlock';
rsDlgButtonCompare = 'Compare &by content';
rsDlgButtonContinue = '&Continue';
rsDlgButtonExitProgram = 'E&xit program';
// Log file
rsMsgLogSuccess = 'Done: ';
rsMsgLogError = 'Error: ';
rsMsgLogInfo = 'Info: ';
rsMsgLogCopy = 'Copy file %s';
rsMsgLogMove = 'Move file %s';
rsMsgLogDelete = 'Delete file %s';
rsMsgLogWipe = 'Wipe file %s';
rsMsgLogLink = 'Create link %s';
rsMsgLogSymLink = 'Create symlink %s';
rsMsgLogMkDir = 'Create directory %s';
rsMsgLogRmDir = 'Remove directory %s';
rsMsgLogWipeDir = 'Wipe directory %s';
rsMsgLogPack = 'Pack to file %s';
rsMsgLogExtract = 'Extract file %s';
rsMsgLogTest = 'Test file integrity %s';
rsMsgLogExtCmdLaunch = 'Launch external';
rsMsgLogExtCmdResult = 'Result external';
rsMsgLogProgramStart = 'Program start';
rsMsgLogProgramShutdown = 'Program shutdown';
rsMsgExitStatusCode = 'Exit status:';
rsSearchResult = 'Search result';
rsShowHelpFor = '&Show help for %s';
rsClipboardContainsInvalidToolbarData = 'Clipboard doesn''t contain any valid toolbar data.';
//Panel Color Configuration
rsMsgPanelPreview = 'Below is a preview. You may move cursor and select files to get immediately an actual look and feel of the various settings.';
// File operations dialog
rsDlgCp = 'Copy file(s)';
rsDlgMv = 'Move file(s)';
rsDlgOpPause = 'Pau&se';
rsDlgOpStart = '&Start';
rsDlgQueue = 'Queue';
rsDlgSpeed = 'Speed %s/s';
rsDlgSpeedTime = 'Speed %s/s, time remaining %s';
// File operations
rsFileOpDirectoryExistsOptions = 'Ask;Merge;Skip';
rsFileOpFileExistsOptions = 'Ask;Overwrite;Overwrite Older;Skip';
rsFileOpCopyMoveFileExistsOptions = 'Ask;Overwrite;Skip';
rsFileOpSetPropertyErrorOptions = 'Ask;Don''t set anymore;Ignore errors';
// Viewer
rsViewAboutText = 'Internal Viewer of Double Commander.';
rsViewNotFound = '%s not found!';
rsViewEncoding = 'Encoding';
rsViewNewSize = 'New Size';
rsViewImageType = 'Image Type';
rsViewBadQuality = 'Bad Quality';
rsViewPaintToolsList = 'Pen;Rect;Ellipse';
// Editor
rsEditGotoLineTitle = 'Goto Line';
rsEditGotoLineQuery = 'Goto line:';
rsEditAboutText = 'Internal Editor of Double Commander.';
// Editor Highlighters
rsSynLangPlainText = 'Plain text';
rsSynDefaultText = 'Default text';
// Columns in file panel
rsColName = 'Name';
rsColExt = 'Ext';
rsColSize = 'Size';
rsColDate = 'Date';
rsColAttr = 'Attr';
// Filter status in file panel
rsFilterStatus = 'FILTER';
rsSearchStatus = 'SEARCH';
// Cancel operations in file panel
rsCancelFilter = 'Cancel Quick Filter';
rsCancelOperation = 'Cancel Current Operation';
// File function names
rsFuncName = 'Name';
rsFuncExt = 'Extension';
rsFuncSize = 'Size';
rsFuncAttr = 'Attributes';
rsFuncPath = 'Path';
rsFuncGroup = 'Group';
rsFuncOwner = 'Owner';
rsFuncMTime = 'Modification date/time';
rsFuncCTime = 'Creation date/time';
rsFuncATime = 'Access date/time';
rsFuncHTime = 'Change date/time';
rsFuncLinkTo = 'Link to';
rsFuncNameNoExt = 'Name without extension';
rsFuncType = 'Type';
rsFuncComment = 'Comment';
rsFuncCompressedSize = 'Compressed size';
// Tools
rsToolViewer = 'Viewer';
rsToolEditor = 'Editor';
rsToolDiffer = 'Differ';
rsToolTerminal = 'Terminal';
rsToolErrorOpeningViewer = 'Error opening viewer';
rsToolErrorOpeningEditor = 'Error opening editor';
rsToolErrorOpeningDiffer = 'Error opening differ';
rsToolErrorOpeningTerminal = 'Error opening terminal';
// Configure custom columns dialog
rsConfColDelete = 'Delete';
rsConfColCaption = 'Caption';
rsConfColWidth = 'Width';
rsConfColAlign = 'Align';
rsConfColFieldCont = 'Field contents';
rsConfColMove='Move';
rsConfCustHeader='Customize column';
// Open with dialog
rsOpenWithMultimedia = 'Multimedia';
rsOpenWithDevelopment = 'Development';
rsOpenWithEducation = 'Education';
rsOpenWithGames = 'Games';
rsOpenWithGraphics = 'Graphics';
rsOpenWithNetwork = 'Network';
rsOpenWithOffice = 'Office';
rsOpenWithScience = 'Science';
rsOpenWithSettings = 'Settings';
rsOpenWithSystem = 'System';
rsOpenWithUtility = 'Accessories';
rsOpenWithOther = 'Other';
// File properties dialog
rsPropsFolder = 'Directory';
rsPropsFile = 'File';
rsPropsSpChrDev = 'Special character device';
rsPropsSpBlkDev = 'Special block device';
rsPropsNmdPipe = 'Named pipe';
rsPropsSymLink = 'Symbolic link';
rsPropsSocket = 'Socket';
rsPropsUnknownType = 'Unknown type';
rsPropsContains = 'Files: %d, folders: %d';
rsPropsErrChMod = 'Can not change access rights for "%s"';
rsPropsErrChOwn = 'Can not change owner for "%s"';
// Compare by content Dialog
rsDiffMatches = ' Matches: ';
rsDiffModifies = ' Modifies: ';
rsDiffAdds = ' Adds: ';
rsDiffDeletes = ' Deletes: ';
rsDiffFilesIdentical = 'The two files are identical!';
// Find files dialog
rsFindSearchFiles = 'Find files';
rsFindDefineTemplate = 'Define template';
rsFindScanning = 'Scanning';
rsFindScanned = 'Scanned: %d';
rsFindFound = 'Found: %d';
rsFindTimeOfScan = 'Time of scan: ';
rsFindWhereBeg = 'Begin at';
rsFindDirNoEx = 'Directory %s does not exist!';
rsFindDepthAll = 'all (unlimited depth)';
rsFindDepthCurDir = 'current dir only';
rsFindDepth = '%s level(s)';
rsFindSaveTemplateCaption = 'Save search template';
rsFindSaveTemplateTitle = 'Template name:';
rsSearchTemplateUnnamed = '';
rsListOfFindfilesWindows = 'List of "Find files" windows';
rsSelectYouFindFilesWindow = 'Select your window';
rsNoFindFilesWindowYet = 'Sorry, no "Find files" window yet...';
rsNoOtherFindFilesWindowToClose = 'Sorry, no other "Find files" window to close and free from memory...';
rsNewSearchClearFilterOptions = 'Keep;Clear;Prompt';
rsClearFiltersOrNot = 'Do you want to clear filters for this new search?';
rsSearchWithDSXPluginInProgress = 'A file search using DSX plugin is already in progress.'+#$0A+'We need that one to be completed before to launch a new one.';
rsSearchWithWDXPluginInProgress = 'A file search using WDX plugin is already in progress.'+#$0A+'We need that one to be completed before to launch a new one.';
rsPluginSearchFieldNotFound = 'Field "%s" not found!';
rsPluginSearchPluginNotFound = 'Plugin "%s" not found!';
rsPluginSearchUnitNotFoundForField = 'Unit "%s" not found for field "%s" !';
rsPluginSearchContainsNotCase = 'contains';
rsPluginSearchNotContainsNotCase = '!contains';
rsPluginSearchContainsCaseSenstive = 'contains(case)';
rsPluginSearchNotContainsCaseSenstive = '!contains(case)';
rsPluginSearchEqualNotCase = '=';
rsPluginSearchNotEqualNotCase = '!=';
rsPluginSearchEqualCaseSensitive = '=(case)';
rsPluginSearchNotEquaCaseSensitive = '!=(case)';
rsPluginSearchRegExpr = 'regexp';
rsPluginSearchNotRegExpr = '!regexp';
rsTimeUnitSecond = 'Second(s)';
rsTimeUnitMinute = 'Minute(s)';
rsTimeUnitHour = 'Hour(s)';
rsTimeUnitDay = 'Day(s)';
rsTimeUnitWeek = 'Week(s)';
rsTimeUnitMonth = 'Month(s)';
rsTimeUnitYear = 'Year(s)';
rsSizeUnitBytes = 'Bytes';
rsSizeUnitKBytes = 'Kilobytes';
rsSizeUnitMBytes = 'Megabytes';
rsSizeUnitGBytes = 'Gigabytes';
rsSizeUnitTBytes = 'Terabytes';
rsLegacyOperationByteSuffixLetter = 'B'; //Must be 1 character. Respecting legacy, letter added to following single letters for size when not empty.
rsLegacyDisplaySizeSingleLetterKilo = 'K'; //Must be 1 character. By legacy before 2018-11 it was a 'K'. If for a language a different letter was better, it's now changeable in language file.
rsLegacyDisplaySizeSingleLetterMega = 'M'; //Must be 1 character. By legacy before 2018-11 it was a 'M'. If for a language a different letter was better, it's now changeable in language file.
rsLegacyDisplaySizeSingleLetterGiga = 'G'; //Must be 1 character. By legacy before 2018-11 it was a 'G'. If for a language a different letter was better, it's now changeable in language file.
rsLegacyDisplaySizeSingleLetterTera = 'T'; //Must be 1 character. By legacy it was not present before 2018-11. It's also now changeable in language file.
rsDefaultPersonalizedAbbrevByte = 'B';
rsDefaultPersonalizedAbbrevKilo = 'KB';
rsDefaultPersonalizedAbbrevMega = 'MB';
rsDefaultPersonalizedAbbrevGiga = 'GB';
rsDefaultPersonalizedAbbrevTera = 'TB';
rsAbbrevDisplayDir = '';
rsAbbrevDisplayLink = '';
rsOptPersonalizedFileSizeFormat = 'Personalized float;Personalized byte;Personalized kilobyte;Personalized megabyte;Personalized gigabyte;Personalized terabyte';
rsOptFileSizeFloat = 'float';
rsFreeMsg = '%s of %s free';
rsFreeMsgShort = '%s free';
// Other
rsCopyNameTemplate = 'Copy (%d) %s';
// Symlink dialog
rsSymErrCreate = 'Error creating symlink.';
// Hardlink dialog
rsHardErrCreate = 'Error creating hardlink.';
// Splitter dialog
rsSplitSelDir = 'Select directory:';
rsSplitErrFileSize = 'Incorrect file size format!';
rsSplitErrDirectory = 'Unable to create target directory!';
rsSplitErrSplitFile = 'Unable to split the file!';
rsSplitMsgManyParts = 'The number of parts is more than 100! Continue?';
rsSplitPreDefinedSizes = 'Automatic;1457664B - 3.5" High Density 1.44M;1213952B - 5.25" High Density 1.2M;730112B - 3.5" Double Density 720K;362496B - 5.25" Double Density 360K;98078KB - ZIP 100MB;650MB - CD 650MB;700MB - CD 700MB;4482MB - DVD+R';
// MultiRename dialog
rsMulRenWarningDuplicate = 'Warning, duplicate names!';
rsMulRenAutoRename = 'Do auto-rename to "name (1).ext", "name (2).ext" etc.?';
rsMulRenWrongLinesNumber = 'File contains wrong number of lines: %d, should be %d!';
rsMulRenFileNameStyleList = 'No change;UPPERCASE;lowercase;First char uppercase;' +
'First Char Of Every Word Uppercase;';
// CheckSumCalcVerify dialog
rsCheckSumVerifyTitle = 'Verify checksum';
rsCheckSumVerifyText = 'Enter checksum and select algorithm:';
// CheckSumVerify dialog
rsCheckSumVerifyGeneral = 'General:';
rsCheckSumVerifyTotal = 'Total:';
rsCheckSumVerifySuccess = 'Success:';
rsCheckSumVerifyMissing = 'Missing:';
rsCheckSumVerifyBroken = 'Broken:';
rsCheckSumVerifyReadError = 'Read error:';
// Drive status
rsDriveNoMedia = '';
rsDriveNoLabel = '';
// Edit
rsEditNewFile = 'new.txt';
rsEditNewOpen = 'Open file';
rsEditNewFileName = 'Filename:';
// Edit search
rsEditSearchCaption = 'Search';
rsEditSearchReplace ='Replace';
rsEditSearchFrw = '&Forward';
rsEditSearchBack = '&Backward';
rsZeroReplacement = 'No replacement took place.';
rsXReplacements = 'Number of replacement: %d';
// Options editors
rsOptionsEditorArchivers = 'Archivers';
rsOptionsEditorAutoRefresh = 'Auto refresh';
rsOptionsEditorBehavior = 'Behaviors';
rsOptionsEditorColors = 'Colors';
rsOptionsEditorBriefView = 'Brief';
rsOptionsEditorColumnsView = 'Columns';
rsOptionsEditorCustomColumns = 'Custom columns';
rsOptionsEditorConfiguration = 'Configuration';
rsOptionsEditorDragAndDrop = 'Drag & drop';
rsOptionsEditorDrivesListButton = 'Drives list button';
rsOptionsEditorFileOperations = 'File operations';
rsOptionsEditorFilePanels = 'File panels';
rsOptionsEditorFileTypes = 'File types';
rsOptionsEditorFileNewFileTypes = 'New';
rsOptionsEditorFilesViews = 'Files views';
rsOptionsEditorFilesViewsComplement = 'Files views extra';
rsOptionsEditorFolderTabs = 'Folder tabs';
rsOptionsEditorFolderTabsExtra = 'Folder tabs extra';
rsOptionsEditorFonts = 'Fonts';
rsOptionsEditorHighlighters = 'Highlighters';
rsOptionsEditorHotKeys = 'Hot keys';
rsOptionsEditorIcons = 'Icons';
rsOptionsEditorIgnoreList = 'Ignore list';
rsOptionsEditorKeyboard = 'Keys';
rsOptionsEditorLanguage = 'Language';
rsOptionsEditorLayout = 'Layout';
rsOptionsEditorLog = 'Log';
rsOptionsEditorMiscellaneous = 'Miscellaneous';
rsOptionsEditorMouse = 'Mouse';
rsOptionsEditorPlugins = 'Plugins';
rsOptionsEditorQuickSearch = 'Quick search/filter';
rsOptionsEditorTerminal = 'Terminal';
rsOptionsEditorToolbar = 'Toolbar';
rsOptionsEditorToolbarExtra = 'Toolbar Extra';
rsOptionsEditorTools = 'Tools';
rsOptionsEditorTooltips = 'Tooltips';
rsOptionsEditorFileAssoc = 'File associations';
rsOptionsEditorFileAssicExtra = 'File associations extra';
rsOptionsEditorDirectoryHotlist = 'Directory Hotlist';
rsOptionsEditorDirectoryHotlistExtra = 'Directory Hotlist Extra';
rsOptionsEditorFavoriteTabs = 'Favorite Tabs';
rsOptionsEditorOptionsChanged = 'Options have changed in "%s"'+#$0A+#$0A+'Do you want to save modifications?';
rsOptionsEditorFileSearch = 'File search';
//-------------------------------
rsOptConfigSortOrder = 'Classic, legacy order;Alphabetic order (but language still first)';
rsOptConfigTreeState = 'Full expand;Full collapse';
rsOptDifferFramePosition = 'Active frame panel on left, inactive on right (legacy);Left frame panel on left, right on right';
//-------------------------------
//-------------------------------
rsOptEnterExt = 'Enter extension';
rsOptAssocPluginWith = 'Associate plugin "%s" with:';
rsOptMouseSelectionButton = 'Left button;Right button;';
rsOptAutoSizeColumn = 'First;Last;';
rsOptTabsPosition = 'Top;Bottom;';
rsOptArchiveTypeName = 'Archive type name:';
//-------------------------------
// Hotkeys
rsOptHotkeysAddDeleteShortcutLong =
'Shortcut %s for cm_Delete will be registered, so it can be used to reverse this setting.';
rsOptHotkeysAddShortcutButton = 'Add shortcut';
rsOptHotkeysCannotSetShortcut = 'Cannot set shortcut';
rsOptHotkeysChangeShortcut = 'Change shortcut';
rsOptHotkeysDeleteTrashCanOverrides =
'Shortcut %s for cm_Delete has a parameter that overrides this setting. Do you want to change this parameter to use the global setting?';
rsOptHotkeysDeleteTrashCanParameterExists =
'Shortcut %s for cm_Delete needs to have a parameter changed to match shortcut %s. Do you want to change it?';
rsOptHotkeysSetDeleteShortcut = 'Set shortcut to delete file';
rsOptHotkeysShortcutForDeleteAlreadyAssigned =
'For this setting to work with shortcut %s, shortcut %s must be assigned to cm_Delete but it is already assigned to %s. Do you want to change it?';
rsOptHotkeysShortcutForDeleteIsSequence =
'Shortcut %s for cm_Delete is a sequence shortcut for which a hotkey with reversed Shift cannot be assigned. This setting might not work.';
rsOptHotkeysCommand = 'Command';
rsOptHotkeysDescription = 'Description';
rsOptHotkeysFixParameter = 'Fix parameter';
rsOptHotkeysHotkeys = 'Hotkeys';
rsOptHotkeysHotkey = 'Hotkey';
rsOptHotkeysNoHotkey = '';
rsOptHotkeysParameters = 'Parameters';
rsOptHotkeysShortCutUsed = 'Shortcut in use';
rsOptHotkeysShortCutUsedText1 = 'Shortcut %s is already used.';
rsOptHotkeysShortCutUsedText2 = 'Change it to %s?';
rsOptHotkeysUsedBy = 'used for %s in %s';
rsOptHotkeysUsedWithDifferentParams = 'used for this command but with different parameters';
rsOptHotkeysAddHotkey = 'Add hotkey for %s';
rsOptHotkeysEditHotkey = 'Edit hotkey for %s';
rsHotkeyCategoryMain = 'Main';
rsHotkeyCategoryViewer = 'Viewer';
rsHotkeyCategoryEditor = 'Editor';
rsHotkeyCategoryFindFiles = 'Find files';
rsHotkeyCategoryDiffer = 'Differ';
rsHotkeyCategoryCopyMoveDialog = 'Copy/Move Dialog';
rsHotkeyCategorySyncDirs = 'Synchronize Directories';
rsHotkeyCategoryEditCommentDialog = 'Edit Comment Dialog';
rsHotkeySortOrder = 'By command name;By shortcut key (grouped);By shortcut key (one per row)';
rsHotKeyNoSCEnter='No shortcut with "ENTER"';
rsHotKeyFileSaveModified = '"%s" setup has been modified.'+#$0A+'Do you want to save it now?';
rsHotKeyFileNewName = 'New name';
rsHotKeyFileInputNewName = 'Input your new name';
rsHotKeyFileAlreadyExists = 'A setup with that name already exists.'+#$0A+'Do you want to overwrite it?';
rsHotKeyFileCopyOf = 'Copy of %s';
rsHotKeyFileConfirmErasure = 'Are you sure you want to erase setup "%s"?';
rsHotKeyFileMustKeepOne = 'You must keep at least one shortcut file.';
rsHotKeyFileConfirmDefault = 'Are you sure you want to restore default?';
rsCmdCategoryListInOrder='All;Active Panel;Left Panel;Right Panel;File Operations;Configuration;Network;Miscellaneous;Parallel Port;Print;Mark;Security;Clipboard;FTP;Navigation;Help;Window;Command Line;Tools;View;User;Tabs;Sorting;Log';
rsCmdKindOfSort='Legacy sorted;A-Z sorted';
rsMsgThisIsNowInClipboard = '"%s" is now in the clipboard';
rsSimpleWordAll = 'All';
rsSimpleWordCommand = 'Command';
rsSimpleWordCategory = 'Category';
rsSimpleWordFilename = 'Filename';
rsSimpleWordParameter = 'Param';
rsSimpleWordWorkDir = 'WorkDir';
rsSimpleWordResult = 'Result';
rsSimpleWordColumnSingular = 'Column';
rsSimpleWordLetter = 'Letter';
rsSimpleWordTrue = 'True';
rsSimpleWordFalse = 'False';
rsSimpleWordError = 'Error';
rsSimpleWordSuccessExcla = 'Success!';
rsSimpleWordFailedExcla = 'Failed!';
// Plugins
rsOptPluginsActive = 'Active';
rsOptPluginsName = 'Name';
rsOptPluginsRegisteredFor = 'Registered for';
rsOptPluginsFileName = 'File name';
rsOptPluginsDescription = 'Description';
rsOptPluginAlreadyAssigned = 'Plugin %s is already assigned for the following extensions:';
rsOptPluginEnable = 'E&nable';
rsOptPluginDisable = 'D&isable';
rsOptPluginShowByPlugin = 'By Plugin';
rsOptPluginShowByExtension = 'By extension';
rsOptPluginSortOnlyWhenByExtension = 'Sorting WCX plugins is only possible when showing plugins by extension!';
rsPluginFilenameStyleList = 'With complete absolute path;Path relative to %COMMANDER_PATH%;Relative to the following';
//-------------------------------
rsOptSortMethod = 'Alphabetical, considering accents;Natural sorting: alphabetical and numbers';
rsOptSortCaseSens = 'not case sensitive;according to locale settings (aAbBcC);first upper then lower case (ABCabc)';
rsOptSortFolderMode = 'sort by name and show first;sort like files and show first;sort like files';
rsOptNewFilesPosition = 'at the top of the file list;after directories (if directories are sorted before files);at sorted position;at the bottom of the file list';
rsOptUpdatedFilesPosition = 'don''t change position;use the same setting as for new files;to sorted position';
rsOptFileOperationsProgressKind = 'separate window;minimized separate window;operations panel';
rsOptTypeOfDuplicatedRename = 'DC legacy - Copy (x) filename.ext;Windows - filename (x).ext;Other - filename(x).ext';
// Keyboard
rsOptLetters = 'None;Command Line;Quick Search;Quick Filter';
// Directory hotlist
rsOptAddFromMainPanel = 'Add at &beginning;Add at the end;Smart add';
//File Associations
rsMsgTitleExtNotInFileType = 'Extension of selected file is not in any recognized file types';
rsMsgSekectFileType = 'Select to which file type to add extension "%s"';
rsMsgCreateANewFileType = '< Create a new file type "%s files" >';
rsMsgEnterNewFileTypeName = 'Enter name of new file type to create for extension "%s"';
rsMsgEnterCustomAction = 'Enter custom action name:';
rsSimpleWordFiles = 'files';
rsViewWithInternalViewer = 'with internal viewer';
rsEditWithInternalEditor = 'with internal editor';
rsViewWithExternalViewer = 'with external viewer';
rsEditWithExternalEditor = 'with external editor';
rsExecuteViaShell = 'Execute via shell';
rsExecuteViaTerminalClose = 'Execute via terminal and close';
rsExecuteViaTerminalStayOpen = 'Execute via terminal and stay open';
rsConfigurationFileAssociation = 'Configure file association';
//Variables
rsConfirmExecution = 'Confirming command line and parameters';
rsVarHelpWith = 'Help with "%" variables';
rsVarOtherExamples = 'Other example of what''s possible';
rsVarOnlyFilename = 'Only filename';
rsVarPath = 'Path, without ending delimiter';
rsVarLastDirOfPath = 'Last directory of file''s path';
rsVarFullPath = 'Complete filename (path+filename)';
rsVarFilenameNoExt = 'Just filename, no extension';
rsVarOnlyExtension = 'Only file extension';
rsVarRelativePathAndFilename = 'Filename with relative path';
rsVarCurrentPath = 'Path of panel';
rsVarLastDirCurrentPath = 'Last directory of panel''s path';
rsVarListFilename = 'Temporary filename of list of filenames';
rsVarListFullFilename = 'Temporary filename of list of complete filenames (path+filename)';
rsVarListRelativeFilename = 'Temporary filename of list of filenames with relative path';
rsVarListInUTF8 = 'Filenames in list in UTF-8';
rsVarListInUTF16 = 'Filenames in list in UTF-16 with BOM';
rsVarListInUTF8Quoted = 'Filenames in list in UTF-8, inside double quotes';
rsVarListInUTF16Quoted = 'Filenames in list in UTF-16 with BOM, inside double quotes';
rsVarSourcePanel = 'Active panel (source)';
rsVarTargetPanel = 'Inactive panel (target)';
rsVarLeftPanel = 'Left panel';
rsVarRightPanel = 'Right panel';
rsVarBothPanelLeftToRight = 'Both panels, from left to right';
rsVarBothPanelActiveToInactive = 'Both panels, from active to inactive';
rsVarShowCommandPrior = 'Show command prior execute';
rsVarPercentSign = 'Return the percent sign';
rsVarPercentChangeToPound = 'From here to the end of the line, the percent-variable indicator is the "#" sign';
rsVarPoundChangeToPercent = 'From here to the end of the line, the percent-variable indicator is back the "%" sign';
rsVarWillNotBeQuoted = 'Filenames will not be quoted from here';
rsVarWillBeQuoted = 'Filenames will be quoted from here (default)';
rsVarWillNotHaveEndingDelimiter = 'Paths will not have ending delimiter (default)';
rsVarWillHaveEndingDelimiter = 'Paths will have ending delimiter';
rsVarWillNotDoInTerminal = 'Command will be done in terminal, closed at the end';
rsVarWillDoInTerminal = 'Command will be done in terminal, remaining opened at the end';
rsVarSimpleMessage = '%[Simple message]';
rsVarSimpleShowMessage = 'Will show a simple message';
rsVarPromptUserForParam = '%[Prompt user for param;Default value proposed]';
rsVarInputParam = 'Will request request user to enter a parameter with a default suggested value';
rsVarPrependElement = 'Prepend each name with "-a " or what you want';
rsVarEncloseElement = 'Enclose each name in brackets or what you want';
rsVarSecondElementRightPanel = 'Full path of second selected file in right panel';
// Quick Search/Filter
rsOptSearchItems = '&Files;Di&rectories;Files a&nd Directories';
rsOptSearchCase = '&Sensitive;&Insensitive';
rsOptSearchOpt = '&Hide filter panel when not focused;Keep saving setting modifications for next session';
// Toolbar
rsOptToolbarButtonType = 'S&eparator;Inte&rnal command;E&xternal command;Men&u';
rsImportToolbarProblem = 'Cannot find reference to default bar file';
rsMsgToolbarSaved = 'Saved!'+#$0A+'Toolbar filename: %s';
rsMsgTCToolbarWhereToSave = 'Enter location and filename where to save a TC Toolbar file';
rsMsgDCToolbarWhereToSave = 'Enter location and filename where to save a DC Toolbar file';
rsMsgToolbarRestoreWhat = 'Enter location and filename of Toolbar to restore';
rsMsgToolbarLocateTCToolbarFile = 'Locate ".BAR" file to import';
rsMsgToolbarLocateDCToolbarFile = 'Locate ".toolbar" file to import';
rsMsgTCToolbarNotFound = 'Error! Cannot find the desired wanted TC toolbar output folder:'+#$0A+'%s';
rsMsgTCConfigNotFound = 'Error! Cannot find the TC configuration file:'+#$0A+'%s';
rsMsgTCExecutableNotFound = 'Error! Cannot find the TC configuration executable:'+#$0A+'%s';
rsMsgTCisRunning = 'Error! TC is still running but it should be closed for this operation.'+#$0A+'Close it and press OK or press CANCEL to abort.';
rsMsgAllDCIntCmds = 'All Double Commander internal commands';
//Columns Menu
rsMenuConfigureCustomColumns= 'Configure custom columns';
rsMenuConfigureEnterCustomColumnName = 'Enter new custom columns name';
rsMenuConfigureColumnsSaveToChange = 'To change current editing colmuns view, either SAVE, COPY or DELETE current editing one';
rsMenuConfigureColumnsAlreadyExists = 'A columns view with that name already exists.';
// Operation states.
rsOperNotStarted = 'Not started';
rsOperStarting = 'Starting';
rsOperRunning = 'Running';
rsOperPausing = 'Pausing';
rsOperPaused = 'Paused';
rsOperWaitingForFeedback = 'Waiting for user response';
rsOperWaitingForConnection = 'Waiting for access to file source';
rsOperStopping = 'Stopping';
rsOperStopped = 'Stopped';
rsOperFinished = 'Finished';
rsOperAborted = 'Aborted';
// Operations descriptions.
rsOperCalculatingCheckSum = 'Calculating checksum';
rsOperCalculatingCheckSumIn = 'Calculating checksum in "%s"';
rsOperCalculatingCheckSumOf = 'Calculating checksum of "%s"';
rsOperCalculatingStatictics = 'Calculating';
rsOperCalculatingStatisticsIn = 'Calculating "%s"';
rsOperCombining = 'Joining';
rsOperCombiningFromTo = 'Joining files in "%s" to "%s"';
rsOperCopying = 'Copying';
rsOperCopyingFromTo = 'Copying from "%s" to "%s"';
rsOperCopyingSomethingTo = 'Copying "%s" to "%s"';
rsOperCreatingDirectory = 'Creating directory';
rsOperCreatingSomeDirectory = 'Creating directory "%s"';
rsOperDeleting = 'Deleting';
rsOperDeletingIn = 'Deleting in "%s"';
rsOperDeletingSomething = 'Deleting "%s"';
rsOperExecuting = 'Executing';
rsOperExecutingSomething = 'Executing "%s"';
rsOperExtracting = 'Extracting';
rsOperExtractingFromTo = 'Extracting from "%s" to "%s"';
rsOperListing = 'Listing';
rsOperListingIn = 'Listing "%s"';
rsOperMoving = 'Moving';
rsOperMovingFromTo = 'Moving from "%s" to "%s"';
rsOperMovingSomethingTo = 'Moving "%s" to "%s"';
rsOperPacking = 'Packing';
rsOperPackingFromTo = 'Packing from "%s" to "%s"';
rsOperPackingSomethingTo = 'Packing "%s" to "%s"';
rsOperSettingProperty = 'Setting property';
rsOperSettingPropertyIn = 'Setting property in "%s"';
rsOperSettingPropertyOf = 'Setting property of "%s"';
rsOperSplitting = 'Splitting';
rsOperSplittingFromTo = 'Splitting "%s" to "%s"';
rsOperTesting = 'Testing';
rsOperTestingSomething = 'Testing "%s"';
rsOperTestingIn = 'Testing in "%s"';
rsOperVerifyingCheckSum = 'Verifying checksum';
rsOperVerifyingCheckSumIn = 'Verifying checksum in "%s"';
rsOperVerifyingCheckSumOf = 'Verifying checksum of "%s"';
rsOperWiping = 'Wiping';
rsOperWipingIn = 'Wiping in "%s"';
rsOperWipingSomething = 'Wiping "%s"';
rsOperWorking = 'Working'; // Generic description for unknown operation
//TreeViewMenu
rsStrAccents = 'á;â;à;å;ã;ä;ç;é;ê;è;ë;í;î;ì;ï;ñ;ó;ô;ò;ø;õ;ö;ú;û;ù;ü;ÿ;Á;Â;À;Å;Ã;Ä;Ç;É;Ê;È;Ë;Í;Í;Ì;Ï;Ñ;Ó;Ô;Ø;Õ;Ö;ß;Ú;Û;Ù;Ü;Ÿ;¿;¡;œ;æ;Æ;Œ;ě;š;č;ř;ž;ý;ň;ď;ť;ů;Ě;Š;Č;Ř;Ž;Ý;Ň;Ď;Ť;Ů';
rsStrAccentsStripped = 'a;a;a;a;a;a;c;e;e;e;e;i;i;i;i;n;o;o;o;o;o;o;u;u;u;u;y;A;A;A;A;A;A;C;E;E;E;E;I;I;I;I;N;O;O;O;O;O;B;U;U;U;U;Y;?;!;oe;ae;AE;OE;e;s;c;r;z;y;n;d;t;u;E;S;C;R;Z;Y;N;D;T;U';
rsOptionsEditorTreeViewMenu = 'Tree View Menu';
rsOptionsEditorTreeViewMenuColors = 'Tree View Menu Colors';
rsStrPreviewSearchingLetters = 'OU';
rsStrPreviewJustPreview = 'Just preview';
rsStrPreviewWordWithSearched1 = 'Fabulous';
rsStrPreviewWordWithSearched2 = 'Marvelous';
rsStrPreviewWordWithSearched3 = 'Tremendous';
rsStrPreviewSideNote = 'Side note';
rsStrPreviewOthers = 'Others';
rsStrPreviewWordWithoutSearched1 = 'Flat';
rsStrPreviewWordWithoutSearched2 = 'Limited';
rsStrPreviewWordWithoutSearched3 = 'Simple';
rsMsgUnexpectedUsageTreeViewMenu = 'ERROR: Unexpected Tree View Menu usage!';
rsStrTVMChooseHotDirectory = 'Choose your directory from Hot Directory:';
rsStrTVMChooseFavoriteTabs = 'Choose you Favorite Tabs:';
rsStrTVMChooseDirHistory = 'Choose your directory from Dir History';
rsStrTVMChooseViewHistory = 'Choose your directory from File View History';
rsStrTVMChooseFromToolbar = 'Choose your action from Maintool bar';
rsStrTVMChooseFromMainMenu = 'Choose your action from Main Menu';
rsStrTVMChooseFromCmdLineHistory = 'Choose your command from Command Line History';
rsStrTVMChooseYourFileOrDir = 'Choose your file or your directory';
//Split/Combine operation special message
rsMsgBadCRC32 = 'Bad CRC32 for resulting file:'+#$0A+'"%s"'+#$0A+#$0A+'Do you want to keep the resulting corrupted file anyway?';
rsMsgProvideThisFile = 'Please, make this file available. Retry?';
rsMsgIncorrectFilelength = 'Incorrect resulting filelength for file : "%s"';
rsMSgUndeterminedNumberOfFile = 'Undetermined';
rsMsgInsertNextDisk = 'Please insert next disk or something similar.'+#$0A+#$0A+'It is to allow writing this file:'+#$0A+'"%s"'+#$0A+''+#$0A+'Number of bytes still to write: %d';
msgTryToLocateCRCFile = 'This file cannot be found and could help to validate final combination of files:'+#$0A+'%s'+#$0A+#$0A+'Could you make it available and press "OK" when ready,'+#$0A+'or press "CANCEL" to continue without it?';
rsMsgInvalidHexNumber = 'Invalid hexadecimal number: "%s"';
//LUA and script related messages
rsMsgScriptCantFindLibrary = 'ERROR: Problem loading Lua library file "%s"';
rsMsgWantToConfigureLibraryLocation = 'Do you want to configure Lua library location?';
// Unhandled error.
rsUnhandledExceptionMessage =
'Please report this error to the bug tracker with a description '
+ 'of what you were doing and the following file:%s'
+ 'Press %s to continue or %s to abort the program.';
function GetLanguageName(const poFileName : String) : String;
procedure lngLoadLng(const sFileName:String);
procedure DoLoadLng;
implementation
uses
Forms, Classes, SysUtils, StrUtils, GetText, Translations, uGlobs, uGlobsPaths,
uTranslator, uDebug, uFileProcs, DCOSUtils, DCStrUtils;
function GetLanguageName(const poFileName : String) : String;
var
sLine : String;
poFile : THandle;
iPos1, iPos2 : Integer;
begin
poFile:= mbFileOpen(poFileName, fmOpenRead);
if poFile <> feInvalidHandle then
begin
// find first msgid line
FileReadLn(poFile, sLine);
while Pos('msgid', sLine) = 0 do
FileReadLn(poFile, sLine);
// read msgstr line
FileReadLn(poFile, sLine);
repeat
FileReadLn(poFile, sLine);
// find language name line
if Pos('X-Native-Language:', sLine) <> 0 then
begin
iPos1 := Pos(':', sLine) + 2;
iPos2 := Pos('\n', sLine) - 1;
Result := Copy(sLine, iPos1, (iPos2 - iPos1) + 1);
FileClose(poFile);
Exit;
end;
until Pos('msgid', sLine) = 1;
FileClose(poFile);
end;
Result := 'Unknown';
end;
procedure TranslateLCL(poFileName: String);
const
BidiModeMap: array[Boolean] of TBiDiMode = (bdLeftToRight,
{$IF DEFINED(LCLWIN32)}
bdRightToLeftNoAlign // see http://bugs.freepascal.org/view.php?id=28483
{$ELSE}
bdRightToLeft
{$ENDIF}
);
var
Lang: String = '';
FallbackLang: string = '';
UserLang, LCLLngDir: String;
begin
LCLLngDir:= gpLngDir + 'lcl' + PathDelim;
if NumCountChars('.', poFileName) >= 2 then
begin
UserLang:= ExtractDelimited(2, poFileName, ['.']);
Application.BidiMode:= BidiModeMap[Application.IsRTLLang(UserLang)];
poFileName:= LCLLngDir + Format('lclstrconsts.%s.po', [UserLang]);
if not mbFileExists(poFileName) then
begin
GetLanguageIDs(Lang, FallbackLang);
poFileName:= LCLLngDir + Format('lclstrconsts.%s.po', [Lang]);
if not mbFileExists(poFileName) then
poFileName:= LCLLngDir + Format('lclstrconsts.%s.po', [FallbackLang]);
end;
if mbFileExists(poFileName) then
Translations.TranslateUnitResourceStrings('LCLStrConsts', poFileName);
end;
end;
procedure lngLoadLng(const sFileName:String);
var
Lang: String = '';
FallbackLang: String = '';
begin
{ Localization }
if sFileName = 'doublecmd.po' then Exit; // default english interface
gPOFileName := sFileName;
if not mbFileExists(gpLngDir + gPOFileName) then
begin
gPOFileName := 'doublecmd.%s.po';
GetLanguageIDs(Lang, FallbackLang);
gPOFileName := Format(gPOFileName,[FallbackLang]);
end;
if not mbFileExists(gpLngDir + gPOFileName) then
begin
gPOFileName := Format(gPOFileName,[Lang]);
end;
if mbFileExists(gpLngDir + gPOFileName) then
begin
DCDebug('Loading lng file: ' + gpLngDir + gPOFileName);
LRSTranslator := TTranslator.Create(gpLngDir + gPOFileName);
Translations.TranslateResourceStrings(gpLngDir + gPOFileName);
TranslateLCL(gPOFileName);
end;
end;
procedure DoLoadLng;
begin
lngLoadLng(gPOFileName);
end;
finalization
if Assigned(LRSTranslator) then
FreeAndNil(LRSTranslator);
end.