{
********************************************************************************

SPackGui
Copyright (C) 2012-2013 Geoffray Levasseur <geoffray.levasseurbrandin@numericable.fr>.
Copyright (C) <date> <add your name and mail address here>

http://0.tuxfamilly.org/
http://www.geoffray-levasseur.org/

This software is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software.  You can  use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".

As a counterpart to the access to the source code and  rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty  and the software's author,  the holder of the
economic rights,  and the successive licensors  have only  limited
liability.

In this respect, the user's attention is drawn to the risks associated
with loading,  using,  modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean  that it is complicated to manipulate,  and  that  also
therefore means  that it is reserved for developers  and  experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and,  more generally, to use and operate it in the
same conditions as regards security.

The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.

********************************************************************************

Description:
  Message and other non changeable string constant

********************************************************************************
}
unit uStrings;

{$include defines.inc}

interface

uses
  uCommon;

const //some logfile const
  dbgStatOk = '-';
  dbgStatWarn = '!';
  dbgOk = 'Ok';
  dbgFail = 'Fail';
  sTimeJump = '           '; //number of space = time length with braces

resourcestring //in case we use automatic i18n translation in the future
  rsFullAppTitle = 'SPackGui';

  //paths and files
  rsSpackExt = '.SPACK';
  rsPackageListFile = 'paquets.db';
  rsAppListFile = 'applications.db';
  rsDeprecatedFile = 'obsoletes.db';
  rsFreeDesktopConfig = '.config';
  rsHomeConfDir = 'spackgui';

  //logfile prefixes
  rsBaseError = '*** ERROR: ';
  rsBaseWarning = '! WARNING: ';
  rsBaseInfo = 'Info: ';
  rsBaseDebug = '[Debug]: ';

  //logfile messages
  rsStackTrace = 'Stack trace:';
  rsExceptionClass = 'Exception class: ';
  rsMessage = 'Message: ';
  rsHeapStatusDetails = 'Heap Status:' + LineEnding +
    sTimeJump + ' - Addr Space:     ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Uncommitted:    ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Committed:      ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Allocated:      ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Free:           ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Free Small:     ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Free Big:       ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Unused:         ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Overhead:       ' + #9 + ' %d ' + LineEnding +
    sTimeJump + ' - Heap Errorcode: ' + #9 + ' %d ';

  //units
  rsByte = 'o';
  rsGB = 'Go';
  rsGiB = 'Gio';
  rsMB = 'Mo';
  rsMiB = 'Mio';
  rsKB = 'ko';
  rsKiB = 'Kio';

  //configuration sections (should not be translated)
  rsConfSectionCommand = 'Commands';
  rsConfSectionPaths = 'Paths';
  rsConfSectionProxy = 'Proxy';
  rsConfSectionDisplay = 'Display';
  rsConfSectionListViewColors = 'ListViewColors';
  rsConfNameUpdatablePackageFont = 'UpdatablePackageFont';
  rsConfNameUpdatablePackageBack = 'UpdatablePackageBack';
  rsConfNameOutdatedPackageFont = 'OutdatedPackageFont';
  rsConfNameOutdatedPackageBack = 'OutdatedPackageBack';
  rsConfNamePackageToInstallFont = 'PackageToInstallFont';
  rsConfNamePackageToInstallBack = 'PackageToInstallBack';
  rsConfNamePackageToUpgradeFont = 'PackageToUpgradeFont';
  rsConfNamePackageToUpgradeBack = 'PackageToUpgradeBack';
  rsConfNamePackageToRemoveFont = 'PackageToRemoveFont';
  rsConfNamePackageToRemoveBack = 'PackageToRemoveBack';
  rsConfNameAddress = 'Address';
  rsConfNameInstallCommand = 'Install';
  rsConfNameReinstallCommand = 'Reinstall';
  rsConfNameRemoveCommand = 'Remove';
  rsConfNameUpdateCommand = 'Update';
  rsConfNameInstPkgPath = 'InstalledPackages';
  rsConfNamePkgDownloadPath = 'PackageDownload';
  rsConfNameRepoDownloadPath = 'RepositoriesIndex';
  rsConfNameHttpProxy = 'Http';
  rsConfNameFtpProxy = 'Ftp';
  rsConfNameLogFontName = 'LogFont.Name';
  rsConfNameLogFontSize = 'LogFont.Size';
  rsConfNameDefault = 'Default';
  rsConfNameRepoDesc = 'Desc';
  rsConfNameLeft = 'Left';
  rsConfNameWidth = 'Width';
  rsConfNameTop = 'Top';
  rsConfNameHeight = 'Height';
  rsConfNameMaximized = 'Maximized';
  rsConfNameCount = 'Count';
  rsConfNameDecimalUnits = 'DecimalUnits';
  rsConfNameThousandsSep = 'ThousandsSeparator';
  rsConfNameDecimalSep = 'DecimalSeparator';
  rsConfNameListViewColumn = 'ListViewColumn';
  rsConfNameHorizPanelLeft = 'HorizPanelLeft';
  rsConfNameVertPanelTop = 'VertPanelTop';
  rsConfNameFindHistory = 'FindHistory';
  rsConfNameSortColumn = 'SortColumn';
  rsConfNameSortAscending = 'SortAscending';
  rsConfNameShowGrid = 'ShowGrid';
  rsConfNameNoColors = 'NoColors';

  //log messages (use english only)
  rsInfoLoggingStarted = 'Logging started: "%s"';
  rsInfoLoggingTerminated = 'Closing log file "%s": application terminated';
  rsInfoShowingLogWin = 'i TfMain: Showing log window...';
  rsInfoLoadingPackages = 'i TPackageList: Loading package list in "%s" ' +
    '(%d found)...';
  rsInfoDirLoadingPackages = 'i TPackageList: Loading packages in: "%s"...';
  rsInfoDownloadingFile = 'i TPackageList: Downloading file "%s" in "%s"...';
  rsInfoAddingDistantRepo = 'i TPackageList: Loading remote repo: "%s".';
  rsInfoAddingLocalRepo = 'i TPackageList: Loading local repo: "%s".';
  rsInfoAddedFileToDowload = 'i TPackageList: The file "%s" is now added to ' +
    'download list.';
  rsInfoLoadingLogFile = 'i TfLogFile: Loading log file: "%s".';
  rsInfoInitializedDownload = 'i TDownloader: Initialized download of "%s": %s.';
  rsInfoInitConfFile = 'i uCommon: Configuration file %s initialized.';
  rsInfoRunningTest = 'i Main: Running in test mode.';
  rsInfoRunningDebug = 'i Main: Running if debug mode.';
  rsInfoShowingPackageInfo = 'i TfPackageProperty: Showing informations ' +
    'about package "%s".';
  rsInfoLoadingDistPackageInfo = 'i TPackageList: Loading package ' +
    'informations in "%s"...';
  rsInfoGetHttpProxySettings = 'i TfEnvironmentSettings: Getting HTTP proxy ' +
    'settings from "%s".';
  rsInfoGetFtpProxySettings = 'i TfEnvironmentSettings: Getting FTP proxy ' +
    'settings from "%s".';
  rsInfoDefaultRepo = 'i uCommon: Default repository is "%s"';
  rsInfoLoadingRepoSettings = 'i uCommon: Loading repositories settings...';
  rsInfoGetFileList = 'i TSPackPackage: Getting file list for package in "%s"...';
  rsInfoFoundBrowser = 'i uUtils: Found browser: "%s"';
  rsInfoStartLoggingDb = 'i TfMain: Logging of the full database starts here...';
  rsInfoEndLoggingDb = 'i TfMain: Logging of the full database ends here...';
  rsInfoLoadingDeprecated = 'i TPackageList: Loading deprecated package from ' +
    'default repository "%s" in "%s".';
  rsWarningNoLogfile = 'W uDebug: No log file will be created, ' +
    'logging on stdout (console) only';
  rsWarningDbgNotRoot = 'W Main: Running in non root mode.';
  rsWarningConfWillBeLost = 'W Main: Any change in configuration will be lost.';
  rsWarningNoPackageInfo = 'W TPackageList: No package information files ' +
    'to download.';
  rsWarningNoLocalRepository = 'W TPackageList: No local repository ' +
    'configured yet.';
  rsWarningNoDistantRepository = 'W TPackageList: No distant repository ' +
    'configured yet.';
  rsWarningNoFileList = 'W TSPackPackage: That package have no file list.';
  rsErrorLogrotate = 'E uDebug: logrotate failed on file "%s"';
  rsErrorUnhandledException = 'E uDebug: Unhandled exception:';
  rsErrorButLogrotate = 'E uDebug: logrotate worked but the log file "%s" '+
    'still exists';
  rsErrorCreatingLogfile = 'E uDebug: could not create log file "%s"';
  rsErrorWritingLogFile = 'E uDebug: unable to write in logfile "%s"';
  rsErrorInThread = 'E uDebug: In thread: "%s"';
  rsErrorPkgListIndex = 'E TPackageList: Index %n out of bounds.';
  rsErrorCapacity = 'E TPackageList: Trying to set a wrong capacity %n.';
  rsErrorUnableToLock = 'E Main: cannot lock the program: change will not be ' +
    'allowed.';
  rsErrorLoadingPackage = 'E TSpackPackage: Failed to load package ' +
    'informations in %s.';
  rsErrorLocalRepoNotFound = 'E TPackageList: Unavailable local repository "%s".';
  rsErrorReadOnly = 'E Main: SPackGui was unable to find a path where it ' +
    'can write its configuration files.';
  rsErrorNoPackage = 'E TfMain: No packages have been found in "%s".';
  rsErrorDownloadRepoFailed = 'E TPackageList: Downloading "%s" failed.';
  rsErrorMalformedRepoDecl = 'E TPackageList: Malformed repository ' +
    'declaration "%s".';
  rsErrorCantGetFileSze = 'E TDownloadManager: Can''t get size of the file ' +
    'at address "%s".';
  rsErrorDownloadingFailed = 'E TDownloader: Can''t download the file at ' +
    'address "%s".';
  rsErrorDownloadIndex = 'E TDownloadListLoop: The download index %d is out ' +
    'of range (< 0).';
  rsErrorInvalidLine = 'E TPackageList: The file "%s" contains an invalid ' +
    'line %d.';
  rsErrorCantFindDeprecationFile = 'E TPackageList: Can''t find file "%s" for ' +
    'deprecated packages of the default "%s" repository.';
  rsErrorCannotSaveConf = 'E Unable to save configuration informations.';
  rsDebugDownloadStarted = 'D TDownloader: Download started.';
  rsDebugDownloadFinished = 'D TDownloader: Download terminated.';
  rsDebugDownloadListLoopStarted = 'D TDownloadListLoop: Thread started.';
  rsDebugDownloadListLoopStopped = 'D TDownloadListLoop: Thread terminated.';
  rsDebugAddedToDownloadList = 'D TPackageManager: Added file "%s" to download ' +
    'list.';
  rsDebugInitializingNewFileForDownload = 'D TPackageManager: Initializing ' +
    'informations for downloading file "%s".';
  rsDebugSwitchedToNextFileForDownload = 'D TPackageManager: Switching to ' +
    'next file index %d for download.';
  rsDebugNodeAdded = 'D TfMain: Adding node "%s" to "%s".';
  rsDebugDisplayingCategory = 'D TfMain: Selected category "%s" to display.';
  rsDebugDownloadFeedback = 'D TDownloadManager: ';

  //messagebox titles
  rsDone = 'Done';
  rsError = 'Error';
  rsWarning = 'Warning';
  rsQuestion = 'Question';
  rsHelp = 'Help';

  //messagebox contents
  rsWarningNotRoot = 'It seems SPackGui have not been launched with ' +
    'administrator permition (' + sRootUserName + '). Thus, You won''t be ' +
    'authorized to apply any change to the system.' +
    LineEnding + LineEnding +
    'Log file will be placed in your personal directory instead of /var/log.';
  rsWarningOtherInstance = 'An other instance of the program is running. ' +
    'No change will be possible.';
  rsErrorEqualForbidden = 'Symbol « = » (equal) is forbidden in object names.';
  rsErrorDuplicateRepoName = 'Impossible to add a repository where name is ' +
    'already in use.';
  rsErrorQuoteForbidden = 'Symbol « " » (quote) is forbidden in addresses.';
  rsErrorSearchSynthax = 'Syntax error in research field: an expression ' +
    'can''t begin or end with an operator.';
  rsLooseRepoChanges = 'You have made changes in repository list. Do you ' +
    'want to loose those changes and close the window?';
  rsNoPackageFound = 'No installed package have been found. ' + LineEnding +
    'Unless you use that software for the very first time on a system not ' +
    'using SPack as primary package manager, that situation is not normal.' +
    'Anyway, you should check now your configuration before beginning.';
  rsRegExprHelp = 'Regular expressions allows to do precise search using ' +
    'inclusions, exclutions or complex strings. With a classic search every ' +
    'word is independently search and they all must be present in then ' +
    'package name or its description.' +
    LineEnding + LineEnding +
    'A regular expression admit the following operators:' + LineEnding +
    '    - The + symbol sticked to a word make it necessary' + LineEnding +
    '    - The - symbol sticked to a word exclude it' + LineEnding +
    '    - The & symbol between two words force presence of both words' +
    LineEnding +
    '    - The | symbol between two words means we want at least one of the ' +
    'two words ' + LineEnding +
    '    - The symbol # between two words we want one or the other word but ' +
    'not both' + LineEnding +
    '    - Everything placed between two " (quotes) is evaluated as a single ' +
    'word' + LineEnding + LineEnding +
    'Exemples :' + LineEnding +
    '    +phonon -vlc: will look for anything containing phonon but not vlc' +
    LineEnding +
    '    nvidia | ati: will look for anything containing nvidia or ati or both' +
    LineEnding +
    '    vl | vd & lib: will look for anything containing vl or vd or both ' +
    'and in any case will contain lib';
  rsReloadPackagesAfterRepoChange = 'The repositories configuration have ' +
    'been changed.' + LineEnding + LineEnding +
    'If you want to take it into account, it is necessary to reload entirely ' +
    'the package list.' + LineEnding + LineEnding +
    'Do you want to reload package list now?';
  rsReloadPackagesAfterEnvChange = 'You have changed one or more vital SPack ' +
    'paths.' + LineEnding + LineEnding +
    'If you want to take changes into account, it is required to reload ' +
    'entirely the package list.' + LineEnding + LineEnding +
    'Do you want to reload package list now?';

  //Custom exception message
  rsExceptPackageNameMismatch = 'TSPackPackage: Package name mismatch.';
  rsExceptEmptyVersion = 'TSPackPackage: Empty package version is forbidden.';
  rsExceptMaxPackageAlt = 'TSPackPackage: Reached maximum package alternatives.';
  rsExceptEmptyAddress = 'TDownloader: The given URL is empty.';
  rsExceptUnsupportedProtocol = 'TDownloader: The given protocol is not '+
    'supported.';
  rsExceptTest = 'TfMain: Test exception.';
  rsExceptUnnamedPackage = 'TfMain: Found a package without name. Your ' +
    'database is probably broken.';
  rsExceptStringlistChange = 'Can''t change StringList while downloading.';
  rsExceptChangeIndex = 'Can''t change index while downloading.';

  //interface items
  rsNewRepo = 'New repository';
  rsChangeRepo = 'Change repository settings';
  rsUnknowPackage = 'unknow';
  rsStateAvailable = 'Available';
  rsStateNotInstalled = 'Not installed';
  rsStateInstalled = 'Installed';
  rsStateUpgradable = 'To upgrade to version %s';
  rsStateDeprecated = 'Deprecated: to be uninstalled with next upgrade';
  rsSymlink = 'Symbolic link';
  rsDirectory = 'Directory';
  rsNotFound = 'Not found';
  rsAllPackages = 'All the packages';
  rsUncategorized = 'Uncategorized';
  rsDownloadingFile = 'Downloading %s...';
  rsDescNotInstalledPackage = 'Package description is available only for ' +
    'installed package.';
  rsUnitExample = 'Example: 5000 bytes are %s.';
  {$IFDEF LCLQT}
  rsQtVersion = 'You are using Qt version %s.';
  {$ENDIF}
  {$IFDEF LCLGTK2}
  rsGtkVersion = 'You are using GTK version %d.%d.%d.';
  {$ENDIF}

  //address for package info search
  rsGoogleSearch = 'http://www.google.fr/search?q=%s';
  rsDebianSearch = 'http://packages.debian.org/search?keywords=%s';
  rsLFSSearch = 'http://www.google.com/custom?client=pub-1920546463376456&' +
    'cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3A' +
    'center%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT' +
    '%3A000000%3BGFNT%3A0000FF%3BGIMP%3A0000FF%3BLH%3A50%3BLW%3A128%3BL%3A' +
    'http%3A%2F%2Fwww.linuxfromscratch.org%2Fimages%2Flfs-logo.png%3BS%3A' +
    'http%3A%2F%2Fwww.traduc.org%3BFORID%3A1&domains=traduc.org&' +
    'sa=Google+Search&sitesearch=traduc.org&q=';
  rsArchSearch = 'https://www.archlinux.org/packages/?q=%s';
  rsWikipediaSearch = 'http://en.wikipedia.org/w/index.php?search=%s';
  rsSlackwareSearch = 'http://slackfind.net/en/packages/search/?name=%s';
  rsGentooSearch = 'http://gpo.zugaina.org/Search?search=%s';
  rsDebianPatchTracker = 'http://patch-tracker.debian.org/package/%s';

  //Network status
  rsNetStatResolving = 'Resolving ';
  rsNetStatConnect = 'Connect ';
  rsNetStatAccept = 'Accept ';
  rsNetStatReadBytes = 'Read Bytes: ';
  rsNetStatRequesting = 'Request sent, waiting for response';

  //environment variables
  rsEnvHttpProxy = 'http_proxy';
  rsEnvFtpProxy = 'ftp_proxy';
  rsEnvUser = 'USER';
  rsEnvPath = 'PATH';
  rsEnvGnomeSession = 'GNOME_DESKTOP_SESSION_ID';
  rsEnvKDESession = 'KDE_FULL_SESSION';
  rsEnvDesktopSession = 'DESKTOP_SESSION';
  rsEnvUnixHomeDir = 'HOME';

  //Database logging
  rsLogNewPackage = '-- Package %s/%s';
  rsLogDescription = 'Description: %s';
  rsLogPackageAlt = '%d) Version: %s-%d sized %s from %s';
  rsLogInstalled = ' (installed)';
  rsLogDefault = ' (default)';
  rsLogLatest = ' (latest)';
  rsLogSep = '-----------------------';

  //progression messages
  rsProgressTidyPackageList = 'Tidying package list...';
  rsProgressLoading = 'Loading...';
  rsProgressInitDB = 'Initialization of the package database...';
  rsProgressReadingInstalled = 'Reading installed packages...';
  rsProgressReadingLocal = 'Reading local repositories...';
  rsProgressDownloadingIndex = 'Downloading index files...';
  rsProgressReadingDistant = 'Loading distant repositories...';

const
  sCecillAddress = 'http://www.cecill.info/licences/Licence_CeCILL_V2-en.html';

  sHttpPrefix = 'http://';
  sFtpPrefix = 'ftp://';


implementation

end.

