1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
declare(strict_types=1); |
4
|
|
|
|
5
|
|
|
namespace PhpMyAdmin\Controllers; |
6
|
|
|
|
7
|
|
|
use function json_encode; |
8
|
|
|
|
9
|
|
|
/** |
10
|
|
|
* Exporting of translated messages from PHP to JavaScript. |
11
|
|
|
*/ |
12
|
|
|
final class JavaScriptMessagesController |
13
|
|
|
{ |
14
|
|
|
/** @var array<string, string|null> */ |
15
|
|
|
private $messages = []; |
16
|
|
|
|
17
|
|
|
public function __construct() |
18
|
|
|
{ |
19
|
|
|
$this->setMessages(); |
20
|
|
|
} |
21
|
|
|
|
22
|
|
|
public function index(): void |
23
|
|
|
{ |
24
|
|
|
echo 'var Messages = ' . json_encode($this->messages) . ';'; |
25
|
|
|
} |
26
|
|
|
|
27
|
|
|
private function setMessages(): void |
28
|
|
|
{ |
29
|
|
|
global $cfg, $PMA_Theme; |
30
|
|
|
|
31
|
|
|
$this->messages = [ |
32
|
|
|
/* For confirmations */ |
33
|
|
|
'strConfirm' => __('Confirm'), |
34
|
|
|
'strDoYouReally' => __('Do you really want to execute "%s"?'), |
35
|
|
|
'strDropDatabaseStrongWarning' => __('You are about to DESTROY a complete database!'), |
36
|
|
|
'strDatabaseRenameToSameName' => __( |
37
|
|
|
'Cannot rename database to the same name. Change the name and try again' |
38
|
|
|
), |
39
|
|
|
'strDropTableStrongWarning' => __('You are about to DESTROY a complete table!'), |
40
|
|
|
'strTruncateTableStrongWarning' => __('You are about to TRUNCATE a complete table!'), |
41
|
|
|
'strDeleteTrackingData' => __('Delete tracking data for this table?'), |
42
|
|
|
'strDeleteTrackingDataMultiple' => __('Delete tracking data for these tables?'), |
43
|
|
|
'strDeleteTrackingVersion' => __('Delete tracking data for this version?'), |
44
|
|
|
'strDeleteTrackingVersionMultiple' => __('Delete tracking data for these versions?'), |
45
|
|
|
'strDeletingTrackingEntry' => __('Delete entry from tracking report?'), |
46
|
|
|
'strDeletingTrackingData' => __('Deleting tracking data'), |
47
|
|
|
'strDroppingPrimaryKeyIndex' => __('Dropping Primary Key/Index'), |
48
|
|
|
'strDroppingForeignKey' => __('Dropping Foreign key.'), |
49
|
|
|
'strOperationTakesLongTime' => __('This operation could take a long time. Proceed anyway?'), |
50
|
|
|
'strDropUserGroupWarning' => __('Do you really want to delete user group "%s"?'), |
51
|
|
|
'strConfirmDeleteQBESearch' => __('Do you really want to delete the search "%s"?'), |
52
|
|
|
'strConfirmNavigation' => __('You have unsaved changes; are you sure you want to leave this page?'), |
53
|
|
|
'strConfirmRowChange' => __( |
54
|
|
|
'You are trying to reduce the number of rows, but have already entered' |
55
|
|
|
. ' data in those rows which will be lost. Do you wish to continue?' |
56
|
|
|
), |
57
|
|
|
'strDropUserWarning' => __('Do you really want to revoke the selected user(s) ?'), |
58
|
|
|
'strDeleteCentralColumnWarning' => __('Do you really want to delete this central column?'), |
59
|
|
|
'strDropRTEitems' => __('Do you really want to delete the selected items?'), |
60
|
|
|
'strDropPartitionWarning' => __( |
61
|
|
|
'Do you really want to DROP the selected partition(s)? This will also DELETE ' . |
62
|
|
|
'the data related to the selected partition(s)!' |
63
|
|
|
), |
64
|
|
|
'strTruncatePartitionWarning' => __('Do you really want to TRUNCATE the selected partition(s)?'), |
65
|
|
|
'strRemovePartitioningWarning' => __('Do you really want to remove partitioning?'), |
66
|
|
|
'strResetSlaveWarning' => __('Do you really want to RESET SLAVE?'), |
67
|
|
|
'strChangeColumnCollation' => __( |
68
|
|
|
'This operation will attempt to convert your data to the new collation. In ' |
69
|
|
|
. 'rare cases, especially where a character doesn\'t exist in the new ' |
70
|
|
|
. 'collation, this process could cause the data to appear incorrectly under ' |
71
|
|
|
. 'the new collation; in this case we suggest you revert to the original ' |
72
|
|
|
. 'collation and refer to the tips at ' |
73
|
|
|
) |
74
|
|
|
. '<a href="%s" target="garbled_data_wiki">' . __('Garbled Data') . '</a>.' |
75
|
|
|
. '<br><br>' |
76
|
|
|
. __('Are you sure you wish to change the collation and convert the data?'), |
77
|
|
|
|
78
|
|
|
'strChangeAllColumnCollationsWarning' => __( |
79
|
|
|
'Through this operation, MySQL attempts to map the data values between ' |
80
|
|
|
. 'collations. If the character sets are incompatible, there may be data loss ' |
81
|
|
|
. 'and this lost data may <b>NOT</b> be recoverable simply by changing back the ' |
82
|
|
|
. 'column collation(s). <b>To convert existing data, it is suggested to use the ' |
83
|
|
|
. 'column(s) editing feature (the "Change" Link) on the table structure page. ' |
84
|
|
|
. '</b>' |
85
|
|
|
) |
86
|
|
|
. '<br><br>' |
87
|
|
|
. __( |
88
|
|
|
'Are you sure you wish to change all the column collations and convert the data?' |
89
|
|
|
), |
90
|
|
|
|
91
|
|
|
/* For modal dialog buttons */ |
92
|
|
|
'strSaveAndClose' => __('Save & close'), |
93
|
|
|
'strReset' => __('Reset'), |
94
|
|
|
'strResetAll' => __('Reset all'), |
95
|
|
|
|
96
|
|
|
/* For indexes */ |
97
|
|
|
'strFormEmpty' => __('Missing value in the form!'), |
98
|
|
|
'strRadioUnchecked' => __('Select at least one of the options!'), |
99
|
|
|
'strEnterValidNumber' => __('Please enter a valid number!'), |
100
|
|
|
'strEnterValidLength' => __('Please enter a valid length!'), |
101
|
|
|
'strAddIndex' => __('Add index'), |
102
|
|
|
'strEditIndex' => __('Edit index'), |
103
|
|
|
'strAddToIndex' => __('Add %s column(s) to index'), |
104
|
|
|
'strCreateSingleColumnIndex' => __('Create single-column index'), |
105
|
|
|
'strCreateCompositeIndex' => __('Create composite index'), |
106
|
|
|
'strCompositeWith' => __('Composite with:'), |
107
|
|
|
'strMissingColumn' => __('Please select column(s) for the index.'), |
108
|
|
|
|
109
|
|
|
/* For Preview SQL*/ |
110
|
|
|
'strPreviewSQL' => __('Preview SQL'), |
111
|
|
|
|
112
|
|
|
/* For Simulate DML*/ |
113
|
|
|
'strSimulateDML' => __('Simulate query'), |
114
|
|
|
'strMatchedRows' => __('Matched rows:'), |
115
|
|
|
'strSQLQuery' => __('SQL query:'), |
116
|
|
|
|
117
|
|
|
/* Charts */ |
118
|
|
|
/* l10n: Default label for the y-Axis of Charts */ |
119
|
|
|
'strYValues' => __('Y values'), |
120
|
|
|
|
121
|
|
|
/* Database multi-table query */ |
122
|
|
|
'strEmptyQuery' => __('Please enter the SQL query first.'), |
123
|
|
|
|
124
|
|
|
/* For server/privileges.js */ |
125
|
|
|
'strHostEmpty' => __('The host name is empty!'), |
126
|
|
|
'strUserEmpty' => __('The user name is empty!'), |
127
|
|
|
'strPasswordEmpty' => __('The password is empty!'), |
128
|
|
|
'strPasswordNotSame' => __('The passwords aren\'t the same!'), |
129
|
|
|
'strRemovingSelectedUsers' => __('Removing Selected Users'), |
130
|
|
|
'strClose' => __('Close'), |
131
|
|
|
|
132
|
|
|
/* For export.js */ |
133
|
|
|
'strTemplateCreated' => __('Template was created.'), |
134
|
|
|
'strTemplateLoaded' => __('Template was loaded.'), |
135
|
|
|
'strTemplateUpdated' => __('Template was updated.'), |
136
|
|
|
'strTemplateDeleted' => __('Template was deleted.'), |
137
|
|
|
|
138
|
|
|
/* l10n: Other, small valued, queries */ |
139
|
|
|
'strOther' => __('Other'), |
140
|
|
|
/* l10n: Thousands separator */ |
141
|
|
|
'strThousandsSeparator' => __(','), |
142
|
|
|
/* l10n: Decimal separator */ |
143
|
|
|
'strDecimalSeparator' => __('.'), |
144
|
|
|
|
145
|
|
|
'strChartConnectionsTitle' => __('Connections / Processes'), |
146
|
|
|
|
147
|
|
|
/* server status monitor */ |
148
|
|
|
'strIncompatibleMonitorConfig' => __('Local monitor configuration incompatible!'), |
149
|
|
|
'strIncompatibleMonitorConfigDescription' => __( |
150
|
|
|
'The chart arrangement configuration in your browsers local storage is not ' |
151
|
|
|
. 'compatible anymore to the newer version of the monitor dialog. It is very ' |
152
|
|
|
. 'likely that your current configuration will not work anymore. Please reset ' |
153
|
|
|
. 'your configuration to default in the <i>Settings</i> menu.' |
154
|
|
|
), |
155
|
|
|
|
156
|
|
|
'strQueryCacheEfficiency' => __('Query cache efficiency'), |
157
|
|
|
'strQueryCacheUsage' => __('Query cache usage'), |
158
|
|
|
'strQueryCacheUsed' => __('Query cache used'), |
159
|
|
|
|
160
|
|
|
'strSystemCPUUsage' => __('System CPU usage'), |
161
|
|
|
'strSystemMemory' => __('System memory'), |
162
|
|
|
'strSystemSwap' => __('System swap'), |
163
|
|
|
|
164
|
|
|
'strAverageLoad' => __('Average load'), |
165
|
|
|
'strTotalMemory' => __('Total memory'), |
166
|
|
|
'strCachedMemory' => __('Cached memory'), |
167
|
|
|
'strBufferedMemory' => __('Buffered memory'), |
168
|
|
|
'strFreeMemory' => __('Free memory'), |
169
|
|
|
'strUsedMemory' => __('Used memory'), |
170
|
|
|
|
171
|
|
|
'strTotalSwap' => __('Total swap'), |
172
|
|
|
'strCachedSwap' => __('Cached swap'), |
173
|
|
|
'strUsedSwap' => __('Used swap'), |
174
|
|
|
'strFreeSwap' => __('Free swap'), |
175
|
|
|
|
176
|
|
|
'strBytesSent' => __('Bytes sent'), |
177
|
|
|
'strBytesReceived' => __('Bytes received'), |
178
|
|
|
'strConnections' => __('Connections'), |
179
|
|
|
'strProcesses' => __('Processes'), |
180
|
|
|
|
181
|
|
|
/* summary row */ |
182
|
|
|
'strB' => __('B'), |
183
|
|
|
'strKiB' => __('KiB'), |
184
|
|
|
'strMiB' => __('MiB'), |
185
|
|
|
'strGiB' => __('GiB'), |
186
|
|
|
'strTiB' => __('TiB'), |
187
|
|
|
'strPiB' => __('PiB'), |
188
|
|
|
'strEiB' => __('EiB'), |
189
|
|
|
'strNTables' => __('%d table(s)'), |
190
|
|
|
|
191
|
|
|
/* l10n: Questions is the name of a MySQL Status variable */ |
192
|
|
|
'strQuestions' => __('Questions'), |
193
|
|
|
'strTraffic' => __('Traffic'), |
194
|
|
|
'strSettings' => __('Settings'), |
195
|
|
|
'strAddChart' => __('Add chart to grid'), |
196
|
|
|
'strAddOneSeriesWarning' => __('Please add at least one variable to the series!'), |
197
|
|
|
'strNone' => __('None'), |
198
|
|
|
'strResumeMonitor' => __('Resume monitor'), |
199
|
|
|
'strPauseMonitor' => __('Pause monitor'), |
200
|
|
|
'strStartRefresh' => __('Start auto refresh'), |
201
|
|
|
'strStopRefresh' => __('Stop auto refresh'), |
202
|
|
|
/* Monitor: Instructions Dialog */ |
203
|
|
|
'strBothLogOn' => __('general_log and slow_query_log are enabled.'), |
204
|
|
|
'strGenLogOn' => __('general_log is enabled.'), |
205
|
|
|
'strSlowLogOn' => __('slow_query_log is enabled.'), |
206
|
|
|
'strBothLogOff' => __('slow_query_log and general_log are disabled.'), |
207
|
|
|
'strLogOutNotTable' => __('log_output is not set to TABLE.'), |
208
|
|
|
'strLogOutIsTable' => __('log_output is set to TABLE.'), |
209
|
|
|
'strSmallerLongQueryTimeAdvice' => __( |
210
|
|
|
'slow_query_log is enabled, but the server logs only queries that take longer ' |
211
|
|
|
. 'than %d seconds. It is advisable to set this long_query_time 0-2 seconds, ' |
212
|
|
|
. 'depending on your system.' |
213
|
|
|
), |
214
|
|
|
'strLongQueryTimeSet' => __('long_query_time is set to %d second(s).'), |
215
|
|
|
'strSettingsAppliedGlobal' => __( |
216
|
|
|
'Following settings will be applied globally and reset to default on server ' |
217
|
|
|
. 'restart:' |
218
|
|
|
), |
219
|
|
|
/* l10n: %s is FILE or TABLE */ |
220
|
|
|
'strSetLogOutput' => __('Set log_output to %s'), |
221
|
|
|
/* l10n: Enable in this context means setting a status variable to ON */ |
222
|
|
|
'strEnableVar' => __('Enable %s'), |
223
|
|
|
/* l10n: Disable in this context means setting a status variable to OFF */ |
224
|
|
|
'strDisableVar' => __('Disable %s'), |
225
|
|
|
/* l10n: %d seconds */ |
226
|
|
|
'setSetLongQueryTime' => __('Set long_query_time to %d seconds.'), |
227
|
|
|
'strNoSuperUser' => __( |
228
|
|
|
'You can\'t change these variables. Please log in as root or contact' |
229
|
|
|
. ' your database administrator.' |
230
|
|
|
), |
231
|
|
|
'strChangeSettings' => __('Change settings'), |
232
|
|
|
'strCurrentSettings' => __('Current settings'), |
233
|
|
|
|
234
|
|
|
'strChartTitle' => __('Chart title'), |
235
|
|
|
/* l10n: As in differential values */ |
236
|
|
|
'strDifferential' => __('Differential'), |
237
|
|
|
'strDividedBy' => __('Divided by %s'), |
238
|
|
|
'strUnit' => __('Unit'), |
239
|
|
|
|
240
|
|
|
'strFromSlowLog' => __('From slow log'), |
241
|
|
|
'strFromGeneralLog' => __('From general log'), |
242
|
|
|
'strServerLogError' => __( |
243
|
|
|
'The database name is not known for this query in the server\'s logs.' |
244
|
|
|
), |
245
|
|
|
'strAnalysingLogsTitle' => __('Analysing logs'), |
246
|
|
|
'strAnalysingLogs' => __('Analysing & loading logs. This may take a while.'), |
247
|
|
|
'strCancelRequest' => __('Cancel request'), |
248
|
|
|
'strCountColumnExplanation' => __( |
249
|
|
|
'This column shows the amount of identical queries that are grouped together. ' |
250
|
|
|
. 'However only the SQL query itself has been used as a grouping criteria, so ' |
251
|
|
|
. 'the other attributes of queries, such as start time, may differ.' |
252
|
|
|
), |
253
|
|
|
'strMoreCountColumnExplanation' => __( |
254
|
|
|
'Since grouping of INSERTs queries has been selected, INSERT queries into the ' |
255
|
|
|
. 'same table are also being grouped together, disregarding of the inserted ' |
256
|
|
|
. 'data.' |
257
|
|
|
), |
258
|
|
|
'strLogDataLoaded' => __('Log data loaded. Queries executed in this time span:'), |
259
|
|
|
|
260
|
|
|
'strJumpToTable' => __('Jump to Log table'), |
261
|
|
|
'strNoDataFoundTitle' => __('No data found'), |
262
|
|
|
'strNoDataFound' => __('Log analysed, but no data found in this time span.'), |
263
|
|
|
|
264
|
|
|
'strAnalyzing' => __('Analyzing…'), |
265
|
|
|
'strExplainOutput' => __('Explain output'), |
266
|
|
|
'strStatus' => __('Status'), |
267
|
|
|
'strTime' => __('Time'), |
268
|
|
|
'strTotalTime' => __('Total time:'), |
269
|
|
|
'strProfilingResults' => __('Profiling results'), |
270
|
|
|
'strTable' => _pgettext('Display format', 'Table'), |
271
|
|
|
'strChart' => __('Chart'), |
272
|
|
|
|
273
|
|
|
'strAliasDatabase' => _pgettext('Alias', 'Database'), |
274
|
|
|
'strAliasTable' => _pgettext('Alias', 'Table'), |
275
|
|
|
'strAliasColumn' => _pgettext('Alias', 'Column'), |
276
|
|
|
|
277
|
|
|
/* l10n: A collection of available filters */ |
278
|
|
|
'strFiltersForLogTable' => __('Log table filter options'), |
279
|
|
|
/* l10n: Filter as in "Start Filtering" */ |
280
|
|
|
'strFilter' => __('Filter'), |
281
|
|
|
'strFilterByWordRegexp' => __('Filter queries by word/regexp:'), |
282
|
|
|
'strIgnoreWhereAndGroup' => __('Group queries, ignoring variable data in WHERE clauses'), |
283
|
|
|
'strSumRows' => __('Sum of grouped rows:'), |
284
|
|
|
'strTotal' => __('Total:'), |
285
|
|
|
|
286
|
|
|
'strLoadingLogs' => __('Loading logs'), |
287
|
|
|
'strRefreshFailed' => __('Monitor refresh failed'), |
288
|
|
|
'strInvalidResponseExplanation' => __( |
289
|
|
|
'While requesting new chart data the server returned an invalid response. This ' |
290
|
|
|
. 'is most likely because your session expired. Reloading the page and ' |
291
|
|
|
. 'reentering your credentials should help.' |
292
|
|
|
), |
293
|
|
|
'strReloadPage' => __('Reload page'), |
294
|
|
|
|
295
|
|
|
'strAffectedRows' => __('Affected rows:'), |
296
|
|
|
|
297
|
|
|
'strFailedParsingConfig' => __( |
298
|
|
|
'Failed parsing config file. It doesn\'t seem to be valid JSON code.' |
299
|
|
|
), |
300
|
|
|
'strFailedBuildingGrid' => __( |
301
|
|
|
'Failed building chart grid with imported config. Resetting to default config…' |
302
|
|
|
), |
303
|
|
|
'strImport' => __('Import'), |
304
|
|
|
'strImportDialogTitle' => __('Import monitor configuration'), |
305
|
|
|
'strImportDialogMessage' => __('Please select the file you want to import.'), |
306
|
|
|
'strTableNameDialogMessage' => __('Please enter a valid table name.'), |
307
|
|
|
'strDBNameDialogMessage' => __('Please enter a valid database name.'), |
308
|
|
|
'strNoImportFile' => __('No files available on server for import!'), |
309
|
|
|
|
310
|
|
|
'strAnalyzeQuery' => __('Analyse query'), |
311
|
|
|
|
312
|
|
|
/* For query editor */ |
313
|
|
|
'strFormatting' => __('Formatting SQL…'), |
314
|
|
|
'strNoParam' => __('No parameters found!'), |
315
|
|
|
|
316
|
|
|
/* For inline query editing */ |
317
|
|
|
'strGo' => __('Go'), |
318
|
|
|
'strCancel' => __('Cancel'), |
319
|
|
|
|
320
|
|
|
/* For page-related settings */ |
321
|
|
|
'strPageSettings' => __('Page-related settings'), |
322
|
|
|
'strApply' => __('Apply'), |
323
|
|
|
|
324
|
|
|
/* For Ajax Notifications */ |
325
|
|
|
'strLoading' => __('Loading…'), |
326
|
|
|
'strAbortedRequest' => __('Request aborted!!'), |
327
|
|
|
'strProcessingRequest' => __('Processing request'), |
328
|
|
|
'strRequestFailed' => __('Request failed!!'), |
329
|
|
|
'strErrorProcessingRequest' => __('Error in processing request'), |
330
|
|
|
'strErrorCode' => __('Error code: %s'), |
331
|
|
|
'strErrorText' => __('Error text: %s'), |
332
|
|
|
'strErrorConnection' => __( |
333
|
|
|
'It seems that the connection to server has been lost. Please check your ' . |
334
|
|
|
'network connectivity and server status.' |
335
|
|
|
), |
336
|
|
|
'strNoDatabasesSelected' => __('No databases selected.'), |
337
|
|
|
'strNoAccountSelected' => __('No accounts selected.'), |
338
|
|
|
'strDroppingColumn' => __('Dropping column'), |
339
|
|
|
'strAddingPrimaryKey' => __('Adding primary key'), |
340
|
|
|
'strOK' => __('OK'), |
341
|
|
|
'strDismiss' => __('Click to dismiss this notification'), |
342
|
|
|
|
343
|
|
|
/* For database/operations.js */ |
344
|
|
|
'strRenamingDatabases' => __('Renaming databases'), |
345
|
|
|
'strCopyingDatabase' => __('Copying database'), |
346
|
|
|
'strChangingCharset' => __('Changing charset'), |
347
|
|
|
'strNo' => __('No'), |
348
|
|
|
|
349
|
|
|
/* For Foreign key checks */ |
350
|
|
|
'strForeignKeyCheck' => __('Enable foreign key checks'), |
351
|
|
|
|
352
|
|
|
/* For db_stucture.js */ |
353
|
|
|
'strErrorRealRowCount' => __('Failed to get real row count.'), |
354
|
|
|
|
355
|
|
|
/* For database/search.js */ |
356
|
|
|
'strSearching' => __('Searching'), |
357
|
|
|
'strHideSearchResults' => __('Hide search results'), |
358
|
|
|
'strShowSearchResults' => __('Show search results'), |
359
|
|
|
'strBrowsing' => __('Browsing'), |
360
|
|
|
'strDeleting' => __('Deleting'), |
361
|
|
|
'strConfirmDeleteResults' => __('Delete the matches for the %s table?'), |
362
|
|
|
|
363
|
|
|
/* For db_routines.js */ |
364
|
|
|
'MissingReturn' => __('The definition of a stored function must contain a RETURN statement!'), |
365
|
|
|
'strExport' => __('Export'), |
366
|
|
|
'NoExportable' => __('No routine is exportable. Required privileges may be lacking.'), |
367
|
|
|
|
368
|
|
|
/* For ENUM/SET editor*/ |
369
|
|
|
'enum_editor' => __('ENUM/SET editor'), |
370
|
|
|
'enum_columnVals' => __('Values for column %s'), |
371
|
|
|
'enum_newColumnVals' => __('Values for a new column'), |
372
|
|
|
'enum_hint' => __('Enter each value in a separate field.'), |
373
|
|
|
'enum_addValue' => __('Add %d value(s)'), |
374
|
|
|
|
375
|
|
|
/* For import.js */ |
376
|
|
|
'strImportCSV' => __( |
377
|
|
|
'Note: If the file contains multiple tables, they will be combined into one.' |
378
|
|
|
), |
379
|
|
|
|
380
|
|
|
/* For sql.js */ |
381
|
|
|
'strHideQueryBox' => __('Hide query box'), |
382
|
|
|
'strShowQueryBox' => __('Show query box'), |
383
|
|
|
'strEdit' => __('Edit'), |
384
|
|
|
'strDelete' => __('Delete'), |
385
|
|
|
'strNotValidRowNumber' => __('%d is not valid row number.'), |
386
|
|
|
'strBrowseForeignValues' => __('Browse foreign values'), |
387
|
|
|
'strNoAutoSavedQuery' => __('No previously auto-saved query is available. Loading default query.'), |
388
|
|
|
'strPreviousSaveQuery' => __( |
389
|
|
|
'You have a previously saved query. Click Get auto-saved query to load the query.' |
390
|
|
|
), |
391
|
|
|
'strBookmarkVariable' => __('Variable %d:'), |
392
|
|
|
|
393
|
|
|
/* For Central list of columns */ |
394
|
|
|
'pickColumn' => __('Pick'), |
395
|
|
|
'pickColumnTitle' => __('Column selector'), |
396
|
|
|
'searchList' => __('Search this list'), |
397
|
|
|
'strEmptyCentralList' => __( |
398
|
|
|
'No columns in the central list. Make sure the Central columns list for ' |
399
|
|
|
. 'database %s has columns that are not present in the current table.' |
400
|
|
|
), |
401
|
|
|
'seeMore' => __('See more'), |
402
|
|
|
'confirmTitle' => __('Are you sure?'), |
403
|
|
|
'makeConsistentMessage' => __( |
404
|
|
|
'This action may change some of the columns definition.<br>Are you sure you ' |
405
|
|
|
. 'want to continue?' |
406
|
|
|
), |
407
|
|
|
'strContinue' => __('Continue'), |
408
|
|
|
|
409
|
|
|
/** For normalization */ |
410
|
|
|
'strAddPrimaryKey' => __('Add primary key'), |
411
|
|
|
'strPrimaryKeyAdded' => __('Primary key added.'), |
412
|
|
|
'strToNextStep' => __('Taking you to next step…'), |
413
|
|
|
'strFinishMsg' => __("The first step of normalization is complete for table '%s'."), |
414
|
|
|
'strEndStep' => __('End of step'), |
415
|
|
|
'str2NFNormalization' => __('Second step of normalization (2NF)'), |
416
|
|
|
'strDone' => __('Done'), |
417
|
|
|
'strConfirmPd' => __('Confirm partial dependencies'), |
418
|
|
|
'strSelectedPd' => __('Selected partial dependencies are as follows:'), |
419
|
|
|
'strPdHintNote' => __( |
420
|
|
|
'Note: a, b -> d,f implies values of columns a and b combined together can ' |
421
|
|
|
. 'determine values of column d and column f.' |
422
|
|
|
), |
423
|
|
|
'strNoPdSelected' => __('No partial dependencies selected!'), |
424
|
|
|
'strBack' => __('Back'), |
425
|
|
|
'strShowPossiblePd' => __('Show me the possible partial dependencies based on data in the table'), |
426
|
|
|
'strHidePd' => __('Hide partial dependencies list'), |
427
|
|
|
'strWaitForPd' => __( |
428
|
|
|
'Sit tight! It may take few seconds depending on data size and column count of ' |
429
|
|
|
. 'the table.' |
430
|
|
|
), |
431
|
|
|
'strStep' => __('Step'), |
432
|
|
|
'strMoveRepeatingGroup' => '<ol><b>' . __('The following actions will be performed:') . '</b>' |
433
|
|
|
. '<li>' . __('DROP columns %s from the table %s') . '</li>' |
434
|
|
|
. '<li>' . __('Create the following table') . '</li>', |
435
|
|
|
'strNewTablePlaceholder' => 'Enter new table name', |
436
|
|
|
'strNewColumnPlaceholder' => 'Enter column name', |
437
|
|
|
'str3NFNormalization' => __('Third step of normalization (3NF)'), |
438
|
|
|
'strConfirmTd' => __('Confirm transitive dependencies'), |
439
|
|
|
'strSelectedTd' => __('Selected dependencies are as follows:'), |
440
|
|
|
'strNoTdSelected' => __('No dependencies selected!'), |
441
|
|
|
|
442
|
|
|
/* For server/variables.js */ |
443
|
|
|
'strSave' => __('Save'), |
444
|
|
|
|
445
|
|
|
/* For table/select.js */ |
446
|
|
|
'strHideSearchCriteria' => __('Hide search criteria'), |
447
|
|
|
'strShowSearchCriteria' => __('Show search criteria'), |
448
|
|
|
'strRangeSearch' => __('Range search'), |
449
|
|
|
'strColumnMax' => __('Column maximum:'), |
450
|
|
|
'strColumnMin' => __('Column minimum:'), |
451
|
|
|
'strMinValue' => __('Minimum value:'), |
452
|
|
|
'strMaxValue' => __('Maximum value:'), |
453
|
|
|
|
454
|
|
|
/* For table/find_replace.js */ |
455
|
|
|
'strHideFindNReplaceCriteria' => __('Hide find and replace criteria'), |
456
|
|
|
'strShowFindNReplaceCriteria' => __('Show find and replace criteria'), |
457
|
|
|
|
458
|
|
|
/* For table/zoom_plot_jqplot.js */ |
459
|
|
|
'strDisplayHelp' => '<ul><li>' |
460
|
|
|
. __('Each point represents a data row.') |
461
|
|
|
. '</li><li>' |
462
|
|
|
. __('Hovering over a point will show its label.') |
463
|
|
|
. '</li><li>' |
464
|
|
|
. __('To zoom in, select a section of the plot with the mouse.') |
465
|
|
|
. '</li><li>' |
466
|
|
|
. __('Click reset zoom button to come back to original state.') |
467
|
|
|
. '</li><li>' |
468
|
|
|
. __('Click a data point to view and possibly edit the data row.') |
469
|
|
|
. '</li><li>' |
470
|
|
|
. __('The plot can be resized by dragging it along the bottom right corner.') |
471
|
|
|
. '</li></ul>', |
472
|
|
|
'strHelpTitle' => 'Zoom search instructions', |
473
|
|
|
'strInputNull' => '<strong>' . __('Select two columns') . '</strong>', |
474
|
|
|
'strSameInputs' => '<strong>' |
475
|
|
|
. __('Select two different columns') |
476
|
|
|
. '</strong>', |
477
|
|
|
'strDataPointContent' => __('Data point content'), |
478
|
|
|
|
479
|
|
|
/* For table/change.js */ |
480
|
|
|
'strIgnore' => __('Ignore'), |
481
|
|
|
'strCopy' => __('Copy'), |
482
|
|
|
'strX' => __('X'), |
483
|
|
|
'strY' => __('Y'), |
484
|
|
|
'strPoint' => __('Point'), |
485
|
|
|
'strPointN' => __('Point %d'), |
486
|
|
|
'strLineString' => __('Linestring'), |
487
|
|
|
'strPolygon' => __('Polygon'), |
488
|
|
|
'strGeometry' => __('Geometry'), |
489
|
|
|
'strInnerRing' => __('Inner ring'), |
490
|
|
|
'strOuterRing' => __('Outer ring'), |
491
|
|
|
'strAddPoint' => __('Add a point'), |
492
|
|
|
'strAddInnerRing' => __('Add an inner ring'), |
493
|
|
|
'strYes' => __('Yes'), |
494
|
|
|
'strCopyEncryptionKey' => __('Do you want to copy encryption key?'), |
495
|
|
|
'strEncryptionKey' => __('Encryption key'), |
496
|
|
|
/* l10n: Tip for HEX conversion of Integers */ |
497
|
|
|
'HexConversionInfo' => __( |
498
|
|
|
'The HEX function will treat the integer as a string while calculating the hexadecimal value' |
499
|
|
|
), |
500
|
|
|
|
501
|
|
|
/* For Tip to be shown on Time field */ |
502
|
|
|
'strMysqlAllowedValuesTipTime' => __( |
503
|
|
|
'MySQL accepts additional values not selectable by the slider;' |
504
|
|
|
. ' key in those values directly if desired' |
505
|
|
|
), |
506
|
|
|
|
507
|
|
|
/* For Tip to be shown on Date field */ |
508
|
|
|
'strMysqlAllowedValuesTipDate' => __( |
509
|
|
|
'MySQL accepts additional values not selectable by the datepicker;' |
510
|
|
|
. ' key in those values directly if desired' |
511
|
|
|
), |
512
|
|
|
|
513
|
|
|
/* For Lock symbol Tooltip */ |
514
|
|
|
'strLockToolTip' => __( |
515
|
|
|
'Indicates that you have made changes to this page;' |
516
|
|
|
. ' you will be prompted for confirmation before abandoning changes' |
517
|
|
|
), |
518
|
|
|
|
519
|
|
|
/* Designer (js/designer/move.js) */ |
520
|
|
|
'strSelectReferencedKey' => __('Select referenced key'), |
521
|
|
|
'strSelectForeignKey' => __('Select Foreign Key'), |
522
|
|
|
'strPleaseSelectPrimaryOrUniqueKey' => __('Please select the primary key or a unique key!'), |
523
|
|
|
'strChangeDisplay' => __('Choose column to display'), |
524
|
|
|
'strLeavingDesigner' => __( |
525
|
|
|
'You haven\'t saved the changes in the layout. They will be lost if you' |
526
|
|
|
. ' don\'t save them. Do you want to continue?' |
527
|
|
|
), |
528
|
|
|
'strQueryEmpty' => __('value/subQuery is empty'), |
529
|
|
|
'strAddTables' => __('Add tables from other databases'), |
530
|
|
|
'strPageName' => __('Page name'), |
531
|
|
|
'strSavePage' => __('Save page'), |
532
|
|
|
'strSavePageAs' => __('Save page as'), |
533
|
|
|
'strOpenPage' => __('Open page'), |
534
|
|
|
'strDeletePage' => __('Delete page'), |
535
|
|
|
'strUntitled' => __('Untitled'), |
536
|
|
|
'strSelectPage' => __('Please select a page to continue'), |
537
|
|
|
'strEnterValidPageName' => __('Please enter a valid page name'), |
538
|
|
|
'strLeavingPage' => __('Do you want to save the changes to the current page?'), |
539
|
|
|
'strSuccessfulPageDelete' => __('Successfully deleted the page'), |
540
|
|
|
'strExportRelationalSchema' => __('Export relational schema'), |
541
|
|
|
'strModificationSaved' => __('Modifications have been saved'), |
542
|
|
|
|
543
|
|
|
/* Visual query builder (js/designer/move.js) */ |
544
|
|
|
'strObjectsCreated' => __('%d object(s) created.'), |
545
|
|
|
'strColumnName' => __('Column name'), |
546
|
|
|
'strSubmit' => __('Submit'), |
547
|
|
|
|
548
|
|
|
/* For makegrid.js (column reordering, show/hide column, grid editing) */ |
549
|
|
|
'strCellEditHint' => __('Press escape to cancel editing.'), |
550
|
|
|
'strSaveCellWarning' => __( |
551
|
|
|
'You have edited some data and they have not been saved. Are you sure you want ' |
552
|
|
|
. 'to leave this page before saving the data?' |
553
|
|
|
), |
554
|
|
|
'strColOrderHint' => __('Drag to reorder.'), |
555
|
|
|
'strSortHint' => __('Click to sort results by this column.'), |
556
|
|
|
'strMultiSortHint' => __( |
557
|
|
|
'Shift+Click to add this column to ORDER BY clause or to toggle ASC/DESC.' |
558
|
|
|
. '<br>- Ctrl+Click or Alt+Click (Mac: Shift+Option+Click) to remove column ' |
559
|
|
|
. 'from ORDER BY clause' |
560
|
|
|
), |
561
|
|
|
'strColMarkHint' => __('Click to mark/unmark.'), |
562
|
|
|
'strColNameCopyHint' => __('Double-click to copy column name.'), |
563
|
|
|
'strColVisibHint' => __( |
564
|
|
|
'Click the drop-down arrow<br>to toggle column\'s visibility.' |
565
|
|
|
), |
566
|
|
|
'strShowAllCol' => __('Show all'), |
567
|
|
|
'strAlertNonUnique' => __( |
568
|
|
|
'This table does not contain a unique column. Features related to the grid ' |
569
|
|
|
. 'edit, checkbox, Edit, Copy and Delete links may not work after saving.' |
570
|
|
|
), |
571
|
|
|
'strEnterValidHex' => __('Please enter a valid hexadecimal string. Valid characters are 0-9, A-F.'), |
572
|
|
|
'strShowAllRowsWarning' => __( |
573
|
|
|
'Do you really want to see all of the rows? For a big table this could crash ' |
574
|
|
|
. 'the browser.' |
575
|
|
|
), |
576
|
|
|
'strOriginalLength' => __('Original length'), |
577
|
|
|
|
578
|
|
|
/** Drag & Drop sql import messages */ |
579
|
|
|
'dropImportMessageCancel' => __('cancel'), |
580
|
|
|
'dropImportMessageAborted' => __('Aborted'), |
581
|
|
|
'dropImportMessageFailed' => __('Failed'), |
582
|
|
|
'dropImportMessageSuccess' => __('Success'), |
583
|
|
|
'dropImportImportResultHeader' => __('Import status'), |
584
|
|
|
'dropImportDropFiles' => __('Drop files here'), |
585
|
|
|
'dropImportSelectDB' => __('Select database first'), |
586
|
|
|
|
587
|
|
|
/* For Print view */ |
588
|
|
|
'print' => __('Print'), |
589
|
|
|
'back' => __('Back'), |
590
|
|
|
|
591
|
|
|
// this approach does not work when the parameter is changed via user prefs |
592
|
|
|
'strGridEditFeatureHint' => $cfg['GridEditing'] === 'double-click' |
593
|
|
|
? __('You can also edit most values<br>by double-clicking directly on them.') |
594
|
|
|
: ($cfg['GridEditing'] === 'click' |
595
|
|
|
? __('You can also edit most values<br>by clicking directly on them.') |
596
|
|
|
: null), |
597
|
|
|
|
598
|
|
|
'strGoToLink' => __('Go to link:'), |
599
|
|
|
'strColNameCopyTitle' => __('Copy column name.'), |
600
|
|
|
'strColNameCopyText' => __('Right-click the column name to copy it to your clipboard.'), |
601
|
|
|
|
602
|
|
|
/* password generation */ |
603
|
|
|
'strGeneratePassword' => __('Generate password'), |
604
|
|
|
'strGenerate' => __('Generate'), |
605
|
|
|
'strChangePassword' => __('Change password'), |
606
|
|
|
|
607
|
|
|
/* navigation tabs */ |
608
|
|
|
'strMore' => __('More'), |
609
|
|
|
|
610
|
|
|
/* navigation panel */ |
611
|
|
|
'strShowPanel' => __('Show panel'), |
612
|
|
|
'strHidePanel' => __('Hide panel'), |
613
|
|
|
'strUnhideNavItem' => __('Show hidden navigation tree items.'), |
614
|
|
|
'linkWithMain' => __('Link with main panel'), |
615
|
|
|
'unlinkWithMain' => __('Unlink from main panel'), |
616
|
|
|
|
617
|
|
|
/* microhistory */ |
618
|
|
|
'strInvalidPage' => __('The requested page was not found in the history, it may have expired.'), |
619
|
|
|
|
620
|
|
|
/* update */ |
621
|
|
|
'strNewerVersion' => __( |
622
|
|
|
'A newer version of phpMyAdmin is available and you should consider upgrading. ' |
623
|
|
|
. 'The newest version is %s, released on %s.' |
624
|
|
|
), |
625
|
|
|
/* l10n: Latest available phpMyAdmin version */ |
626
|
|
|
'strLatestAvailable' => __(', latest stable version:'), |
627
|
|
|
'strUpToDate' => __('up to date'), |
628
|
|
|
|
629
|
|
|
'strCreateView' => __('Create view'), |
630
|
|
|
|
631
|
|
|
/* Error Reporting */ |
632
|
|
|
'strSendErrorReport' => __('Send error report'), |
633
|
|
|
'strSubmitErrorReport' => __('Submit error report'), |
634
|
|
|
'strErrorOccurred' => __( |
635
|
|
|
'A fatal JavaScript error has occurred. Would you like to send an error report?' |
636
|
|
|
), |
637
|
|
|
'strChangeReportSettings' => __('Change report settings'), |
638
|
|
|
'strShowReportDetails' => __('Show report details'), |
639
|
|
|
'strTimeOutError' => __( |
640
|
|
|
'Your export is incomplete, due to a low execution time limit at the PHP level!' |
641
|
|
|
), |
642
|
|
|
|
643
|
|
|
'strTooManyInputs' => __( |
644
|
|
|
'Warning: a form on this page has more than %d fields. On submission, ' |
645
|
|
|
. "some of the fields might be ignored, due to PHP's " |
646
|
|
|
. 'max_input_vars configuration.' |
647
|
|
|
), |
648
|
|
|
|
649
|
|
|
'phpErrorsFound' => '<div class="alert alert-danger" role="alert">' |
650
|
|
|
. __('Some errors have been detected on the server!') |
651
|
|
|
. '<br>' |
652
|
|
|
. __('Please look at the bottom of this window.') |
653
|
|
|
. '<div>' |
654
|
|
|
. '<input id="pma_ignore_errors_popup" type="submit" value="' |
655
|
|
|
. __('Ignore') |
656
|
|
|
. '" class="btn btn-secondary floatright message_errors_found">' |
657
|
|
|
. '<input id="pma_ignore_all_errors_popup" type="submit" value="' |
658
|
|
|
. __('Ignore All') |
659
|
|
|
. '" class="btn btn-secondary floatright message_errors_found">' |
660
|
|
|
. '</div></div>', |
661
|
|
|
|
662
|
|
|
'phpErrorsBeingSubmitted' => '<div class="alert alert-danger" role="alert">' |
663
|
|
|
. __('Some errors have been detected on the server!') |
664
|
|
|
. '<br>' |
665
|
|
|
. __( |
666
|
|
|
'As per your settings, they are being submitted currently, please be ' |
667
|
|
|
. 'patient.' |
668
|
|
|
) |
669
|
|
|
. '<br>' |
670
|
|
|
. '<img src="' |
671
|
|
|
. $PMA_Theme->getImgPath('ajax_clock_small.gif') |
672
|
|
|
. '" width="16" height="16" alt="ajax clock">' |
673
|
|
|
. '</div>', |
674
|
|
|
'strCopyQueryButtonSuccess' => __('Successfully copied!'), |
675
|
|
|
'strCopyQueryButtonFailure' => __('Copying failed!'), |
676
|
|
|
|
677
|
|
|
// For console |
678
|
|
|
'strConsoleRequeryConfirm' => __('Execute this query again?'), |
679
|
|
|
'strConsoleDeleteBookmarkConfirm' => __('Do you really want to delete this bookmark?'), |
680
|
|
|
'strConsoleDebugError' => __('Some error occurred while getting SQL debug info.'), |
681
|
|
|
'strConsoleDebugSummary' => __('%s queries executed %s times in %s seconds.'), |
682
|
|
|
'strConsoleDebugArgsSummary' => __('%s argument(s) passed'), |
683
|
|
|
'strConsoleDebugShowArgs' => __('Show arguments'), |
684
|
|
|
'strConsoleDebugHideArgs' => __('Hide arguments'), |
685
|
|
|
'strConsoleDebugTimeTaken' => __('Time taken:'), |
686
|
|
|
'strNoLocalStorage' => __( |
687
|
|
|
'There was a problem accessing your browser storage, some features may not' |
688
|
|
|
. ' work properly for you. It is likely that the browser doesn\'t support storage' |
689
|
|
|
. ' or the quota limit has been reached. In Firefox, corrupted storage can also' |
690
|
|
|
. ' cause such a problem, clearing your "Offline Website Data" might help. In Safari,' |
691
|
|
|
. ' such problem is commonly caused by "Private Mode Browsing".' |
692
|
|
|
), |
693
|
|
|
// For modals in /database/structure |
694
|
|
|
'strCopyTablesTo' => __('Copy tables to'), |
695
|
|
|
'strAddPrefix' => __('Add table prefix'), |
696
|
|
|
'strReplacePrefix' => __('Replace table with prefix'), |
697
|
|
|
'strCopyPrefix' => __('Copy table with prefix'), |
698
|
|
|
|
699
|
|
|
/* For password strength simulation */ |
700
|
|
|
'strExtrWeak' => __('Extremely weak'), |
701
|
|
|
'strVeryWeak' => __('Very weak'), |
702
|
|
|
'strWeak' => __('Weak'), |
703
|
|
|
'strGood' => __('Good'), |
704
|
|
|
'strStrong' => __('Strong'), |
705
|
|
|
|
706
|
|
|
/* U2F errors */ |
707
|
|
|
'strU2FTimeout' => __('Timed out waiting for security key activation.'), |
708
|
|
|
'strU2FError' => __('Failed security key activation (%s).'), |
709
|
|
|
|
710
|
|
|
/* Designer */ |
711
|
|
|
'strTableAlreadyExists' => _pgettext( |
712
|
|
|
'The table already exists in the designer and can not be added once more.', |
713
|
|
|
'Table %s already exists!' |
714
|
|
|
), |
715
|
|
|
'strHide' => __('Hide'), |
716
|
|
|
'strShow' => __('Show'), |
717
|
|
|
'strStructure' => __('Structure'), |
718
|
|
|
]; |
719
|
|
|
} |
720
|
|
|
} |
721
|
|
|
|