714 lines
36 KiB
PHP
714 lines
36 KiB
PHP
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace PhpMyAdmin\Controllers;
|
||
|
|
||
|
use PhpMyAdmin\Theme;
|
||
|
|
||
|
use function __;
|
||
|
use function _pgettext;
|
||
|
use function json_encode;
|
||
|
|
||
|
/**
|
||
|
* Exporting of translated messages from PHP to JavaScript.
|
||
|
*/
|
||
|
final class JavaScriptMessagesController
|
||
|
{
|
||
|
/** @var array<string, string> */
|
||
|
private $messages = [];
|
||
|
|
||
|
public function __construct()
|
||
|
{
|
||
|
$this->setMessages();
|
||
|
}
|
||
|
|
||
|
public function __invoke(): void
|
||
|
{
|
||
|
echo 'var Messages = ' . json_encode($this->messages) . ';';
|
||
|
}
|
||
|
|
||
|
private function setMessages(): void
|
||
|
{
|
||
|
global $cfg, $theme;
|
||
|
|
||
|
$ajaxClockSmallGifPath = $theme instanceof Theme ? $theme->getImgPath('ajax_clock_small.gif') : '';
|
||
|
|
||
|
$this->messages = [
|
||
|
/* For confirmations */
|
||
|
'strConfirm' => __('Confirm'),
|
||
|
'strDoYouReally' => __('Do you really want to execute "%s"?'),
|
||
|
'strDropDatabaseStrongWarning' => __('You are about to DESTROY a complete database!'),
|
||
|
'strDatabaseRenameToSameName' => __(
|
||
|
'Cannot rename database to the same name. Change the name and try again'
|
||
|
),
|
||
|
'strDropTableStrongWarning' => __('You are about to DESTROY a complete table!'),
|
||
|
'strTruncateTableStrongWarning' => __('You are about to TRUNCATE a complete table!'),
|
||
|
'strDeleteTableStrongWarning' => __('You are about to DELETE all the rows of the table!'),
|
||
|
'strDeleteTrackingData' => __('Delete tracking data for this table?'),
|
||
|
'strDeleteTrackingDataMultiple' => __('Delete tracking data for these tables?'),
|
||
|
'strDeleteTrackingVersion' => __('Delete tracking data for this version?'),
|
||
|
'strDeleteTrackingVersionMultiple' => __('Delete tracking data for these versions?'),
|
||
|
'strDeletingTrackingEntry' => __('Delete entry from tracking report?'),
|
||
|
'strDeletingTrackingData' => __('Deleting tracking data'),
|
||
|
'strDroppingPrimaryKeyIndex' => __('Dropping Primary Key/Index'),
|
||
|
'strDroppingForeignKey' => __('Dropping Foreign key.'),
|
||
|
'strOperationTakesLongTime' => __('This operation could take a long time. Proceed anyway?'),
|
||
|
'strDropUserGroupWarning' => __('Do you really want to delete user group "%s"?'),
|
||
|
'strConfirmDeleteQBESearch' => __('Do you really want to delete the search "%s"?'),
|
||
|
'strConfirmNavigation' => __('You have unsaved changes; are you sure you want to leave this page?'),
|
||
|
'strConfirmRowChange' => __(
|
||
|
'You are trying to reduce the number of rows, but have already entered'
|
||
|
. ' data in those rows which will be lost. Do you wish to continue?'
|
||
|
),
|
||
|
'strDropUserWarning' => __('Do you really want to revoke the selected user(s) ?'),
|
||
|
'strDeleteCentralColumnWarning' => __('Do you really want to delete this central column?'),
|
||
|
'strDropRTEitems' => __('Do you really want to delete the selected items?'),
|
||
|
'strDropPartitionWarning' => __(
|
||
|
'Do you really want to DROP the selected partition(s)? This will also DELETE ' .
|
||
|
'the data related to the selected partition(s)!'
|
||
|
),
|
||
|
'strTruncatePartitionWarning' => __('Do you really want to TRUNCATE the selected partition(s)?'),
|
||
|
'strRemovePartitioningWarning' => __('Do you really want to remove partitioning?'),
|
||
|
'strResetReplicaWarning' => __('Do you really want to reset the replica (RESET REPLICA)?'),
|
||
|
'strChangeColumnCollation' => __(
|
||
|
'This operation will attempt to convert your data to the new collation. In '
|
||
|
. 'rare cases, especially where a character doesn\'t exist in the new '
|
||
|
. 'collation, this process could cause the data to appear incorrectly under '
|
||
|
. 'the new collation; in this case we suggest you revert to the original '
|
||
|
. 'collation and refer to the tips at '
|
||
|
)
|
||
|
. '<a href="%s" target="garbled_data_wiki">' . __('Garbled Data') . '</a>.'
|
||
|
. '<br><br>'
|
||
|
. __('Are you sure you wish to change the collation and convert the data?'),
|
||
|
|
||
|
'strChangeAllColumnCollationsWarning' => __(
|
||
|
'Through this operation, MySQL attempts to map the data values between '
|
||
|
. 'collations. If the character sets are incompatible, there may be data loss '
|
||
|
. 'and this lost data may <b>NOT</b> be recoverable simply by changing back the '
|
||
|
. 'column collation(s). <b>To convert existing data, it is suggested to use the '
|
||
|
. 'column(s) editing feature (the "Change" Link) on the table structure page. '
|
||
|
. '</b>'
|
||
|
)
|
||
|
. '<br><br>'
|
||
|
. __('Are you sure you wish to change all the column collations and convert the data?'),
|
||
|
|
||
|
/* For modal dialog buttons */
|
||
|
'strSaveAndClose' => __('Save & close'),
|
||
|
'strReset' => __('Reset'),
|
||
|
'strResetAll' => __('Reset all'),
|
||
|
|
||
|
/* For indexes */
|
||
|
'strFormEmpty' => __('Missing value in the form!'),
|
||
|
'strRadioUnchecked' => __('Select at least one of the options!'),
|
||
|
'strEnterValidNumber' => __('Please enter a valid number!'),
|
||
|
'strEnterValidLength' => __('Please enter a valid length!'),
|
||
|
'strAddIndex' => __('Add index'),
|
||
|
'strEditIndex' => __('Edit index'),
|
||
|
/* l10n: Rename a table Index */
|
||
|
'strRenameIndex' => __('Rename index'),
|
||
|
'strAddToIndex' => __('Add %s column(s) to index'),
|
||
|
'strCreateSingleColumnIndex' => __('Create single-column index'),
|
||
|
'strCreateCompositeIndex' => __('Create composite index'),
|
||
|
'strCompositeWith' => __('Composite with:'),
|
||
|
'strMissingColumn' => __('Please select column(s) for the index.'),
|
||
|
|
||
|
/* For Preview SQL*/
|
||
|
'strPreviewSQL' => __('Preview SQL'),
|
||
|
|
||
|
/* For Simulate DML*/
|
||
|
'strSimulateDML' => __('Simulate query'),
|
||
|
'strMatchedRows' => __('Matched rows:'),
|
||
|
'strSQLQuery' => __('SQL query:'),
|
||
|
|
||
|
/* Charts */
|
||
|
/* l10n: Default label for the y-Axis of Charts */
|
||
|
'strYValues' => __('Y values'),
|
||
|
|
||
|
/* Database multi-table query */
|
||
|
'strEmptyQuery' => __('Please enter the SQL query first.'),
|
||
|
|
||
|
/* For server/privileges.js */
|
||
|
'strHostEmpty' => __('The host name is empty!'),
|
||
|
'strUserEmpty' => __('The user name is empty!'),
|
||
|
'strPasswordEmpty' => __('The password is empty!'),
|
||
|
'strPasswordNotSame' => __('The passwords aren\'t the same!'),
|
||
|
'strRemovingSelectedUsers' => __('Removing Selected Users'),
|
||
|
'strClose' => __('Close'),
|
||
|
'strLock' => _pgettext('Lock the account.', 'Lock'),
|
||
|
'strUnlock' => _pgettext('Unlock the account.', 'Unlock'),
|
||
|
'strLockAccount' => __('Lock this account.'),
|
||
|
'strUnlockAccount' => __('Unlock this account.'),
|
||
|
|
||
|
/* For export.js */
|
||
|
'strTemplateCreated' => __('Template was created.'),
|
||
|
'strTemplateLoaded' => __('Template was loaded.'),
|
||
|
'strTemplateUpdated' => __('Template was updated.'),
|
||
|
'strTemplateDeleted' => __('Template was deleted.'),
|
||
|
|
||
|
/* l10n: Other, small valued, queries */
|
||
|
'strOther' => __('Other'),
|
||
|
/* l10n: Thousands separator */
|
||
|
'strThousandsSeparator' => __(','),
|
||
|
/* l10n: Decimal separator */
|
||
|
'strDecimalSeparator' => __('.'),
|
||
|
|
||
|
'strChartConnectionsTitle' => __('Connections / Processes'),
|
||
|
|
||
|
/* server status monitor */
|
||
|
'strIncompatibleMonitorConfig' => __('Local monitor configuration incompatible!'),
|
||
|
'strIncompatibleMonitorConfigDescription' => __(
|
||
|
'The chart arrangement configuration in your browsers local storage is not '
|
||
|
. 'compatible anymore to the newer version of the monitor dialog. It is very '
|
||
|
. 'likely that your current configuration will not work anymore. Please reset '
|
||
|
. 'your configuration to default in the <i>Settings</i> menu.'
|
||
|
),
|
||
|
|
||
|
'strQueryCacheEfficiency' => __('Query cache efficiency'),
|
||
|
'strQueryCacheUsage' => __('Query cache usage'),
|
||
|
'strQueryCacheUsed' => __('Query cache used'),
|
||
|
|
||
|
'strSystemCPUUsage' => __('System CPU usage'),
|
||
|
'strSystemMemory' => __('System memory'),
|
||
|
'strSystemSwap' => __('System swap'),
|
||
|
|
||
|
'strAverageLoad' => __('Average load'),
|
||
|
'strTotalMemory' => __('Total memory'),
|
||
|
'strCachedMemory' => __('Cached memory'),
|
||
|
'strBufferedMemory' => __('Buffered memory'),
|
||
|
'strFreeMemory' => __('Free memory'),
|
||
|
'strUsedMemory' => __('Used memory'),
|
||
|
|
||
|
'strTotalSwap' => __('Total swap'),
|
||
|
'strCachedSwap' => __('Cached swap'),
|
||
|
'strUsedSwap' => __('Used swap'),
|
||
|
'strFreeSwap' => __('Free swap'),
|
||
|
|
||
|
'strBytesSent' => __('Bytes sent'),
|
||
|
'strBytesReceived' => __('Bytes received'),
|
||
|
'strConnections' => __('Connections'),
|
||
|
'strProcesses' => __('Processes'),
|
||
|
|
||
|
/* summary row */
|
||
|
'strB' => __('B'),
|
||
|
'strKiB' => __('KiB'),
|
||
|
'strMiB' => __('MiB'),
|
||
|
'strGiB' => __('GiB'),
|
||
|
'strTiB' => __('TiB'),
|
||
|
'strPiB' => __('PiB'),
|
||
|
'strEiB' => __('EiB'),
|
||
|
'strNTables' => __('%d table(s)'),
|
||
|
|
||
|
/* l10n: Questions is the name of a MySQL Status variable */
|
||
|
'strQuestions' => __('Questions'),
|
||
|
'strTraffic' => __('Traffic'),
|
||
|
'strSettings' => __('Settings'),
|
||
|
'strAddChart' => __('Add chart to grid'),
|
||
|
'strAddOneSeriesWarning' => __('Please add at least one variable to the series!'),
|
||
|
'strNone' => __('None'),
|
||
|
/* l10n: SQL Query on modal to show exported query */
|
||
|
'strQuery' => __('SQL Query'),
|
||
|
'strResumeMonitor' => __('Resume monitor'),
|
||
|
'strPauseMonitor' => __('Pause monitor'),
|
||
|
'strStartRefresh' => __('Start auto refresh'),
|
||
|
'strStopRefresh' => __('Stop auto refresh'),
|
||
|
/* Monitor: Instructions Dialog */
|
||
|
'strBothLogOn' => __('general_log and slow_query_log are enabled.'),
|
||
|
'strGenLogOn' => __('general_log is enabled.'),
|
||
|
'strSlowLogOn' => __('slow_query_log is enabled.'),
|
||
|
'strBothLogOff' => __('slow_query_log and general_log are disabled.'),
|
||
|
'strLogOutNotTable' => __('log_output is not set to TABLE.'),
|
||
|
'strLogOutIsTable' => __('log_output is set to TABLE.'),
|
||
|
'strSmallerLongQueryTimeAdvice' => __(
|
||
|
'slow_query_log is enabled, but the server logs only queries that take longer '
|
||
|
. 'than %d seconds. It is advisable to set this long_query_time 0-2 seconds, '
|
||
|
. 'depending on your system.'
|
||
|
),
|
||
|
'strLongQueryTimeSet' => __('long_query_time is set to %d second(s).'),
|
||
|
'strSettingsAppliedGlobal' => __(
|
||
|
'Following settings will be applied globally and reset to default on server restart:'
|
||
|
),
|
||
|
/* l10n: %s is FILE or TABLE */
|
||
|
'strSetLogOutput' => __('Set log_output to %s'),
|
||
|
/* l10n: Enable in this context means setting a status variable to ON */
|
||
|
'strEnableVar' => __('Enable %s'),
|
||
|
/* l10n: Disable in this context means setting a status variable to OFF */
|
||
|
'strDisableVar' => __('Disable %s'),
|
||
|
/* l10n: %d seconds */
|
||
|
'setSetLongQueryTime' => __('Set long_query_time to %d seconds.'),
|
||
|
'strNoSuperUser' => __(
|
||
|
'You can\'t change these variables. Please log in as root or contact your database administrator.'
|
||
|
),
|
||
|
'strChangeSettings' => __('Change settings'),
|
||
|
'strCurrentSettings' => __('Current settings'),
|
||
|
|
||
|
'strChartTitle' => __('Chart title'),
|
||
|
/* l10n: As in differential values */
|
||
|
'strDifferential' => __('Differential'),
|
||
|
'strDividedBy' => __('Divided by %s'),
|
||
|
'strUnit' => __('Unit'),
|
||
|
|
||
|
'strFromSlowLog' => __('From slow log'),
|
||
|
'strFromGeneralLog' => __('From general log'),
|
||
|
'strServerLogError' => __('The database name is not known for this query in the server\'s logs.'),
|
||
|
'strAnalysingLogsTitle' => __('Analysing logs'),
|
||
|
'strAnalysingLogs' => __('Analysing & loading logs. This may take a while.'),
|
||
|
'strCancelRequest' => __('Cancel request'),
|
||
|
'strCountColumnExplanation' => __(
|
||
|
'This column shows the amount of identical queries that are grouped together. '
|
||
|
. 'However only the SQL query itself has been used as a grouping criteria, so '
|
||
|
. 'the other attributes of queries, such as start time, may differ.'
|
||
|
),
|
||
|
'strMoreCountColumnExplanation' => __(
|
||
|
'Since grouping of INSERTs queries has been selected, INSERT queries into the '
|
||
|
. 'same table are also being grouped together, disregarding of the inserted '
|
||
|
. 'data.'
|
||
|
),
|
||
|
'strLogDataLoaded' => __('Log data loaded. Queries executed in this time span:'),
|
||
|
|
||
|
'strJumpToTable' => __('Jump to Log table'),
|
||
|
'strNoDataFoundTitle' => __('No data found'),
|
||
|
'strNoDataFound' => __('Log analysed, but no data found in this time span.'),
|
||
|
|
||
|
'strAnalyzing' => __('Analyzing…'),
|
||
|
'strExplainOutput' => __('Explain output'),
|
||
|
'strStatus' => __('Status'),
|
||
|
'strTime' => __('Time'),
|
||
|
'strTotalTime' => __('Total time:'),
|
||
|
'strProfilingResults' => __('Profiling results'),
|
||
|
'strTable' => _pgettext('Display format', 'Table'),
|
||
|
'strChart' => __('Chart'),
|
||
|
|
||
|
'strAliasDatabase' => _pgettext('Alias', 'Database'),
|
||
|
'strAliasTable' => _pgettext('Alias', 'Table'),
|
||
|
'strAliasColumn' => _pgettext('Alias', 'Column'),
|
||
|
|
||
|
/* l10n: A collection of available filters */
|
||
|
'strFiltersForLogTable' => __('Log table filter options'),
|
||
|
/* l10n: Filter as in "Start Filtering" */
|
||
|
'strFilter' => __('Filter'),
|
||
|
'strFilterByWordRegexp' => __('Filter queries by word/regexp:'),
|
||
|
'strIgnoreWhereAndGroup' => __('Group queries, ignoring variable data in WHERE clauses'),
|
||
|
'strSumRows' => __('Sum of grouped rows:'),
|
||
|
'strTotal' => __('Total:'),
|
||
|
|
||
|
'strLoadingLogs' => __('Loading logs'),
|
||
|
'strRefreshFailed' => __('Monitor refresh failed'),
|
||
|
'strInvalidResponseExplanation' => __(
|
||
|
'While requesting new chart data the server returned an invalid response. This '
|
||
|
. 'is most likely because your session expired. Reloading the page and '
|
||
|
. 'reentering your credentials should help.'
|
||
|
),
|
||
|
'strReloadPage' => __('Reload page'),
|
||
|
|
||
|
'strAffectedRows' => __('Affected rows:'),
|
||
|
|
||
|
'strFailedParsingConfig' => __('Failed parsing config file. It doesn\'t seem to be valid JSON code.'),
|
||
|
'strFailedBuildingGrid' => __(
|
||
|
'Failed building chart grid with imported config. Resetting to default config…'
|
||
|
),
|
||
|
'strImport' => __('Import'),
|
||
|
'strImportDialogTitle' => __('Import monitor configuration'),
|
||
|
'strImportDialogMessage' => __('Please select the file you want to import:'),
|
||
|
'strTableNameDialogMessage' => __('Please enter a valid table name.'),
|
||
|
'strDBNameDialogMessage' => __('Please enter a valid database name.'),
|
||
|
'strNoImportFile' => __('No files available on server for import!'),
|
||
|
|
||
|
'strAnalyzeQuery' => __('Analyse query'),
|
||
|
|
||
|
/* For query editor */
|
||
|
'strFormatting' => __('Formatting SQL…'),
|
||
|
'strNoParam' => __('No parameters found!'),
|
||
|
|
||
|
/* For inline query editing */
|
||
|
'strGo' => __('Go'),
|
||
|
'strCancel' => __('Cancel'),
|
||
|
|
||
|
/* For page-related settings */
|
||
|
'strPageSettings' => __('Page-related settings'),
|
||
|
'strApply' => __('Apply'),
|
||
|
|
||
|
/* For Ajax Notifications */
|
||
|
'strLoading' => __('Loading…'),
|
||
|
'strAbortedRequest' => __('Request aborted!!'),
|
||
|
'strProcessingRequest' => __('Processing request'),
|
||
|
'strRequestFailed' => __('Request failed!!'),
|
||
|
'strErrorProcessingRequest' => __('Error in processing request'),
|
||
|
'strErrorCode' => __('Error code: %s'),
|
||
|
'strErrorText' => __('Error text: %s'),
|
||
|
'strErrorConnection' => __(
|
||
|
'It seems that the connection to server has been lost. Please check your ' .
|
||
|
'network connectivity and server status.'
|
||
|
),
|
||
|
'strNoDatabasesSelected' => __('No databases selected.'),
|
||
|
'strNoTableSelected' => __('No table selected.'),
|
||
|
'strNoAccountSelected' => __('No accounts selected.'),
|
||
|
'strDroppingColumn' => __('Dropping column'),
|
||
|
'strAddingPrimaryKey' => __('Adding primary key'),
|
||
|
'strOK' => __('OK'),
|
||
|
'strDismiss' => __('Click to dismiss this notification'),
|
||
|
|
||
|
/* For database/operations.js */
|
||
|
'strRenamingDatabases' => __('Renaming databases'),
|
||
|
'strCopyingDatabase' => __('Copying database'),
|
||
|
'strChangingCharset' => __('Changing charset'),
|
||
|
'strNo' => __('No'),
|
||
|
|
||
|
/* For Foreign key checks */
|
||
|
'strForeignKeyCheck' => __('Enable foreign key checks'),
|
||
|
|
||
|
/* For database/structure.js */
|
||
|
'strErrorRealRowCount' => __('Failed to get real row count.'),
|
||
|
|
||
|
/* For database/search.js */
|
||
|
'strSearching' => __('Searching'),
|
||
|
'strHideSearchResults' => __('Hide search results'),
|
||
|
'strShowSearchResults' => __('Show search results'),
|
||
|
'strBrowsing' => __('Browsing'),
|
||
|
'strDeleting' => __('Deleting'),
|
||
|
'strConfirmDeleteResults' => __('Delete the matches for the %s table?'),
|
||
|
|
||
|
/* For rte.js */
|
||
|
'MissingReturn' => __('The definition of a stored function must contain a RETURN statement!'),
|
||
|
'strExport' => __('Export'),
|
||
|
'NoExportable' => __('No routine is exportable. Required privileges may be lacking.'),
|
||
|
|
||
|
/* For ENUM/SET editor*/
|
||
|
'enum_columnVals' => __('Values for column %s'),
|
||
|
'enum_newColumnVals' => __('Values for a new column'),
|
||
|
'enum_hint' => __('Enter each value in a separate field.'),
|
||
|
'enum_addValue' => __('Add %d value(s)'),
|
||
|
|
||
|
/* For import.js */
|
||
|
'strImportCSV' => __('Note: If the file contains multiple tables, they will be combined into one.'),
|
||
|
|
||
|
/* For sql.js */
|
||
|
'strHideQueryBox' => __('Hide query box'),
|
||
|
'strShowQueryBox' => __('Show query box'),
|
||
|
'strEdit' => __('Edit'),
|
||
|
'strDelete' => __('Delete'),
|
||
|
'strNotValidRowNumber' => __('%d is not valid row number.'),
|
||
|
'strBrowseForeignValues' => __('Browse foreign values'),
|
||
|
'strNoAutoSavedQuery' => __('No previously auto-saved query is available. Loading default query.'),
|
||
|
'strPreviousSaveQuery' => __(
|
||
|
'You have a previously saved query. Click Get auto-saved query to load the query.'
|
||
|
),
|
||
|
'strBookmarkVariable' => __('Variable %d:'),
|
||
|
|
||
|
/* For Central list of columns */
|
||
|
'pickColumn' => __('Pick'),
|
||
|
'pickColumnTitle' => __('Column selector'),
|
||
|
'searchList' => __('Search this list'),
|
||
|
'strEmptyCentralList' => __(
|
||
|
'No columns in the central list. Make sure the Central columns list for '
|
||
|
. 'database %s has columns that are not present in the current table.'
|
||
|
),
|
||
|
'seeMore' => __('See more'),
|
||
|
|
||
|
/* For normalization */
|
||
|
'strAddPrimaryKey' => __('Add primary key'),
|
||
|
'strPrimaryKeyAdded' => __('Primary key added.'),
|
||
|
'strToNextStep' => __('Taking you to next step…'),
|
||
|
'strFinishMsg' => __("The first step of normalization is complete for table '%s'."),
|
||
|
'strEndStep' => __('End of step'),
|
||
|
'str2NFNormalization' => __('Second step of normalization (2NF)'),
|
||
|
'strDone' => __('Done'),
|
||
|
'strConfirmPd' => __('Confirm partial dependencies'),
|
||
|
'strSelectedPd' => __('Selected partial dependencies are as follows:'),
|
||
|
'strPdHintNote' => __(
|
||
|
'Note: a, b -> d,f implies values of columns a and b combined together can '
|
||
|
. 'determine values of column d and column f.'
|
||
|
),
|
||
|
'strNoPdSelected' => __('No partial dependencies selected!'),
|
||
|
'strBack' => __('Back'),
|
||
|
'strShowPossiblePd' => __('Show me the possible partial dependencies based on data in the table'),
|
||
|
'strHidePd' => __('Hide partial dependencies list'),
|
||
|
'strWaitForPd' => __(
|
||
|
'Sit tight! It may take few seconds depending on data size and column count of the table.'
|
||
|
),
|
||
|
'strStep' => __('Step'),
|
||
|
'strMoveRepeatingGroup' => '<ol><b>' . __('The following actions will be performed:') . '</b>'
|
||
|
. '<li>' . __('DROP columns %s from the table %s') . '</li>'
|
||
|
. '<li>' . __('Create the following table') . '</li>',
|
||
|
'strNewTablePlaceholder' => 'Enter new table name',
|
||
|
'strNewColumnPlaceholder' => 'Enter column name',
|
||
|
'str3NFNormalization' => __('Third step of normalization (3NF)'),
|
||
|
'strConfirmTd' => __('Confirm transitive dependencies'),
|
||
|
'strSelectedTd' => __('Selected dependencies are as follows:'),
|
||
|
'strNoTdSelected' => __('No dependencies selected!'),
|
||
|
|
||
|
/* For server/variables.js */
|
||
|
'strSave' => __('Save'),
|
||
|
|
||
|
/* For table/select.js */
|
||
|
'strHideSearchCriteria' => __('Hide search criteria'),
|
||
|
'strShowSearchCriteria' => __('Show search criteria'),
|
||
|
'strColumnMax' => __('Column maximum:'),
|
||
|
'strColumnMin' => __('Column minimum:'),
|
||
|
|
||
|
/* For table/find_replace.js */
|
||
|
'strHideFindNReplaceCriteria' => __('Hide find and replace criteria'),
|
||
|
'strShowFindNReplaceCriteria' => __('Show find and replace criteria'),
|
||
|
|
||
|
/* For table/zoom_plot_jqplot.js */
|
||
|
'strDisplayHelp' => '<ul><li>'
|
||
|
. __('Each point represents a data row.')
|
||
|
. '</li><li>'
|
||
|
. __('Hovering over a point will show its label.')
|
||
|
. '</li><li>'
|
||
|
. __('To zoom in, select a section of the plot with the mouse.')
|
||
|
. '</li><li>'
|
||
|
. __('Click reset zoom button to come back to original state.')
|
||
|
. '</li><li>'
|
||
|
. __('Click a data point to view and possibly edit the data row.')
|
||
|
. '</li><li>'
|
||
|
. __('The plot can be resized by dragging it along the bottom right corner.')
|
||
|
. '</li></ul>',
|
||
|
'strHelpTitle' => 'Zoom search instructions',
|
||
|
'strInputNull' => '<strong>' . __('Select two columns') . '</strong>',
|
||
|
'strSameInputs' => '<strong>'
|
||
|
. __('Select two different columns')
|
||
|
. '</strong>',
|
||
|
'strDataPointContent' => __('Data point content'),
|
||
|
|
||
|
/* For table/change.js */
|
||
|
'strIgnore' => __('Ignore'),
|
||
|
'strCopy' => __('Copy'),
|
||
|
'strX' => __('X'),
|
||
|
'strY' => __('Y'),
|
||
|
'strPoint' => __('Point'),
|
||
|
'strPointN' => __('Point %d'),
|
||
|
'strLineString' => __('Linestring'),
|
||
|
'strPolygon' => __('Polygon'),
|
||
|
'strGeometry' => __('Geometry'),
|
||
|
'strInnerRing' => __('Inner ring'),
|
||
|
'strOuterRing' => __('Outer ring'),
|
||
|
'strAddPoint' => __('Add a point'),
|
||
|
'strAddInnerRing' => __('Add an inner ring'),
|
||
|
'strYes' => __('Yes'),
|
||
|
'strCopyEncryptionKey' => __('Do you want to copy encryption key?'),
|
||
|
'strEncryptionKey' => __('Encryption key'),
|
||
|
/* l10n: Tip for HEX conversion of Integers */
|
||
|
'HexConversionInfo' => __(
|
||
|
'The HEX function will treat the integer as a string while calculating the hexadecimal value'
|
||
|
),
|
||
|
|
||
|
/* For Tip to be shown on Time field */
|
||
|
'strMysqlAllowedValuesTipTime' => __(
|
||
|
'MySQL accepts additional values not selectable by the slider;'
|
||
|
. ' key in those values directly if desired'
|
||
|
),
|
||
|
|
||
|
/* For Tip to be shown on Date field */
|
||
|
'strMysqlAllowedValuesTipDate' => __(
|
||
|
'MySQL accepts additional values not selectable by the datepicker;'
|
||
|
. ' key in those values directly if desired'
|
||
|
),
|
||
|
|
||
|
/* For Lock symbol Tooltip */
|
||
|
'strLockToolTip' => __(
|
||
|
'Indicates that you have made changes to this page;'
|
||
|
. ' you will be prompted for confirmation before abandoning changes'
|
||
|
),
|
||
|
|
||
|
/* Designer (js/designer/move.js) */
|
||
|
'strSelectReferencedKey' => __('Select referenced key'),
|
||
|
'strSelectForeignKey' => __('Select Foreign Key'),
|
||
|
'strPleaseSelectPrimaryOrUniqueKey' => __('Please select the primary key or a unique key!'),
|
||
|
'strChangeDisplay' => __('Choose column to display'),
|
||
|
'strLeavingDesigner' => __(
|
||
|
'You haven\'t saved the changes in the layout. They will be lost if you'
|
||
|
. ' don\'t save them. Do you want to continue?'
|
||
|
),
|
||
|
'strQueryEmpty' => __('value/subQuery is empty'),
|
||
|
'strAddTables' => __('Add tables from other databases'),
|
||
|
'strPageName' => __('Page name'),
|
||
|
'strSavePage' => __('Save page'),
|
||
|
'strSavePageAs' => __('Save page as'),
|
||
|
'strOpenPage' => __('Open page'),
|
||
|
'strDeletePage' => __('Delete page'),
|
||
|
/* l10n: When the user opens a page saved in the Designer */
|
||
|
'strSavedPageTableMissing' => __('Some tables saved in this page might have been renamed or deleted.'),
|
||
|
'strUntitled' => __('Untitled'),
|
||
|
'strSelectPage' => __('Please select a page to continue'),
|
||
|
'strEnterValidPageName' => __('Please enter a valid page name'),
|
||
|
'strLeavingPage' => __('Do you want to save the changes to the current page?'),
|
||
|
'strSuccessfulPageDelete' => __('Successfully deleted the page'),
|
||
|
'strExportRelationalSchema' => __('Export relational schema'),
|
||
|
'strModificationSaved' => __('Modifications have been saved'),
|
||
|
|
||
|
/* Visual query builder (js/designer/move.js) */
|
||
|
'strObjectsCreated' => __('%d object(s) created.'),
|
||
|
'strColumnName' => __('Column name'),
|
||
|
'strSubmit' => __('Submit'),
|
||
|
|
||
|
/* For makegrid.js (column reordering, show/hide column, grid editing) */
|
||
|
'strCellEditHint' => __('Press escape to cancel editing.<br>- Shift+Enter for a newline.'),
|
||
|
'strSaveCellWarning' => __(
|
||
|
'You have edited some data and they have not been saved. Are you sure you want '
|
||
|
. 'to leave this page before saving the data?'
|
||
|
),
|
||
|
'strColOrderHint' => __('Drag to reorder.'),
|
||
|
'strSortHint' => __('Click to sort results by this column.'),
|
||
|
'strMultiSortHint' => __(
|
||
|
'Shift+Click to add this column to ORDER BY clause or to toggle ASC/DESC.'
|
||
|
. '<br>- Ctrl+Click or Alt+Click (Mac: Shift+Option+Click) to remove column '
|
||
|
. 'from ORDER BY clause'
|
||
|
),
|
||
|
'strColMarkHint' => __('Click to mark/unmark.'),
|
||
|
'strColNameCopyHint' => __('Double-click to copy column name.'),
|
||
|
'strColVisibHint' => __('Click the drop-down arrow<br>to toggle column\'s visibility.'),
|
||
|
'strShowAllCol' => __('Show all'),
|
||
|
'strAlertNonUnique' => __(
|
||
|
'This table does not contain a unique column. Features related to the grid '
|
||
|
. 'edit, checkbox, Edit, Copy and Delete links may not work after saving.'
|
||
|
),
|
||
|
'strEnterValidHex' => __('Please enter a valid hexadecimal string. Valid characters are 0-9, A-F.'),
|
||
|
'strShowAllRowsWarning' => __(
|
||
|
'Do you really want to see all of the rows? For a big table this could crash the browser.'
|
||
|
),
|
||
|
'strOriginalLength' => __('Original length'),
|
||
|
|
||
|
/* Drag & Drop sql import messages */
|
||
|
'dropImportMessageCancel' => __('cancel'),
|
||
|
'dropImportMessageAborted' => __('Aborted'),
|
||
|
'dropImportMessageFailed' => __('Failed'),
|
||
|
'dropImportMessageSuccess' => __('Success'),
|
||
|
'dropImportImportResultHeader' => __('Import status'),
|
||
|
'dropImportDropFiles' => __('Drop files here'),
|
||
|
'dropImportSelectDB' => __('Select database first'),
|
||
|
|
||
|
// this approach does not work when the parameter is changed via user prefs
|
||
|
'strGridEditFeatureHint' => $cfg['GridEditing'] === 'double-click'
|
||
|
? __('You can also edit most values<br>by double-clicking directly on them.')
|
||
|
: ($cfg['GridEditing'] === 'click'
|
||
|
? __('You can also edit most values<br>by clicking directly on them.')
|
||
|
: ''),
|
||
|
|
||
|
'strGoToLink' => __('Go to link:'),
|
||
|
|
||
|
/* password generation */
|
||
|
'strGeneratePassword' => __('Generate password'),
|
||
|
'strGenerate' => __('Generate'),
|
||
|
'strChangePassword' => __('Change password'),
|
||
|
|
||
|
/* navigation tabs */
|
||
|
'strMore' => __('More'),
|
||
|
|
||
|
/* navigation panel */
|
||
|
'strShowPanel' => __('Show panel'),
|
||
|
'strHidePanel' => __('Hide panel'),
|
||
|
'linkWithMain' => __('Link with main panel'),
|
||
|
'unlinkWithMain' => __('Unlink from main panel'),
|
||
|
|
||
|
/* update */
|
||
|
'strNewerVersion' => __(
|
||
|
'A newer version of phpMyAdmin is available and you should consider upgrading. '
|
||
|
. 'The newest version is %s, released on %s.'
|
||
|
),
|
||
|
/* l10n: Latest available phpMyAdmin version */
|
||
|
'strLatestAvailable' => __(', latest stable version:'),
|
||
|
'strUpToDate' => __('up to date'),
|
||
|
|
||
|
/* Error Reporting */
|
||
|
'strErrorOccurred' => __('A fatal JavaScript error has occurred. Would you like to send an error report?'),
|
||
|
'strChangeReportSettings' => __('Change report settings'),
|
||
|
'strShowReportDetails' => __('Show report details'),
|
||
|
'strTimeOutError' => __('Your export is incomplete, due to a low execution time limit at the PHP level!'),
|
||
|
|
||
|
'strTooManyInputs' => __(
|
||
|
'Warning: a form on this page has more than %d fields. On submission, '
|
||
|
. "some of the fields might be ignored, due to PHP's "
|
||
|
. 'max_input_vars configuration.'
|
||
|
),
|
||
|
|
||
|
'phpErrorsFound' => '<div class="alert alert-danger" role="alert">'
|
||
|
. __('Some errors have been detected on the server!')
|
||
|
. '<br>'
|
||
|
. __('Please look at the bottom of this window.')
|
||
|
. '<div>'
|
||
|
. '<input id="pma_ignore_errors_popup" type="submit" value="'
|
||
|
. __('Ignore')
|
||
|
. '" class="btn btn-secondary float-end message_errors_found">'
|
||
|
. '<input id="pma_ignore_all_errors_popup" type="submit" value="'
|
||
|
. __('Ignore All')
|
||
|
. '" class="btn btn-secondary float-end message_errors_found">'
|
||
|
. '</div></div>',
|
||
|
|
||
|
'phpErrorsBeingSubmitted' => '<div class="alert alert-danger" role="alert">'
|
||
|
. __('Some errors have been detected on the server!')
|
||
|
. '<br>'
|
||
|
. __('As per your settings, they are being submitted currently, please be patient.')
|
||
|
. '<br>'
|
||
|
. '<img src="'
|
||
|
. $ajaxClockSmallGifPath
|
||
|
. '" width="16" height="16" alt="ajax clock">'
|
||
|
. '</div>',
|
||
|
'strCopyColumnSuccess' => __('Column name successfully copied to clipboard!'),
|
||
|
'strCopyColumnFailure' => __('Column name copying to clipboard failed!'),
|
||
|
'strCopyQueryButtonSuccess' => __('Successfully copied!'),
|
||
|
'strCopyQueryButtonFailure' => __('Copying failed!'),
|
||
|
|
||
|
// For console
|
||
|
'strConsoleRequeryConfirm' => __('Execute this query again?'),
|
||
|
'strConsoleDeleteBookmarkConfirm' => __('Do you really want to delete this bookmark?'),
|
||
|
'strConsoleDebugError' => __('Some error occurred while getting SQL debug info.'),
|
||
|
'strConsoleDebugSummary' => __('%s queries executed %s times in %s seconds.'),
|
||
|
'strConsoleDebugArgsSummary' => __('%s argument(s) passed'),
|
||
|
'strConsoleDebugShowArgs' => __('Show arguments'),
|
||
|
'strConsoleDebugHideArgs' => __('Hide arguments'),
|
||
|
'strConsoleDebugTimeTaken' => __('Time taken:'),
|
||
|
'strNoLocalStorage' => __(
|
||
|
'There was a problem accessing your browser storage, some features may not'
|
||
|
. ' work properly for you. It is likely that the browser doesn\'t support storage'
|
||
|
. ' or the quota limit has been reached. In Firefox, corrupted storage can also'
|
||
|
. ' cause such a problem, clearing your "Offline Website Data" might help. In Safari,'
|
||
|
. ' such problem is commonly caused by "Private Mode Browsing".'
|
||
|
),
|
||
|
// For modals in /database/structure
|
||
|
'strCopyTablesTo' => __('Copy tables to'),
|
||
|
'strAddPrefix' => __('Add table prefix'),
|
||
|
'strReplacePrefix' => __('Replace table with prefix'),
|
||
|
'strCopyPrefix' => __('Copy table with prefix'),
|
||
|
|
||
|
/* For password strength simulation */
|
||
|
'strExtrWeak' => __('Extremely weak'),
|
||
|
'strVeryWeak' => __('Very weak'),
|
||
|
'strWeak' => __('Weak'),
|
||
|
'strGood' => __('Good'),
|
||
|
'strStrong' => __('Strong'),
|
||
|
|
||
|
/* U2F errors */
|
||
|
// l10n: error code 5 (from U2F API)
|
||
|
'strU2FTimeout' => _pgettext('U2F error', 'Timed out waiting for security key activation.'),
|
||
|
// l10n: error code 2 (from U2F API)
|
||
|
'strU2FBadRequest' => _pgettext('U2F error', 'Invalid request sent to security key.'),
|
||
|
// l10n: unknown error code (from U2F API)
|
||
|
'strU2FUnknown' => _pgettext('U2F error', 'Unknown security key error.'),
|
||
|
// l10n: error code 3 (from U2F API)
|
||
|
'strU2FInvalidClient' => _pgettext('U2F error', 'Client does not support security key.'),
|
||
|
// l10n: error code 4 (from U2F API) on register
|
||
|
'strU2FErrorRegister' => _pgettext('U2F error', 'Failed security key activation.'),
|
||
|
// l10n: error code 4 (from U2F API) on authanticate
|
||
|
'strU2FErrorAuthenticate' => _pgettext('U2F error', 'Invalid security key.'),
|
||
|
|
||
|
'webAuthnNotSupported' => __(
|
||
|
'WebAuthn is not available. Please use a supported browser in a secure context (HTTPS).'
|
||
|
),
|
||
|
|
||
|
/* Designer */
|
||
|
'strIndexedDBNotWorking' => __(
|
||
|
'You can not open, save or delete your page layout, as IndexedDB is not working'
|
||
|
. ' in your browser and your phpMyAdmin configuration storage is not configured for this.'
|
||
|
),
|
||
|
'strTableAlreadyExists' => _pgettext(
|
||
|
'The table already exists in the designer and can not be added once more.',
|
||
|
'Table %s already exists!'
|
||
|
),
|
||
|
'strHide' => __('Hide'),
|
||
|
'strShow' => __('Show'),
|
||
|
'strStructure' => __('Structure'),
|
||
|
];
|
||
|
}
|
||
|
}
|