Compare commits
32 commits
feature/se
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
980dea41de | ||
|
6bb4d778cb | ||
|
39257c8e81 | ||
|
d065ec4e9f | ||
|
2eba0b5154 | ||
|
e0b4854e8c | ||
|
3e3eff6d69 | ||
|
1e517cea68 | ||
|
2a5e8b6c21 | ||
|
f1e13af925 | ||
|
3bec52f278 | ||
|
3430f24a54 | ||
|
1bd4d4fc19 | ||
|
438739b1f6 | ||
|
027816adf2 | ||
|
a5aaa593d3 | ||
|
a0f4c9be28 | ||
|
4554780092 | ||
|
07b3dc3f1d | ||
|
9d835d3ed2 | ||
|
7130a8c058 | ||
|
d5ccd05355 | ||
|
be5d174dd7 | ||
|
bad57d349e | ||
|
40f04571ed | ||
|
cb37e4568b | ||
|
bc44e5f676 | ||
|
27132d1175 | ||
|
55d40f8563 | ||
|
3c77899250 | ||
|
c3fcff0f56 | ||
|
1177e98b3f |
|
@ -8,64 +8,77 @@ if (isset($_GET["elastic"])) {
|
||||||
class Min_DB {
|
class Min_DB {
|
||||||
var $extension = "JSON", $server_info, $errno, $error, $_url, $_db;
|
var $extension = "JSON", $server_info, $errno, $error, $_url, $_db;
|
||||||
|
|
||||||
/** Performs query
|
/**
|
||||||
* @param string
|
* @param string $path
|
||||||
* @param array
|
* @param array|null $content
|
||||||
* @param string
|
* @param string $method
|
||||||
* @return mixed
|
* @return array|false
|
||||||
*/
|
*/
|
||||||
function rootQuery($path, $content = array(), $method = 'GET') {
|
function rootQuery($path, array $content = null, $method = 'GET') {
|
||||||
@ini_set('track_errors', 1); // @ - may be disabled
|
@ini_set('track_errors', 1); // @ - may be disabled
|
||||||
$file = @file_get_contents("$this->_url/" . ltrim($path, '/'), false, stream_context_create(array('http' => array(
|
$file = @file_get_contents("$this->_url/" . ltrim($path, '/'), false, stream_context_create(array('http' => array(
|
||||||
'method' => $method,
|
'method' => $method,
|
||||||
'content' => $content === null ? $content : json_encode($content),
|
'content' => $content !== null ? json_encode($content) : null,
|
||||||
'header' => 'Content-Type: application/json',
|
'header' => $content !== null ? 'Content-Type: application/json' : [],
|
||||||
'ignore_errors' => 1, // available since PHP 5.2.10
|
'ignore_errors' => 1,
|
||||||
|
'follow_location' => 0,
|
||||||
|
'max_redirects' => 0,
|
||||||
))));
|
))));
|
||||||
if (!$file) {
|
|
||||||
$this->error = error_get_last()['message'];
|
if ($file === false) {
|
||||||
return $file;
|
$this->error = lang('Invalid server or credentials.');
|
||||||
}
|
|
||||||
if (!preg_match('~^HTTP/[0-9.]+ 2~i', $http_response_header[0])) {
|
|
||||||
$this->error = lang('Invalid credentials.') . " $http_response_header[0]";
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$return = json_decode($file, true);
|
$return = json_decode($file, true);
|
||||||
if ($return === null) {
|
if ($return === null) {
|
||||||
$this->errno = json_last_error();
|
$this->error = lang('Invalid server or credentials.');
|
||||||
if (function_exists('json_last_error_msg')) {
|
return false;
|
||||||
$this->error = json_last_error_msg();
|
}
|
||||||
|
|
||||||
|
if (!preg_match('~^HTTP/[0-9.]+ 2~i', $http_response_header[0])) {
|
||||||
|
if (isset($return['error']['root_cause'][0]['type'])) {
|
||||||
|
$this->error = $return['error']['root_cause'][0]['type'] . ": " . $return['error']['root_cause'][0]['reason'];
|
||||||
} else {
|
} else {
|
||||||
$constants = get_defined_constants(true);
|
$this->error = lang('Invalid server or credentials.');
|
||||||
foreach ($constants['json'] as $name => $value) {
|
|
||||||
if ($value == $this->errno && preg_match('~^JSON_ERROR_~', $name)) {
|
|
||||||
$this->error = $name;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Performs query relative to actual selected DB
|
/** Performs query relative to actual selected DB
|
||||||
* @param string
|
* @param string $path
|
||||||
* @param array
|
* @param array|null $content
|
||||||
* @param string
|
* @param string $method
|
||||||
* @return mixed
|
* @return array|false
|
||||||
*/
|
*/
|
||||||
function query($path, $content = array(), $method = 'GET') {
|
function query($path, array $content = null, $method = 'GET') {
|
||||||
return $this->rootQuery(($this->_db != "" ? "$this->_db/" : "/") . ltrim($path, '/'), $content, $method);
|
return $this->rootQuery(($this->_db != "" ? "$this->_db/" : "/") . ltrim($path, '/'), $content, $method);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $server
|
||||||
|
* @param string $username
|
||||||
|
* @param string $password
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function connect($server, $username, $password) {
|
function connect($server, $username, $password) {
|
||||||
preg_match('~^(https?://)?(.*)~', $server, $match);
|
$this->_url = build_http_url($server, $username, $password, "localhost", 9200);
|
||||||
$this->_url = ($match[1] ? $match[1] : "http://") . "$username:$password@$match[2]";
|
|
||||||
$return = $this->query('');
|
$return = $this->query('');
|
||||||
if ($return) {
|
if (!$return) {
|
||||||
$this->server_info = $return['version']['number'];
|
return false;
|
||||||
}
|
}
|
||||||
return (bool) $return;
|
|
||||||
|
if (!isset($return['version']['number'])) {
|
||||||
|
$this->error = lang('Invalid server or credentials.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->server_info = $return['version']['number'];
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function select_db($database) {
|
function select_db($database) {
|
||||||
|
@ -227,9 +240,6 @@ if (isset($_GET["elastic"])) {
|
||||||
global $adminer;
|
global $adminer;
|
||||||
$connection = new Min_DB;
|
$connection = new Min_DB;
|
||||||
list($server, $username, $password) = $adminer->credentials();
|
list($server, $username, $password) = $adminer->credentials();
|
||||||
if (strpos($server, '/') !== false || strpos($server, ':') !== false) {
|
|
||||||
return lang('Only hostname or IP address');
|
|
||||||
}
|
|
||||||
if ($password != "" && $connection->connect($server, $username, "")) {
|
if ($password != "" && $connection->connect($server, $username, "")) {
|
||||||
return lang('Database does not support password.');
|
return lang('Database does not support password.');
|
||||||
}
|
}
|
||||||
|
|
|
@ -870,6 +870,7 @@ class Adminer {
|
||||||
$insert = "";
|
$insert = "";
|
||||||
$buffer = "";
|
$buffer = "";
|
||||||
$keys = array();
|
$keys = array();
|
||||||
|
$generatedKeys = array();
|
||||||
$suffix = "";
|
$suffix = "";
|
||||||
$fetch_function = ($table != '' ? 'fetch_assoc' : 'fetch_row');
|
$fetch_function = ($table != '' ? 'fetch_assoc' : 'fetch_row');
|
||||||
while ($row = $result->$fetch_function()) {
|
while ($row = $result->$fetch_function()) {
|
||||||
|
@ -877,6 +878,10 @@ class Adminer {
|
||||||
$values = array();
|
$values = array();
|
||||||
foreach ($row as $val) {
|
foreach ($row as $val) {
|
||||||
$field = $result->fetch_field();
|
$field = $result->fetch_field();
|
||||||
|
if (!empty($fields[$field->name]['generated'])) {
|
||||||
|
$generatedKeys[$field->name] = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$keys[] = $field->name;
|
$keys[] = $field->name;
|
||||||
$key = idf_escape($field->name);
|
$key = idf_escape($field->name);
|
||||||
$values[] = "$key = VALUES($key)";
|
$values[] = "$key = VALUES($key)";
|
||||||
|
@ -894,6 +899,10 @@ class Adminer {
|
||||||
$insert = "INSERT INTO " . table($table) . " (" . implode(", ", array_map('idf_escape', $keys)) . ") VALUES";
|
$insert = "INSERT INTO " . table($table) . " (" . implode(", ", array_map('idf_escape', $keys)) . ") VALUES";
|
||||||
}
|
}
|
||||||
foreach ($row as $key => $val) {
|
foreach ($row as $key => $val) {
|
||||||
|
if (isset($generatedKeys[$key])) {
|
||||||
|
unset($row[$key]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
$field = $fields[$key];
|
$field = $fields[$key];
|
||||||
$row[$key] = ($val !== null
|
$row[$key] = ($val !== null
|
||||||
? unconvert_field($field, preg_match(number_type(), $field["type"]) && !preg_match('~\[~', $field["full_type"]) && is_numeric($val) ? $val : q(($val === false ? 0 : $val)))
|
? unconvert_field($field, preg_match(number_type(), $field["type"]) && !preg_match('~\[~', $field["full_type"]) && is_numeric($val) ? $val : q(($val === false ? 0 : $val)))
|
||||||
|
@ -984,6 +993,7 @@ class Adminer {
|
||||||
?>
|
?>
|
||||||
<h1>
|
<h1>
|
||||||
<?php echo $this->name(); ?> <span class="version"><?php echo $VERSION; ?></span>
|
<?php echo $this->name(); ?> <span class="version"><?php echo $VERSION; ?></span>
|
||||||
|
<a href="https://download.adminerevo.org/latest/adminer/"<?php echo target_blank(); ?> id="version" title="<?php echo lang('A newer version of AdminerEvo is available, download it now!'); ?>"><?php echo (version_compare($VERSION, $_COOKIE["adminer_version"]) < 0 ? h($_COOKIE["adminer_version"]) : ""); ?></a>
|
||||||
</h1>
|
</h1>
|
||||||
<?php
|
<?php
|
||||||
if ($missing == "auth") {
|
if ($missing == "auth") {
|
||||||
|
|
|
@ -15,6 +15,58 @@ if ($_COOKIE["adminer_permanent"]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validate_server_input() {
|
||||||
|
if (SERVER == "") {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$parts = parse_url(SERVER);
|
||||||
|
if (!$parts) {
|
||||||
|
auth_error(lang('Invalid server or credentials.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check proper URL parts.
|
||||||
|
if (isset($parts['user']) || isset($parts['pass']) || isset($parts['query']) || isset($parts['fragment'])) {
|
||||||
|
auth_error(lang('Invalid server or credentials.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow only HTTP/S scheme.
|
||||||
|
if (isset($parts['scheme']) && !preg_match('~^(https?)$~i', $parts['scheme'])) {
|
||||||
|
auth_error(lang('Invalid server or credentials.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow only host without a path. Note that "localhost" is parsed as path.
|
||||||
|
$host = (isset($parts['host']) ? $parts['host'] : '') . (isset($parts['path']) ? $parts['path'] : '');
|
||||||
|
if (strpos(rtrim($host, '/'), '/') !== false) {
|
||||||
|
auth_error(lang('Invalid server or credentials.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check privileged ports.
|
||||||
|
if (isset($parts['port']) && ($parts['port'] < 1024 || $parts['port'] > 65535)) {
|
||||||
|
auth_error(lang('Connecting to privileged ports is not allowed.'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $server
|
||||||
|
* @param string $username
|
||||||
|
* @param string $password
|
||||||
|
* @param string $defaultServer
|
||||||
|
* @param int|null $defaultPort
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function build_http_url($server, $username, $password, $defaultServer, $defaultPort = null) {
|
||||||
|
if (!preg_match('~^(https?://)?([^:]*)(:\d+)?$~', rtrim($server, '/'), $matches)) {
|
||||||
|
$this->error = lang('Invalid server or credentials.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ($matches[1] ?: "http://") .
|
||||||
|
($username !== "" || $password !== "" ? "$username:$password@" : "") .
|
||||||
|
($matches[2] !== "" ? $matches[2] : $defaultServer) .
|
||||||
|
(isset($matches[3]) ? $matches[3] : ($defaultPort ? ":$defaultPort" : ""));
|
||||||
|
}
|
||||||
|
|
||||||
function add_invalid_login() {
|
function add_invalid_login() {
|
||||||
global $adminer;
|
global $adminer;
|
||||||
$fp = file_open_lock(get_temp_dir() . "/adminer.invalid");
|
$fp = file_open_lock(get_temp_dir() . "/adminer.invalid");
|
||||||
|
@ -55,7 +107,7 @@ $auth = $_POST["auth"];
|
||||||
if ($auth) {
|
if ($auth) {
|
||||||
session_regenerate_id(); // defense against session fixation
|
session_regenerate_id(); // defense against session fixation
|
||||||
$vendor = $auth["driver"];
|
$vendor = $auth["driver"];
|
||||||
$server = $auth["server"];
|
$server = trim($auth["server"]);
|
||||||
$username = $auth["username"];
|
$username = $auth["username"];
|
||||||
$password = (string) $auth["password"];
|
$password = (string) $auth["password"];
|
||||||
$db = $auth["db"];
|
$db = $auth["db"];
|
||||||
|
@ -81,7 +133,7 @@ if ($auth) {
|
||||||
set_session($key, null);
|
set_session($key, null);
|
||||||
}
|
}
|
||||||
unset_permanent();
|
unset_permanent();
|
||||||
redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1), lang('Logout successful.') . '.');
|
redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1), lang('Logout successful.'));
|
||||||
|
|
||||||
} elseif ($permanent && !$_SESSION["pwds"]) {
|
} elseif ($permanent && !$_SESSION["pwds"]) {
|
||||||
session_regenerate_id();
|
session_regenerate_id();
|
||||||
|
@ -158,18 +210,16 @@ if (isset($_GET["username"]) && !class_exists("Min_DB")) {
|
||||||
stop_session(true);
|
stop_session(true);
|
||||||
|
|
||||||
if (isset($_GET["username"]) && is_string(get_password())) {
|
if (isset($_GET["username"]) && is_string(get_password())) {
|
||||||
list($host, $port) = explode(":", SERVER, 2);
|
validate_server_input();
|
||||||
if (preg_match('~^\s*([-+]?\d+)~', $port, $match) && ($match[1] < 1024 || $match[1] > 65535)) { // is_numeric('80#') would still connect to port 80
|
|
||||||
auth_error(lang('Connecting to privileged ports is not allowed.'));
|
|
||||||
}
|
|
||||||
check_invalid_login();
|
check_invalid_login();
|
||||||
|
|
||||||
$connection = connect();
|
$connection = connect();
|
||||||
$driver = new Min_Driver($connection);
|
$driver = new Min_Driver($connection);
|
||||||
}
|
}
|
||||||
|
|
||||||
$login = null;
|
$login = null;
|
||||||
if (!is_object($connection) || ($login = $adminer->login($_GET["username"], get_password())) !== true) {
|
if (!is_object($connection) || ($login = $adminer->login($_GET["username"], get_password())) !== true) {
|
||||||
$error = (is_string($connection) ? h($connection) : (is_string($login) ? $login : lang('Invalid credentials.')));
|
$error = (is_string($connection) ? h($connection) : (is_string($login) ? $login : lang('Invalid server or credentials.')));
|
||||||
auth_error($error . (preg_match('~^ | $~', get_password()) ? '<br>' . lang('There is a space in the input password which might be the cause.') : ''));
|
auth_error($error . (preg_match('~^ | $~', get_password()) ? '<br>' . lang('There is a space in the input password which might be the cause.') : ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,20 +3,8 @@ function adminer_errors($errno, $errstr) {
|
||||||
return !!preg_match('~^(Trying to access array offset on( value of type)? null|Undefined array key)~', $errstr);
|
return !!preg_match('~^(Trying to access array offset on( value of type)? null|Undefined array key)~', $errstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_dir('sentry')) {
|
|
||||||
error_reporting(E_ERROR | E_PARSE);
|
|
||||||
require_once('sentry/vendor/autoload.php');
|
|
||||||
\Sentry\init([
|
|
||||||
'dsn' => 'https://a08396e6a19cf4de14e1818ffca9d088@o4506874261340160.ingest.us.sentry.io/4506887610105856',
|
|
||||||
// Specify a fixed sample rate
|
|
||||||
'traces_sample_rate' => 1.0,
|
|
||||||
// Set a sampling rate for profiling - this is relative to traces_sample_rate
|
|
||||||
'profiles_sample_rate' => 1.0,
|
|
||||||
]);
|
|
||||||
} else {
|
|
||||||
error_reporting(6135); // errors and warnings
|
error_reporting(6135); // errors and warnings
|
||||||
set_error_handler('adminer_errors', E_WARNING);
|
set_error_handler('adminer_errors', E_WARNING);
|
||||||
}
|
|
||||||
|
|
||||||
include "../adminer/include/coverage.inc.php";
|
include "../adminer/include/coverage.inc.php";
|
||||||
|
|
||||||
|
@ -45,7 +33,7 @@ if (isset($_GET["file"])) {
|
||||||
if ($_GET["script"] == "version") {
|
if ($_GET["script"] == "version") {
|
||||||
$fp = file_open_lock(get_temp_dir() . "/adminer.version");
|
$fp = file_open_lock(get_temp_dir() . "/adminer.version");
|
||||||
if ($fp) {
|
if ($fp) {
|
||||||
file_write_unlock($fp, serialize(array("signature" => $_POST["signature"], "version" => $_POST["version"])));
|
file_write_unlock($fp, serialize(array("version" => $_POST["version"])));
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,22 +35,10 @@ function page_header($title, $error = "", $breadcrumb = array(), $title2 = "") {
|
||||||
<body class="<?php echo lang('ltr'); ?> nojs <?php echo $GLOBALS['project']; ?>">
|
<body class="<?php echo lang('ltr'); ?> nojs <?php echo $GLOBALS['project']; ?>">
|
||||||
<?php
|
<?php
|
||||||
$filename = get_temp_dir() . "/adminer.version";
|
$filename = get_temp_dir() . "/adminer.version";
|
||||||
if (!$_COOKIE["adminer_version"] && function_exists('openssl_verify') && file_exists($filename) && filemtime($filename) + 86400 > time()) { // 86400 - 1 day in seconds
|
if (!$_COOKIE["adminer_version"] && file_exists($filename) && filemtime($filename) + 86400 > time()) { // 86400 - 1 day in seconds
|
||||||
$version = unserialize(file_get_contents($filename));
|
$version = unserialize(file_get_contents($filename));
|
||||||
$public = "-----BEGIN PUBLIC KEY-----
|
|
||||||
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqWOVuF5uw7/+Z70djoK
|
|
||||||
RlHIZFZPO0uYRezq90+7Amk+FDNd7KkL5eDve+vHRJBLAszF/7XKXe11xwliIsFs
|
|
||||||
DFWQlsABVZB3oisKCBEuI71J4kPH8dKGEWR9jDHFw3cWmoH3PmqImX6FISWbG3B8
|
|
||||||
h7FIx3jEaw5ckVPVTeo5JRm/1DZzJxjyDenXvBQ/6o9DgZKeNDgxwKzH+sw9/YCO
|
|
||||||
jHnq1cFpOIISzARlrHMa/43YfeNRAm/tsBXjSxembBPo7aQZLAWHmaj5+K19H10B
|
|
||||||
nCpz9Y++cipkVEiKRGih4ZEvjoFysEOdRLj6WiD/uUNky4xGeA6LaJqh5XpkFkcQ
|
|
||||||
fQIDAQAB
|
|
||||||
-----END PUBLIC KEY-----
|
|
||||||
";
|
|
||||||
if (openssl_verify($version["version"], base64_decode($version["signature"]), $public) == 1) {
|
|
||||||
$_COOKIE["adminer_version"] = $version["version"]; // doesn't need to send to the browser
|
$_COOKIE["adminer_version"] = $version["version"]; // doesn't need to send to the browser
|
||||||
}
|
}
|
||||||
}
|
|
||||||
?>
|
?>
|
||||||
<script<?php echo nonce(); ?>>
|
<script<?php echo nonce(); ?>>
|
||||||
mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick<?php
|
mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick<?php
|
||||||
|
@ -133,8 +121,8 @@ function csp() {
|
||||||
return array(
|
return array(
|
||||||
array(
|
array(
|
||||||
"script-src" => "'self' 'unsafe-inline' 'nonce-" . get_nonce() . "' 'strict-dynamic'", // 'self' is a fallback for browsers not supporting 'strict-dynamic', 'unsafe-inline' is a fallback for browsers not supporting 'nonce-'
|
"script-src" => "'self' 'unsafe-inline' 'nonce-" . get_nonce() . "' 'strict-dynamic'", // 'self' is a fallback for browsers not supporting 'strict-dynamic', 'unsafe-inline' is a fallback for browsers not supporting 'nonce-'
|
||||||
"connect-src" => "'self'",
|
"connect-src" => "'self' https://api.github.com/repos/adminerevo/adminerevo/releases/latest",
|
||||||
"frame-src" => "https://www.adminer.org",
|
"frame-src" => "'self'",
|
||||||
"object-src" => "'none'",
|
"object-src" => "'none'",
|
||||||
"base-uri" => "'none'",
|
"base-uri" => "'none'",
|
||||||
"form-action" => "'self'",
|
"form-action" => "'self'",
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
<?php
|
<?php
|
||||||
$VERSION = "4.8.4-dev";
|
$VERSION = "4.8.4";
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'تسجيل الدخول',
|
'Login' => 'تسجيل الدخول',
|
||||||
'Logout successful.' => 'تم تسجيل الخروج بنجاح.',
|
'Logout successful.' => 'تم تسجيل الخروج بنجاح.',
|
||||||
'Invalid credentials.' => 'بيانات الدخول غير صالحة.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'الخادم',
|
'Server' => 'الخادم',
|
||||||
'Username' => 'اسم المستخدم',
|
'Username' => 'اسم المستخدم',
|
||||||
'Password' => 'كلمة المرور',
|
'Password' => 'كلمة المرور',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Изход',
|
'Logout' => 'Изход',
|
||||||
'Logged as: %s' => 'Текущ потребител: %s',
|
'Logged as: %s' => 'Текущ потребител: %s',
|
||||||
'Logout successful.' => 'Излизането е успешно.',
|
'Logout successful.' => 'Излизането е успешно.',
|
||||||
'Invalid credentials.' => 'Невалидни потребителски данни.',
|
'Invalid server or credentials.' => null,
|
||||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('Прекалено много неуспешни опити за вход, опитайте пак след %d минута.', 'Прекалено много неуспешни опити за вход, опитайте пак след %d минути.'),
|
'Too many unsuccessful logins, try again in %d minute(s).' => array('Прекалено много неуспешни опити за вход, опитайте пак след %d минута.', 'Прекалено много неуспешни опити за вход, опитайте пак след %d минути.'),
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Главната парола вече е невалидна. <a href="https://www.adminer.org/en/extension/"%s>Изберете</a> %s метод, за да я направите постоянна.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Главната парола вече е невалидна. <a href="https://www.adminer.org/en/extension/"%s>Изберете</a> %s метод, за да я направите постоянна.',
|
||||||
'Language' => 'Език',
|
'Language' => 'Език',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'লগইন',
|
'Login' => 'লগইন',
|
||||||
'Logout successful.' => 'সফলভাবে লগআউট হয়েছে।',
|
'Logout successful.' => 'সফলভাবে লগআউট হয়েছে।',
|
||||||
'Invalid credentials.' => 'ভুল পাসওয়ার্ড।',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'সার্ভার',
|
'Server' => 'সার্ভার',
|
||||||
'Username' => 'ইউজারের নাম',
|
'Username' => 'ইউজারের নাম',
|
||||||
'Password' => 'পাসওয়ার্ড',
|
'Password' => 'পাসওয়ার্ড',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Odjava',
|
'Logout' => 'Odjava',
|
||||||
'Logged as: %s' => 'Prijavi se kao: %s',
|
'Logged as: %s' => 'Prijavi se kao: %s',
|
||||||
'Logout successful.' => 'Uspešna odjava.',
|
'Logout successful.' => 'Uspešna odjava.',
|
||||||
'Invalid credentials.' => 'Nevažeće dozvole.',
|
'Invalid server or credentials.' => null,
|
||||||
'Language' => 'Jezik',
|
'Language' => 'Jezik',
|
||||||
'Invalid CSRF token. Send the form again.' => 'Nevažeći CSRF kod. Proslijedite ponovo formu.',
|
'Invalid CSRF token. Send the form again.' => 'Nevažeći CSRF kod. Proslijedite ponovo formu.',
|
||||||
'No extension' => 'Bez dodataka',
|
'No extension' => 'Bez dodataka',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Inicia la sessió',
|
'Login' => 'Inicia la sessió',
|
||||||
'Logout successful.' => 'Desconnexió correcta.',
|
'Logout successful.' => 'Desconnexió correcta.',
|
||||||
'Invalid credentials.' => 'Credencials invàlides.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Servidor',
|
'Server' => 'Servidor',
|
||||||
'Username' => 'Nom d\'usuari',
|
'Username' => 'Nom d\'usuari',
|
||||||
'Password' => 'Contrasenya',
|
'Password' => 'Contrasenya',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Odhlásit',
|
'Logout' => 'Odhlásit',
|
||||||
'Logged as: %s' => 'Přihlášen jako: %s',
|
'Logged as: %s' => 'Přihlášen jako: %s',
|
||||||
'Logout successful.' => 'Odhlášení proběhlo v pořádku.',
|
'Logout successful.' => 'Odhlášení proběhlo v pořádku.',
|
||||||
'Invalid credentials.' => 'Neplatné přihlašovací údaje.',
|
'Invalid server or credentials.' => 'Neplatný server nebo přihlašovací údaje.',
|
||||||
'There is a space in the input password which might be the cause.' => 'Problém může být, že je v zadaném hesle mezera.',
|
'There is a space in the input password which might be the cause.' => 'Problém může být, že je v zadaném hesle mezera.',
|
||||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer nepodporuje přístup k databázi bez hesla, <a href="https://www.adminer.org/cs/password/"%s>více informací</a>.',
|
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer nepodporuje přístup k databázi bez hesla, <a href="https://www.adminer.org/cs/password/"%s>více informací</a>.',
|
||||||
'Database does not support password.' => 'Databáze nepodporuje heslo.',
|
'Database does not support password.' => 'Databáze nepodporuje heslo.',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Copy to clipboard' => 'Kopírovat do schránky',
|
'Copy to clipboard' => 'Kopírovat do schránky',
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => 'Ke stažení je nová verze AdminerEvo!',
|
||||||
);
|
);
|
||||||
|
|
|
@ -9,7 +9,7 @@ $translations = array(
|
||||||
'Logout' => 'Log ud',
|
'Logout' => 'Log ud',
|
||||||
'Logged as: %s' => 'Logget ind som: %s',
|
'Logged as: %s' => 'Logget ind som: %s',
|
||||||
'Logout successful.' => 'Log af vellykket.',
|
'Logout successful.' => 'Log af vellykket.',
|
||||||
'Invalid credentials.' => 'Ugyldige log ind oplysninger.',
|
'Invalid server or credentials.' => null,
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-kodeordet er udløbet. <a href="https://www.adminer.org/en/extension/"%s>Implementer</a> en metode for %s for at gøre det permanent.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-kodeordet er udløbet. <a href="https://www.adminer.org/en/extension/"%s>Implementer</a> en metode for %s for at gøre det permanent.',
|
||||||
'Language' => 'Sprog',
|
'Language' => 'Sprog',
|
||||||
'Invalid CSRF token. Send the form again.' => 'Ugyldigt CSRF-token - Genindsend formen.',
|
'Invalid CSRF token. Send the form again.' => 'Ugyldigt CSRF-token - Genindsend formen.',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Login',
|
'Login' => 'Login',
|
||||||
'Logout successful.' => 'Abmeldung erfolgreich.',
|
'Logout successful.' => 'Abmeldung erfolgreich.',
|
||||||
'Invalid credentials.' => 'Ungültige Anmelde-Informationen.',
|
'Invalid server or credentials.' => 'Ungültige Server oder Anmelde-Informationen.',
|
||||||
'Server' => 'Server',
|
'Server' => 'Server',
|
||||||
'Username' => 'Benutzer',
|
'Username' => 'Benutzer',
|
||||||
'Password' => 'Passwort',
|
'Password' => 'Passwort',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Αποσύνδεση',
|
'Logout' => 'Αποσύνδεση',
|
||||||
'Logged as: %s' => 'Συνδεθήκατε ως %s',
|
'Logged as: %s' => 'Συνδεθήκατε ως %s',
|
||||||
'Logout successful.' => 'Αποσυνδεθήκατε με επιτυχία.',
|
'Logout successful.' => 'Αποσυνδεθήκατε με επιτυχία.',
|
||||||
'Invalid credentials.' => 'Εσφαλμένα Διαπιστευτήρια.',
|
'Invalid server or credentials.' => null,
|
||||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('Επανειλημμένες ανεπιτυχείς προσπάθειες σύνδεσης, δοκιμάστε ξανά σε %s λεπτό.', 'Επανειλημμένες ανεπιτυχείς προσπάθειες σύνδεσης, δοκιμάστε ξανά σε %s λεπτά.'),
|
'Too many unsuccessful logins, try again in %d minute(s).' => array('Επανειλημμένες ανεπιτυχείς προσπάθειες σύνδεσης, δοκιμάστε ξανά σε %s λεπτό.', 'Επανειλημμένες ανεπιτυχείς προσπάθειες σύνδεσης, δοκιμάστε ξανά σε %s λεπτά.'),
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Έληξε ο Κύριος Κωδικός. <a href="https://www.adminer.org/en/extension/"%s>Ενεργοποιήστε</a> τη μέθοδο %s για να τον κάνετε μόνιμο.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Έληξε ο Κύριος Κωδικός. <a href="https://www.adminer.org/en/extension/"%s>Ενεργοποιήστε</a> τη μέθοδο %s για να τον κάνετε μόνιμο.',
|
||||||
'Language' => 'Γλώσσα',
|
'Language' => 'Γλώσσα',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Login',
|
'Login' => 'Login',
|
||||||
'Logout successful.' => 'Sesión finalizada con éxito.',
|
'Logout successful.' => 'Sesión finalizada con éxito.',
|
||||||
'Invalid credentials.' => 'Usuario y/o clave de acceso incorrecta.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Servidor',
|
'Server' => 'Servidor',
|
||||||
'Username' => 'Usuario',
|
'Username' => 'Usuario',
|
||||||
'Password' => 'Contraseña',
|
'Password' => 'Contraseña',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Logi sisse',
|
'Login' => 'Logi sisse',
|
||||||
'Logout successful.' => 'Väljalogimine õnnestus.',
|
'Logout successful.' => 'Väljalogimine õnnestus.',
|
||||||
'Invalid credentials.' => 'Ebakorrektsed andmed.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Server',
|
'Server' => 'Server',
|
||||||
'Username' => 'Kasutajanimi',
|
'Username' => 'Kasutajanimi',
|
||||||
'Password' => 'Parool',
|
'Password' => 'Parool',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'خروج',
|
'Logout' => 'خروج',
|
||||||
'Logged as: %s' => 'ورود به عنوان: %s',
|
'Logged as: %s' => 'ورود به عنوان: %s',
|
||||||
'Logout successful.' => 'با موفقیت خارج شدید.',
|
'Logout successful.' => 'با موفقیت خارج شدید.',
|
||||||
'Invalid credentials.' => 'اعتبار سنجی نامعتبر.',
|
'Invalid server or credentials.' => null,
|
||||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('ورودهای ناموفق بیش از حد، %d دقیقه دیگر تلاش نمایید.', 'ورودهای ناموفق بیش از حد، %d دقیقه دیگر تلاش نمایید.'),
|
'Too many unsuccessful logins, try again in %d minute(s).' => array('ورودهای ناموفق بیش از حد، %d دقیقه دیگر تلاش نمایید.', 'ورودهای ناموفق بیش از حد، %d دقیقه دیگر تلاش نمایید.'),
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'رمز اصلی باطل شده است. روش %s را <a href="https://www.adminer.org/en/extension/"%s>پیاده سازی</a> کرده تا آن را دائمی سازید.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'رمز اصلی باطل شده است. روش %s را <a href="https://www.adminer.org/en/extension/"%s>پیاده سازی</a> کرده تا آن را دائمی سازید.',
|
||||||
'Language' => 'زبان',
|
'Language' => 'زبان',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Kirjaudu ulos',
|
'Logout' => 'Kirjaudu ulos',
|
||||||
'Logged as: %s' => 'Olet kirjautunut käyttäjänä: %s',
|
'Logged as: %s' => 'Olet kirjautunut käyttäjänä: %s',
|
||||||
'Logout successful.' => 'Uloskirjautuminen onnistui.',
|
'Logout successful.' => 'Uloskirjautuminen onnistui.',
|
||||||
'Invalid credentials.' => 'Virheelliset kirjautumistiedot.',
|
'Invalid server or credentials.' => null,
|
||||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('Liian monta epäonnistunutta sisäänkirjautumisyritystä, kokeile uudestaan %d minuutin kuluttua.', 'Liian monta epäonnistunutta sisäänkirjautumisyritystä, kokeile uudestaan %d minuutin kuluttua.'),
|
'Too many unsuccessful logins, try again in %d minute(s).' => array('Liian monta epäonnistunutta sisäänkirjautumisyritystä, kokeile uudestaan %d minuutin kuluttua.', 'Liian monta epäonnistunutta sisäänkirjautumisyritystä, kokeile uudestaan %d minuutin kuluttua.'),
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-salasana ei ole enää voimassa. <a href="https://www.adminer.org/en/extension/"%s>Toteuta</a> %s-metodi sen tekemiseksi pysyväksi.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-salasana ei ole enää voimassa. <a href="https://www.adminer.org/en/extension/"%s>Toteuta</a> %s-metodi sen tekemiseksi pysyväksi.',
|
||||||
'Language' => 'Kieli',
|
'Language' => 'Kieli',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Copy to clipboard' => null,
|
'Copy to clipboard' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Authentification',
|
'Login' => 'Authentification',
|
||||||
'Logout successful.' => 'Au revoir !',
|
'Logout successful.' => 'Au revoir !',
|
||||||
'Invalid credentials.' => 'Authentification échouée.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Serveur',
|
'Server' => 'Serveur',
|
||||||
'Username' => 'Utilisateur',
|
'Username' => 'Utilisateur',
|
||||||
'Password' => 'Mot de passe',
|
'Password' => 'Mot de passe',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => 'Désactiver %s ou activer %s or %s extensions.',
|
'Disable %s or enable %s or %s extensions.' => 'Désactiver %s ou activer %s or %s extensions.',
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Conectar',
|
'Login' => 'Conectar',
|
||||||
'Logout successful.' => 'Pechouse a sesión con éxito.',
|
'Logout successful.' => 'Pechouse a sesión con éxito.',
|
||||||
'Invalid credentials.' => 'Credenciais (usuario e/ou contrasinal) inválidos.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Servidor',
|
'Server' => 'Servidor',
|
||||||
'Username' => 'Usuario',
|
'Username' => 'Usuario',
|
||||||
'Password' => 'Contrasinal',
|
'Password' => 'Contrasinal',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'התחברות',
|
'Login' => 'התחברות',
|
||||||
'Logout successful.' => 'ההתחברות הצליחה',
|
'Logout successful.' => 'ההתחברות הצליחה',
|
||||||
'Invalid credentials.' => 'פרטי התחברות שגויים',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'שרת',
|
'Server' => 'שרת',
|
||||||
'Username' => 'שם משתמש',
|
'Username' => 'שם משתמש',
|
||||||
'Password' => 'סיסמה',
|
'Password' => 'סיסמה',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Belépés',
|
'Login' => 'Belépés',
|
||||||
'Logout successful.' => 'Sikeres kilépés.',
|
'Logout successful.' => 'Sikeres kilépés.',
|
||||||
'Invalid credentials.' => 'Érvénytelen adatok.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Szerver',
|
'Server' => 'Szerver',
|
||||||
'Username' => 'Felhasználó',
|
'Username' => 'Felhasználó',
|
||||||
'Password' => 'Jelszó',
|
'Password' => 'Jelszó',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Keluar',
|
'Logout' => 'Keluar',
|
||||||
'Logged as: %s' => 'Masuk sebagai: %s',
|
'Logged as: %s' => 'Masuk sebagai: %s',
|
||||||
'Logout successful.' => 'Berhasil keluar.',
|
'Logout successful.' => 'Berhasil keluar.',
|
||||||
'Invalid credentials.' => 'Akses tidak sah.',
|
'Invalid server or credentials.' => null,
|
||||||
'Language' => 'Bahasa',
|
'Language' => 'Bahasa',
|
||||||
'Invalid CSRF token. Send the form again.' => 'Token CSRF tidak sah. Kirim ulang formulir.',
|
'Invalid CSRF token. Send the form again.' => 'Token CSRF tidak sah. Kirim ulang formulir.',
|
||||||
'No extension' => 'Ekstensi tidak ada',
|
'No extension' => 'Ekstensi tidak ada',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Autenticazione',
|
'Login' => 'Autenticazione',
|
||||||
'Logout successful.' => 'Uscita effettuata con successo.',
|
'Logout successful.' => 'Uscita effettuata con successo.',
|
||||||
'Invalid credentials.' => 'Credenziali non valide.',
|
'Invalid server or credentials.' => 'Server o credenziali non valide.',
|
||||||
'Server' => 'Server',
|
'Server' => 'Server',
|
||||||
'Username' => 'Utente',
|
'Username' => 'Utente',
|
||||||
'Password' => 'Password',
|
'Password' => 'Password',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => 'no',
|
'no' => 'no',
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'ログイン',
|
'Login' => 'ログイン',
|
||||||
'Logout successful.' => 'ログアウト',
|
'Logout successful.' => 'ログアウト',
|
||||||
'Invalid credentials.' => '不正なログイン',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'サーバ',
|
'Server' => 'サーバ',
|
||||||
'Username' => 'ユーザ名',
|
'Username' => 'ユーザ名',
|
||||||
'Password' => 'パスワード',
|
'Password' => 'パスワード',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'შესვლა',
|
'Login' => 'შესვლა',
|
||||||
'Logout successful.' => 'გამოხვედით სისტემიდან.',
|
'Logout successful.' => 'გამოხვედით სისტემიდან.',
|
||||||
'Invalid credentials.' => 'არასწორი მომხმარებელი ან პაროლი.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'სერვერი',
|
'Server' => 'სერვერი',
|
||||||
'Username' => 'მომხმარებელი',
|
'Username' => 'მომხმარებელი',
|
||||||
'Password' => 'პაროლი',
|
'Password' => 'პაროლი',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'Copy to clipboard' => null,
|
'Copy to clipboard' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -121,7 +121,7 @@ $translations = array(
|
||||||
'Indexes have been altered.' => '색인을 변경했습니다.',
|
'Indexes have been altered.' => '색인을 변경했습니다.',
|
||||||
'Indexes' => '색인',
|
'Indexes' => '색인',
|
||||||
'Insert' => '삽입',
|
'Insert' => '삽입',
|
||||||
'Invalid credentials.' => '잘못된 로그인',
|
'Invalid server or credentials.' => null,
|
||||||
'Invalid CSRF token. Send the form again.' => '잘못된 CSRF 토큰입니다. 다시 보내주십시오.',
|
'Invalid CSRF token. Send the form again.' => '잘못된 CSRF 토큰입니다. 다시 보내주십시오.',
|
||||||
'Invalid database.' => '잘못된 데이터베이스입니다.',
|
'Invalid database.' => '잘못된 데이터베이스입니다.',
|
||||||
'Invalid schema.' => '잘못된 스키마입니다.',
|
'Invalid schema.' => '잘못된 스키마입니다.',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Atsijungti',
|
'Logout' => 'Atsijungti',
|
||||||
'Logged as: %s' => 'Prisijungęs kaip: %s',
|
'Logged as: %s' => 'Prisijungęs kaip: %s',
|
||||||
'Logout successful.' => 'Jūs atsijungėte nuo sistemos.',
|
'Logout successful.' => 'Jūs atsijungėte nuo sistemos.',
|
||||||
'Invalid credentials.' => 'Neteisingi prisijungimo duomenys.',
|
'Invalid server or credentials.' => null,
|
||||||
'Language' => 'Kalba',
|
'Language' => 'Kalba',
|
||||||
'Invalid CSRF token. Send the form again.' => 'Neteisingas CSRF tokenas. Bandykite siųsti formos duomenis dar kartą.',
|
'Invalid CSRF token. Send the form again.' => 'Neteisingas CSRF tokenas. Bandykite siųsti formos duomenis dar kartą.',
|
||||||
'No extension' => 'Nėra plėtiio',
|
'No extension' => 'Nėra plėtiio',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Ieiet',
|
'Login' => 'Ieiet',
|
||||||
'Logout successful.' => 'Jūs veiksmīgi izgājāt no sistēmas.',
|
'Logout successful.' => 'Jūs veiksmīgi izgājāt no sistēmas.',
|
||||||
'Invalid credentials.' => 'Nepareizs lietotāja vārds vai parole.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Serveris',
|
'Server' => 'Serveris',
|
||||||
'Username' => 'Lietotājs',
|
'Username' => 'Lietotājs',
|
||||||
'Password' => 'Parole',
|
'Password' => 'Parole',
|
||||||
|
@ -306,4 +306,6 @@ $translations = array(
|
||||||
'Copy to clipboard' => null,
|
'Copy to clipboard' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Log keluar',
|
'Logout' => 'Log keluar',
|
||||||
'Logged as: %s' => 'Log masuk sebagai: %s',
|
'Logged as: %s' => 'Log masuk sebagai: %s',
|
||||||
'Logout successful.' => 'Log keluar berjaya.',
|
'Logout successful.' => 'Log keluar berjaya.',
|
||||||
'Invalid credentials.' => 'Akses tidak sah.',
|
'Invalid server or credentials.' => null,
|
||||||
'Too many unsuccessful logins, try again in %d minute(s).' => 'Terlalu banyak percubaan log masuk yang gagal, sila cuba lagi dalam masa %d minit.',
|
'Too many unsuccessful logins, try again in %d minute(s).' => 'Terlalu banyak percubaan log masuk yang gagal, sila cuba lagi dalam masa %d minit.',
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Kata laluan utama telah luput. <a href="https://www.adminer.org/en/extension/"%s>Gunakan</a> cara %s untuk mengekalkannya.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Kata laluan utama telah luput. <a href="https://www.adminer.org/en/extension/"%s>Gunakan</a> cara %s untuk mengekalkannya.',
|
||||||
'Language' => 'Bahasa',
|
'Language' => 'Bahasa',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Aanmelden',
|
'Login' => 'Aanmelden',
|
||||||
'Logout successful.' => 'Successvol afgemeld.',
|
'Logout successful.' => 'Successvol afgemeld.',
|
||||||
'Invalid credentials.' => 'Ongeldige gebruikersgegevens.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Server',
|
'Server' => 'Server',
|
||||||
'Username' => 'Gebruikersnaam',
|
'Username' => 'Gebruikersnaam',
|
||||||
'Password' => 'Wachtwoord',
|
'Password' => 'Wachtwoord',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => 'neen',
|
'no' => 'neen',
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -9,7 +9,7 @@ $translations = array(
|
||||||
'Logout' => 'Logg ut',
|
'Logout' => 'Logg ut',
|
||||||
'Logged as: %s' => 'Logget inn som: %s',
|
'Logged as: %s' => 'Logget inn som: %s',
|
||||||
'Logout successful.' => 'Utlogging vellykket.',
|
'Logout successful.' => 'Utlogging vellykket.',
|
||||||
'Invalid credentials.' => 'Ugylding innloggingsinformasjon.',
|
'Invalid server or credentials.' => null,
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-passord er utløpt. <a href="https://www.adminer.org/en/extension/"%s>Implementer</a> en metode for %s for å gjøre det permanent.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master-passord er utløpt. <a href="https://www.adminer.org/en/extension/"%s>Implementer</a> en metode for %s for å gjøre det permanent.',
|
||||||
'Language' => 'Språk',
|
'Language' => 'Språk',
|
||||||
'Invalid CSRF token. Send the form again.' => 'Ugylding CSRF-token - Send inn skjemaet igjen.',
|
'Invalid CSRF token. Send the form again.' => 'Ugylding CSRF-token - Send inn skjemaet igjen.',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Wyloguj',
|
'Logout' => 'Wyloguj',
|
||||||
'Logged as: %s' => 'Zalogowany jako: %s',
|
'Logged as: %s' => 'Zalogowany jako: %s',
|
||||||
'Logout successful.' => 'Wylogowano pomyślnie.',
|
'Logout successful.' => 'Wylogowano pomyślnie.',
|
||||||
'Invalid credentials.' => 'Nieprawidłowe dane logowania.',
|
// 'Invalid credentials.' => 'Nieprawidłowy serwer lub dane logowania.',
|
||||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('Za dużo nieudanych prób logowania, spróbuj ponownie za %d minutę.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minuty.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minut.'),
|
'Too many unsuccessful logins, try again in %d minute(s).' => array('Za dużo nieudanych prób logowania, spróbuj ponownie za %d minutę.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minuty.', 'Za dużo nieudanych prób logowania, spróbuj ponownie za %d minut.'),
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ważność hasła głównego wygasła. <a href="https://www.adminer.org/pl/extension/"%s>Zaimplementuj</a> własną metodę %s, aby ustawić je na stałe.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ważność hasła głównego wygasła. <a href="https://www.adminer.org/pl/extension/"%s>Zaimplementuj</a> własną metodę %s, aby ustawić je na stałe.',
|
||||||
'Language' => 'Język',
|
'Language' => 'Język',
|
||||||
|
@ -350,4 +350,7 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
|
'Invalid server or credentials.' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Entrar',
|
'Login' => 'Entrar',
|
||||||
'Logout successful.' => 'Saída bem sucedida.',
|
'Logout successful.' => 'Saída bem sucedida.',
|
||||||
'Invalid credentials.' => 'Identificação inválida.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Servidor',
|
'Server' => 'Servidor',
|
||||||
'Username' => 'Usuário',
|
'Username' => 'Usuário',
|
||||||
'Password' => 'Senha',
|
'Password' => 'Senha',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'HH:MM:SS' => null,
|
'HH:MM:SS' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Entrar',
|
'Login' => 'Entrar',
|
||||||
'Logout successful.' => 'Sessão terminada com sucesso.',
|
'Logout successful.' => 'Sessão terminada com sucesso.',
|
||||||
'Invalid credentials.' => 'Identificação inválida.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Servidor',
|
'Server' => 'Servidor',
|
||||||
'Username' => 'Nome de utilizador',
|
'Username' => 'Nome de utilizador',
|
||||||
'Password' => 'Senha',
|
'Password' => 'Senha',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'HH:MM:SS' => null,
|
'HH:MM:SS' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Intră',
|
'Login' => 'Intră',
|
||||||
'Logout successful.' => 'Ați ieșit cu succes.',
|
'Logout successful.' => 'Ați ieșit cu succes.',
|
||||||
'Invalid credentials.' => 'Numele de utilizator sau parola este greșită.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Server',
|
'Server' => 'Server',
|
||||||
'Username' => 'Nume de utilizator',
|
'Username' => 'Nume de utilizator',
|
||||||
'Password' => 'Parola',
|
'Password' => 'Parola',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Войти',
|
'Login' => 'Войти',
|
||||||
'Logout successful.' => 'Вы успешно покинули систему.',
|
'Logout successful.' => 'Вы успешно покинули систему.',
|
||||||
'Invalid credentials.' => 'Неправильное имя пользователя или пароль.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'Сервер',
|
'Server' => 'Сервер',
|
||||||
'Username' => 'Имя пользователя',
|
'Username' => 'Имя пользователя',
|
||||||
'Password' => 'Пароль',
|
'Password' => 'Пароль',
|
||||||
|
@ -304,5 +304,5 @@ $translations = array(
|
||||||
'Copy to clipboard' => 'Скопировать в буфер обмена',
|
'Copy to clipboard' => 'Скопировать в буфер обмена',
|
||||||
'Disable %s or enable %s or %s extensions.' => 'Отключите %s или включите расширения %s или %s.',
|
'Disable %s or enable %s or %s extensions.' => 'Отключите %s или включите расширения %s или %s.',
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'Prihlásiť sa',
|
'Login' => 'Prihlásiť sa',
|
||||||
'Logout successful.' => 'Odhlásenie prebehlo v poriadku.',
|
'Logout successful.' => 'Odhlásenie prebehlo v poriadku.',
|
||||||
'Invalid credentials.' => 'Neplatné prihlasovacie údaje.',
|
'Invalid server or credentials.' => 'Neplatný server alebo prihlasovacie údaje.',
|
||||||
'Server' => 'Server',
|
'Server' => 'Server',
|
||||||
'Username' => 'Používateľ',
|
'Username' => 'Používateľ',
|
||||||
'Password' => 'Heslo',
|
'Password' => 'Heslo',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => 'nie',
|
'no' => 'nie',
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => 'Stiahnite si novú verziu AdminerEvo!',
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Odjavi se',
|
'Logout' => 'Odjavi se',
|
||||||
'Logged as: %s' => 'Prijavljen kot: %s',
|
'Logged as: %s' => 'Prijavljen kot: %s',
|
||||||
'Logout successful.' => 'Prijava uspešna.',
|
'Logout successful.' => 'Prijava uspešna.',
|
||||||
'Invalid credentials.' => 'Neveljavne pravice.',
|
'Invalid server or credentials.' => 'Neveljaven strežnik ali pravice.',
|
||||||
'Language' => 'Jezik',
|
'Language' => 'Jezik',
|
||||||
'Invalid CSRF token. Send the form again.' => 'Neveljaven token CSRF. Pošljite formular še enkrat.',
|
'Invalid CSRF token. Send the form again.' => 'Neveljaven token CSRF. Pošljite formular še enkrat.',
|
||||||
'No extension' => 'Brez dodatkov',
|
'No extension' => 'Brez dodatkov',
|
||||||
|
@ -347,4 +347,6 @@ $translations = array(
|
||||||
'HH:MM:SS' => null,
|
'HH:MM:SS' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Одјава',
|
'Logout' => 'Одјава',
|
||||||
'Logged as: %s' => 'Пријави се као: %s',
|
'Logged as: %s' => 'Пријави се као: %s',
|
||||||
'Logout successful.' => 'Успешна одјава.',
|
'Logout successful.' => 'Успешна одјава.',
|
||||||
'Invalid credentials.' => 'Неважеће дозволе.',
|
'Invalid server or credentials.' => null,
|
||||||
'Language' => 'Језик',
|
'Language' => 'Језик',
|
||||||
'Invalid CSRF token. Send the form again.' => 'Неважећи CSRF код. Проследите поново форму.',
|
'Invalid CSRF token. Send the form again.' => 'Неважећи CSRF код. Проследите поново форму.',
|
||||||
'No extension' => 'Без додатака',
|
'No extension' => 'Без додатака',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Logga ut',
|
'Logout' => 'Logga ut',
|
||||||
'Logged as: %s' => 'Inloggad som: %s',
|
'Logged as: %s' => 'Inloggad som: %s',
|
||||||
'Logout successful.' => 'Du är nu utloggad.',
|
'Logout successful.' => 'Du är nu utloggad.',
|
||||||
'Invalid credentials.' => 'Ogiltiga inloggningsuppgifter.',
|
'Invalid server or credentials.' => null,
|
||||||
'There is a space in the input password which might be the cause.' => 'Det finns ett mellanslag i lösenordet, vilket kan vara anledningen.',
|
'There is a space in the input password which might be the cause.' => 'Det finns ett mellanslag i lösenordet, vilket kan vara anledningen.',
|
||||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer tillåter inte att ansluta till en databas utan lösenord. <a href="https://www.adminer.org/en/password/"%s>Mer information</a>.',
|
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer tillåter inte att ansluta till en databas utan lösenord. <a href="https://www.adminer.org/en/password/"%s>Mer information</a>.',
|
||||||
'Database does not support password.' => 'Databasen stödjer inte lösenord.',
|
'Database does not support password.' => 'Databasen stödjer inte lösenord.',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Copy to clipboard' => null,
|
'Copy to clipboard' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'நுழை',
|
'Login' => 'நுழை',
|
||||||
'Logout successful.' => 'வெற்றிகரமாய் வெளியேறியாயிற்று.',
|
'Logout successful.' => 'வெற்றிகரமாய் வெளியேறியாயிற்று.',
|
||||||
'Invalid credentials.' => 'சரியான விபரங்கள் இல்லை.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'வழங்கி (Server)',
|
'Server' => 'வழங்கி (Server)',
|
||||||
'Username' => 'பயனாளர் (User)',
|
'Username' => 'பயனாளர் (User)',
|
||||||
'Password' => 'கடவுச்சொல்',
|
'Password' => 'கடவுச்சொல்',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
$translations = array(
|
$translations = array(
|
||||||
'Login' => 'เข้าสู่ระบบ',
|
'Login' => 'เข้าสู่ระบบ',
|
||||||
'Logout successful.' => 'ออกจากระบบเรียบร้อยแล้ว.',
|
'Logout successful.' => 'ออกจากระบบเรียบร้อยแล้ว.',
|
||||||
'Invalid credentials.' => 'ข้อมูลไม่ถูกต้อง.',
|
'Invalid server or credentials.' => null,
|
||||||
'Server' => 'เซอเวอร์',
|
'Server' => 'เซอเวอร์',
|
||||||
'Username' => 'ชื่อผู้ใช้งาน',
|
'Username' => 'ชื่อผู้ใช้งาน',
|
||||||
'Password' => 'รหัสผ่าน',
|
'Password' => 'รหัสผ่าน',
|
||||||
|
@ -305,4 +305,6 @@ $translations = array(
|
||||||
'no' => null,
|
'no' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Çıkış',
|
'Logout' => 'Çıkış',
|
||||||
'Logged as: %s' => '%s olarak giriş yapıldı.',
|
'Logged as: %s' => '%s olarak giriş yapıldı.',
|
||||||
'Logout successful.' => 'Oturum başarıyla sonlandı.',
|
'Logout successful.' => 'Oturum başarıyla sonlandı.',
|
||||||
'Invalid credentials.' => 'Geçersiz kimlik bilgileri.',
|
'Invalid server or credentials.' => null,
|
||||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('Çok fazla oturum açma denemesi yapıldı.', '%d Dakika sonra tekrar deneyiniz.'),
|
'Too many unsuccessful logins, try again in %d minute(s).' => array('Çok fazla oturum açma denemesi yapıldı.', '%d Dakika sonra tekrar deneyiniz.'),
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ana şifrenin süresi doldu. Kalıcı olması için <a href="https://www.adminer.org/en/extension/"%s>%s medodunu</a> kullanın.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Ana şifrenin süresi doldu. Kalıcı olması için <a href="https://www.adminer.org/en/extension/"%s>%s medodunu</a> kullanın.',
|
||||||
'Language' => 'Dil',
|
'Language' => 'Dil',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Вийти',
|
'Logout' => 'Вийти',
|
||||||
'Logged as: %s' => 'Ви увійшли як: %s',
|
'Logged as: %s' => 'Ви увійшли як: %s',
|
||||||
'Logout successful.' => 'Ви вдало вийшли з системи.',
|
'Logout successful.' => 'Ви вдало вийшли з системи.',
|
||||||
'Invalid credentials.' => 'Неправильні дані входу.',
|
'Invalid server or credentials.' => null,
|
||||||
'Language' => 'Мова',
|
'Language' => 'Мова',
|
||||||
'Invalid CSRF token. Send the form again.' => 'Недійсний CSRF токен. Надішліть форму ще раз.',
|
'Invalid CSRF token. Send the form again.' => 'Недійсний CSRF токен. Надішліть форму ще раз.',
|
||||||
'No extension' => 'Нема розширень',
|
'No extension' => 'Нема розширень',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Thoát',
|
'Logout' => 'Thoát',
|
||||||
'Logged as: %s' => 'Vào dưới tên: %s',
|
'Logged as: %s' => 'Vào dưới tên: %s',
|
||||||
'Logout successful.' => 'Đã thoát xong.',
|
'Logout successful.' => 'Đã thoát xong.',
|
||||||
'Invalid credentials.' => 'Tài khoản sai.',
|
'Invalid server or credentials.' => null,
|
||||||
'Too many unsuccessful logins, try again in %d minute(s).' => 'Bạn gõ sai tài khoản quá nhiều lần, hãy thử lại sau %d phút nữa.',
|
'Too many unsuccessful logins, try again in %d minute(s).' => 'Bạn gõ sai tài khoản quá nhiều lần, hãy thử lại sau %d phút nữa.',
|
||||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Mật khẩu đã hết hạn. <a href="https://www.adminer.org/en/extension/"%s>Thử cách làm</a> để giữ cố định.',
|
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Mật khẩu đã hết hạn. <a href="https://www.adminer.org/en/extension/"%s>Thử cách làm</a> để giữ cố định.',
|
||||||
'Language' => 'Ngôn ngữ',
|
'Language' => 'Ngôn ngữ',
|
||||||
|
@ -349,4 +349,6 @@ $translations = array(
|
||||||
'Disable %s or enable %s or %s extensions.' => null,
|
'Disable %s or enable %s or %s extensions.' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => 'Xx',
|
'Logout' => 'Xx',
|
||||||
'Logged as: %s' => 'Xx: %s',
|
'Logged as: %s' => 'Xx: %s',
|
||||||
'Logout successful.' => 'Xx.',
|
'Logout successful.' => 'Xx.',
|
||||||
'Invalid credentials.' => 'Xx.',
|
'Invalid server or credentials.' => 'Xx.',
|
||||||
'There is a space in the input password which might be the cause.' => 'Xx.',
|
'There is a space in the input password which might be the cause.' => 'Xx.',
|
||||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Xx, <a href="https://www.adminer.org/en/password/"%s>xx</a>.',
|
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Xx, <a href="https://www.adminer.org/en/password/"%s>xx</a>.',
|
||||||
'Database does not support password.' => 'Xx.',
|
'Database does not support password.' => 'Xx.',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Copy to clipboard' => null,
|
'Copy to clipboard' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => '登出',
|
'Logout' => '登出',
|
||||||
'Logged as: %s' => '登錄為: %s',
|
'Logged as: %s' => '登錄為: %s',
|
||||||
'Logout successful.' => '成功登出。',
|
'Logout successful.' => '成功登出。',
|
||||||
'Invalid credentials.' => '無效的憑證。',
|
'Invalid server or credentials.' => null,
|
||||||
'There is a space in the input password which might be the cause.' => '您輸入的密碼中有一個空格,這可能是導致問題的原因。',
|
'There is a space in the input password which might be the cause.' => '您輸入的密碼中有一個空格,這可能是導致問題的原因。',
|
||||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer預設不支援訪問沒有密碼的資料庫,<a href="https://www.adminer.org/en/password/"%s>詳情見這裡</a>.',
|
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer預設不支援訪問沒有密碼的資料庫,<a href="https://www.adminer.org/en/password/"%s>詳情見這裡</a>.',
|
||||||
'Database does not support password.' => '資料庫不支援密碼。',
|
'Database does not support password.' => '資料庫不支援密碼。',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Copy to clipboard' => null,
|
'Copy to clipboard' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -10,7 +10,7 @@ $translations = array(
|
||||||
'Logout' => '登出',
|
'Logout' => '登出',
|
||||||
'Logged as: %s' => '登录用户:%s',
|
'Logged as: %s' => '登录用户:%s',
|
||||||
'Logout successful.' => '成功登出。',
|
'Logout successful.' => '成功登出。',
|
||||||
'Invalid credentials.' => '无效凭据。',
|
'Invalid server or credentials.' => null,
|
||||||
'There is a space in the input password which might be the cause.' => '您输入的密码中有一个空格,这可能是导致问题的原因。',
|
'There is a space in the input password which might be the cause.' => '您输入的密码中有一个空格,这可能是导致问题的原因。',
|
||||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer默认不支持访问没有密码的数据库,<a href="https://www.adminer.org/en/password/"%s>详情见这里</a>.',
|
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer默认不支持访问没有密码的数据库,<a href="https://www.adminer.org/en/password/"%s>详情见这里</a>.',
|
||||||
'Database does not support password.' => '数据库不支持密码。',
|
'Database does not support password.' => '数据库不支持密码。',
|
||||||
|
@ -350,4 +350,6 @@ $translations = array(
|
||||||
'Copy to clipboard' => null,
|
'Copy to clipboard' => null,
|
||||||
|
|
||||||
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
// 'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||||
|
|
||||||
|
'A newer version of AdminerEvo is available, download it now!' => null,
|
||||||
);
|
);
|
||||||
|
|
|
@ -87,7 +87,7 @@ if (!$error && $_POST) {
|
||||||
$query .= fread($fp, 1e5);
|
$query .= fread($fp, 1e5);
|
||||||
} else {
|
} else {
|
||||||
$offset = $match[0][1] + strlen($s);
|
$offset = $match[0][1] + strlen($s);
|
||||||
if ($s[0] != "\\") {
|
if (!isset($s[0]) || $s[0] != "\\") {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ if (!$error && $_POST) {
|
||||||
$empty = false;
|
$empty = false;
|
||||||
$q = substr($query, 0, $pos);
|
$q = substr($query, 0, $pos);
|
||||||
$commands++;
|
$commands++;
|
||||||
$print = "<pre id='sql-$commands'><code class='jush-$jush'>" . $adminer->sqlCommandQuery($q) . "</code></pre>\n";
|
$print = "<pre id='sql-$commands'><code class='jush-$jush copy-to-clipboard'>" . $adminer->sqlCommandQuery($q) . "</code></pre>\n";
|
||||||
$print .= generate_linksbar(["<a href='#' class='copy-to-clipboard'>" . lang('Copy to clipboard') . "</a>"]);
|
$print .= generate_linksbar(["<a href='#' class='copy-to-clipboard'>" . lang('Copy to clipboard') . "</a>"]);
|
||||||
if ($jush == "sqlite" && preg_match("~^$space*+ATTACH\\b~i", $q, $match)) {
|
if ($jush == "sqlite" && preg_match("~^$space*+ATTACH\\b~i", $q, $match)) {
|
||||||
// PHP doesn't support setting SQLITE_LIMIT_ATTACHED
|
// PHP doesn't support setting SQLITE_LIMIT_ATTACHED
|
||||||
|
|
|
@ -24,13 +24,13 @@ code { background: #eee; }
|
||||||
tbody tr:hover td, tbody tr:hover th { background: #eee; }
|
tbody tr:hover td, tbody tr:hover th { background: #eee; }
|
||||||
pre { margin: 1em 0 0; }
|
pre { margin: 1em 0 0; }
|
||||||
pre, textarea { font: 100%/1.25 monospace; }
|
pre, textarea { font: 100%/1.25 monospace; }
|
||||||
input, button { vertical-align: middle; border-radius: 5px; padding: 2px; }
|
input, button { vertical-align: middle; border-radius: 5px; padding: 2px; border-width: 1px; }
|
||||||
input.default { box-shadow: 1px 1px 1px #777; }
|
input.default { box-shadow: 1px 1px 1px #777; }
|
||||||
input.required { box-shadow: 1px 1px 1px red; }
|
input.required { box-shadow: 1px 1px 1px red; }
|
||||||
input.maxlength { box-shadow: 1px 1px 1px red; }
|
input.maxlength { box-shadow: 1px 1px 1px red; }
|
||||||
input.wayoff { left: -1000px; position: absolute; }
|
input.wayoff { left: -1000px; position: absolute; }
|
||||||
input[type='submit'] { padding-left: 10px; padding-right: 10px; }
|
input[type='submit'] { padding-left: 10px; padding-right: 10px; }
|
||||||
select { border-radius: 5px; padding: 2px; vertical-align: middle;; }
|
select { border-radius: 5px; padding: 2px; vertical-align: middle; }
|
||||||
fieldset label input[type='checkbox'] { margin-bottom: 6px; }
|
fieldset label input[type='checkbox'] { margin-bottom: 6px; }
|
||||||
fieldset a { line-height: 20px; }
|
fieldset a { line-height: 20px; }
|
||||||
#fieldset-select .icon, #fieldset-search .icon, #fieldset-sort .icon { cursor: pointer; }
|
#fieldset-select .icon, #fieldset-search .icon, #fieldset-sort .icon { cursor: pointer; }
|
||||||
|
|
|
@ -101,27 +101,22 @@ function cookie(assign, days) {
|
||||||
*/
|
*/
|
||||||
function verifyVersion(current, url, token) {
|
function verifyVersion(current, url, token) {
|
||||||
cookie('adminer_version=0', 1);
|
cookie('adminer_version=0', 1);
|
||||||
var iframe = document.createElement('iframe');
|
ajax('https://api.github.com/repos/adminerevo/adminerevo/releases/latest', function (request) {
|
||||||
iframe.src = 'https://www.adminer.org/version/?current=' + current;
|
var data = window.JSON ? JSON.parse(request.responseText) : eval('(' + request.responseText + ')');
|
||||||
iframe.frameBorder = 0;
|
version = data.tag_name.replace(/[^\d.]/g, '');
|
||||||
iframe.marginHeight = 0;
|
|
||||||
iframe.scrolling = 'no';
|
if (version) {
|
||||||
iframe.style.width = '7ex';
|
cookie('adminer_version=' + version, 1);
|
||||||
iframe.style.height = '1.25em';
|
var data = 'version=' + version;
|
||||||
if (window.postMessage && window.addEventListener) {
|
|
||||||
iframe.style.display = 'none';
|
|
||||||
addEventListener('message', function (event) {
|
|
||||||
if (event.origin == 'https://www.adminer.org') {
|
|
||||||
var match = /version=(.+)/.exec(event.data);
|
|
||||||
if (match) {
|
|
||||||
cookie('adminer_version=' + match[1], 1);
|
|
||||||
ajax(url + 'script=version', function () {
|
ajax(url + 'script=version', function () {
|
||||||
}, event.data + '&token=' + token);
|
}, data + '&token=' + token);
|
||||||
|
|
||||||
|
if (version != current) {
|
||||||
|
qs('#version').innerText = version;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, false);
|
|
||||||
}
|
});
|
||||||
qs('#version').appendChild(iframe);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get value of select
|
/** Get value of select
|
||||||
|
@ -889,21 +884,21 @@ function findDefaultSubmit(el) {
|
||||||
* @param HTMLElement
|
* @param HTMLElement
|
||||||
*/
|
*/
|
||||||
function setupCopyToClipboard(document) {
|
function setupCopyToClipboard(document) {
|
||||||
var node = document.querySelector("a.copy-to-clipboard");
|
var node = document.querySelectorAll("a.copy-to-clipboard");
|
||||||
if (node) {
|
node.forEach(function(element) {
|
||||||
node.addEventListener("click", function() {
|
element.addEventListener("click", function() {
|
||||||
var nodeSql = document.querySelector("code.copy-to-clipboard");
|
var nodeSql = document.querySelector("code.copy-to-clipboard");
|
||||||
if (nodeSql == null || nodeSql == undefined) {
|
if (nodeSql == null || nodeSql == undefined) {
|
||||||
nodeSql = document.querySelector("textarea.sqlarea");
|
nodeSql = document.querySelector("textarea.sqlarea");
|
||||||
}
|
}
|
||||||
if (nodeSql != null && nodeSql != undefined) {
|
if (nodeSql != null && nodeSql != undefined) {
|
||||||
if (node.classList.contains('expand')) {
|
if (element.classList.contains('expand')) {
|
||||||
document.getElementById(node.getAttribute('data-expand-id')).classList.remove("hidden");
|
document.getElementById(element.getAttribute('data-expand-id')).classList.remove("hidden");
|
||||||
}
|
}
|
||||||
copyToClipboard(nodeSql);
|
copyToClipboard(nodeSql);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Copy element's content in clipboard
|
/** Copy element's content in clipboard
|
||||||
|
|
14
changes.txt
14
changes.txt
|
@ -1,4 +1,16 @@
|
||||||
Adminer 4.8.3 (released 2023-10-xx):
|
Adminer 4.8.4 (released 2024-04-07):
|
||||||
|
Removed size for integer on MySQL 8+
|
||||||
|
Replaced deprecated by error_get_last()
|
||||||
|
Allow responsive styles on larger devices (PR #75)
|
||||||
|
Fixed issue with editor tables list
|
||||||
|
Adjusted href of editor title
|
||||||
|
Fixes of warnings on PHP8.3
|
||||||
|
Filter removal buttons on table select pages (PR #77)
|
||||||
|
Skip dump of generated columns (PR #95)
|
||||||
|
Add LICENSE file, clarify dual-licensing (PR #122)
|
||||||
|
Restore latest version check (PR #129)
|
||||||
|
|
||||||
|
Adminer 4.8.3 (released 2023-10-05):
|
||||||
Added some translations to russian language (PR #31)
|
Added some translations to russian language (PR #31)
|
||||||
Better URL detection (PR #33)
|
Better URL detection (PR #33)
|
||||||
Main logo SVG, improved theme compatibility, RTL support (PR #34)
|
Main logo SVG, improved theme compatibility, RTL support (PR #34)
|
||||||
|
|
|
@ -8,56 +8,78 @@ if (isset($_GET["clickhouse"])) {
|
||||||
var $extension = "JSON", $server_info, $errno, $_result, $error, $_url;
|
var $extension = "JSON", $server_info, $errno, $_result, $error, $_url;
|
||||||
var $_db = 'default';
|
var $_db = 'default';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $db
|
||||||
|
* @param string $query
|
||||||
|
* @return Min_Result|bool
|
||||||
|
*/
|
||||||
function rootQuery($db, $query) {
|
function rootQuery($db, $query) {
|
||||||
@ini_set('track_errors', 1); // @ - may be disabled
|
@ini_set('track_errors', 1); // @ - may be disabled
|
||||||
$file = @file_get_contents("$this->_url/?database=$db", false, stream_context_create(array('http' => array(
|
$file = @file_get_contents("$this->_url/?database=$db", false, stream_context_create(array('http' => array(
|
||||||
'method' => 'POST',
|
'method' => 'POST',
|
||||||
'content' => $this->isQuerySelectLike($query) ? "$query FORMAT JSONCompact" : $query,
|
'content' => $this->isQuerySelectLike($query) ? "$query FORMAT JSONCompact" : $query,
|
||||||
'header' => 'Content-type: application/x-www-form-urlencoded',
|
'header' => 'Content-type: application/x-www-form-urlencoded',
|
||||||
'ignore_errors' => 1, // available since PHP 5.2.10
|
'ignore_errors' => 1,
|
||||||
|
'follow_location' => 0,
|
||||||
|
'max_redirects' => 0,
|
||||||
))));
|
))));
|
||||||
|
|
||||||
if ($file === false) {
|
if ($file === false) {
|
||||||
$this->error = $php_errormsg;
|
$this->error = lang('Invalid server or credentials.');
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
if (!preg_match('~^HTTP/[0-9.]+ 2~i', $http_response_header[0])) {
|
|
||||||
$this->error = lang('Invalid credentials.') . " $http_response_header[0]";
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$return = json_decode($file, true);
|
|
||||||
if ($return === null) {
|
if (!preg_match('~^HTTP/[0-9.]+ 2~i', $http_response_header[0])) {
|
||||||
|
foreach ($http_response_header as $header) {
|
||||||
|
if (preg_match('~^X-ClickHouse-Exception-Code:~i', $header)) {
|
||||||
|
$this->error = preg_replace('~\(version [^(]+\(.+$~', '', $file);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->error = lang('Invalid server or credentials.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$this->isQuerySelectLike($query) && $file === '') {
|
if (!$this->isQuerySelectLike($query) && $file === '') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->errno = json_last_error();
|
$return = json_decode($file, true);
|
||||||
if (function_exists('json_last_error_msg')) {
|
if ($return === null) {
|
||||||
$this->error = json_last_error_msg();
|
$this->error = lang('Invalid server or credentials.');
|
||||||
} else {
|
return false;
|
||||||
$constants = get_defined_constants(true);
|
|
||||||
foreach ($constants['json'] as $name => $value) {
|
|
||||||
if ($value == $this->errno && preg_match('~^JSON_ERROR_~', $name)) {
|
|
||||||
$this->error = $name;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!isset($return['rows']) || !isset($return['data']) || !isset($return['meta'])) {
|
||||||
|
$this->error = lang('Invalid server or credentials.');
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
return new Min_Result($return['rows'], $return['data'], $return['meta']);
|
||||||
return new Min_Result($return);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function isQuerySelectLike($query) {
|
function isQuerySelectLike($query) {
|
||||||
return (bool) preg_match('~^(select|show)~i', $query);
|
return (bool) preg_match('~^(select|show)~i', $query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $query
|
||||||
|
* @return bool|Min_Result
|
||||||
|
*/
|
||||||
function query($query) {
|
function query($query) {
|
||||||
return $this->rootQuery($this->_db, $query);
|
return $this->rootQuery($this->_db, $query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $server
|
||||||
|
* @param string $username
|
||||||
|
* @param string $password
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
function connect($server, $username, $password) {
|
function connect($server, $username, $password) {
|
||||||
preg_match('~^(https?://)?(.*)~', $server, $match);
|
$this->_url = build_http_url($server, $username, $password, "localhost", 8123);
|
||||||
$this->_url = ($match[1] ? $match[1] : "http://") . "$username:$password@$match[2]";
|
|
||||||
$return = $this->query('SELECT 1');
|
$return = $this->query('SELECT 1');
|
||||||
return (bool) $return;
|
return (bool) $return;
|
||||||
}
|
}
|
||||||
|
@ -92,11 +114,17 @@ if (isset($_GET["clickhouse"])) {
|
||||||
class Min_Result {
|
class Min_Result {
|
||||||
var $num_rows, $_rows, $columns, $meta, $_offset = 0;
|
var $num_rows, $_rows, $columns, $meta, $_offset = 0;
|
||||||
|
|
||||||
function __construct($result) {
|
/**
|
||||||
$this->num_rows = $result['rows'];
|
* @param int $rows
|
||||||
$this->_rows = $result['data'];
|
* @param array[] $data
|
||||||
$this->meta = $result['meta'];
|
* @param array[] $meta
|
||||||
$this->columns = array_column($this->meta, 'name');
|
*/
|
||||||
|
function __construct($rows, array $data, array $meta) {
|
||||||
|
$this->num_rows = $rows;
|
||||||
|
$this->_rows = $data;
|
||||||
|
$this->meta = $meta;
|
||||||
|
$this->columns = array_column($meta, 'name');
|
||||||
|
|
||||||
reset($this->_rows);
|
reset($this->_rows);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,49 @@ if (isset($_GET["simpledb"])) {
|
||||||
|
|
||||||
if (class_exists('SimpleXMLElement') && ini_bool('allow_url_fopen')) {
|
if (class_exists('SimpleXMLElement') && ini_bool('allow_url_fopen')) {
|
||||||
class Min_DB {
|
class Min_DB {
|
||||||
var $extension = "SimpleXML", $server_info = '2009-04-15', $error, $timeout, $next, $affected_rows, $_result;
|
var $extension = "SimpleXML", $server_info = '2009-04-15', $error, $timeout, $next, $affected_rows, $_url, $_result;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $server
|
||||||
|
* @param string $password
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
function connect($server, $password) {
|
||||||
|
if ($server == '' || $password == '') {
|
||||||
|
$this->error = lang('Invalid server or credentials.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$parts = parse_url($server);
|
||||||
|
|
||||||
|
if (!$parts || !isset($parts['host']) || !preg_match('~^sdb\.([a-z0-9-]+\.)?amazonaws\.com$~i', $parts['host']) ||
|
||||||
|
isset($parts['port'])
|
||||||
|
) {
|
||||||
|
$this->error = lang('Invalid server or credentials.');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_url = build_http_url($server, '', '', '');
|
||||||
|
|
||||||
|
return (bool) $this->workaroundLoginRequest('ListDomains', ['MaxNumberOfDomains' => 1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME: This is so wrong :-( Move sdb_request to Min_DB!
|
||||||
|
private function workaroundLoginRequest($action, $params = array()) {
|
||||||
|
global $connection;
|
||||||
|
|
||||||
|
$connection = $this;
|
||||||
|
$result = sdb_request($action, $params);
|
||||||
|
$connection = null;
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
function select_db($database) {
|
function select_db($database) {
|
||||||
return ($database == "domain");
|
return ($database == "domain");
|
||||||
}
|
}
|
||||||
|
|
||||||
function query($query, $unbuffered = false) {
|
function query($query) {
|
||||||
$params = array('SelectExpression' => $query, 'ConsistentRead' => 'true');
|
$params = array('SelectExpression' => $query, 'ConsistentRead' => 'true');
|
||||||
if ($this->next) {
|
if ($this->next) {
|
||||||
$params['NextToken'] = $this->next;
|
$params['NextToken'] = $this->next;
|
||||||
|
@ -248,11 +284,15 @@ if (isset($_GET["simpledb"])) {
|
||||||
|
|
||||||
function connect() {
|
function connect() {
|
||||||
global $adminer;
|
global $adminer;
|
||||||
list(, , $password) = $adminer->credentials();
|
|
||||||
if ($password != "") {
|
$connection = new Min_DB;
|
||||||
return lang('Database does not support password.');
|
|
||||||
|
list($server, , $password) = $adminer->credentials();
|
||||||
|
if ($connection->connect($server, $password)) {
|
||||||
|
return $connection;
|
||||||
}
|
}
|
||||||
return new Min_DB;
|
|
||||||
|
return $connection->error;
|
||||||
}
|
}
|
||||||
|
|
||||||
function support($feature) {
|
function support($feature) {
|
||||||
|
@ -422,13 +462,16 @@ if (isset($_GET["simpledb"])) {
|
||||||
$query = str_replace('%7E', '~', substr($query, 1));
|
$query = str_replace('%7E', '~', substr($query, 1));
|
||||||
$query .= "&Signature=" . urlencode(base64_encode(hmac('sha1', "POST\n" . preg_replace('~^https?://~', '', $host) . "\n/\n$query", $secret, true)));
|
$query .= "&Signature=" . urlencode(base64_encode(hmac('sha1', "POST\n" . preg_replace('~^https?://~', '', $host) . "\n/\n$query", $secret, true)));
|
||||||
@ini_set('track_errors', 1); // @ - may be disabled
|
@ini_set('track_errors', 1); // @ - may be disabled
|
||||||
$file = @file_get_contents((preg_match('~^https?://~', $host) ? $host : "http://$host"), false, stream_context_create(array('http' => array(
|
|
||||||
|
$file = @file_get_contents($connection->_url, false, stream_context_create(array('http' => array(
|
||||||
'method' => 'POST', // may not fit in URL with GET
|
'method' => 'POST', // may not fit in URL with GET
|
||||||
'content' => $query,
|
'content' => $query,
|
||||||
'ignore_errors' => 1, // available since PHP 5.2.10
|
'ignore_errors' => 1,
|
||||||
|
'follow_location' => 0,
|
||||||
|
'max_redirects' => 0,
|
||||||
))));
|
))));
|
||||||
if (!$file) {
|
if (!$file) {
|
||||||
$connection->error = $php_errormsg;
|
$connection->error = error_get_last()['message'];
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
libxml_use_internal_errors(true);
|
libxml_use_internal_errors(true);
|
||||||
|
|
1
todo.txt
1
todo.txt
|
@ -20,7 +20,6 @@ Joining tables - PRIMARY KEY (table, joining)
|
||||||
Rank, Tree structure
|
Rank, Tree structure
|
||||||
|
|
||||||
MySQL:
|
MySQL:
|
||||||
Generated columns (MySQL >= 5.7.6)
|
|
||||||
Data longer than max_allowed_packet can be sent by mysqli_stmt_send_long_data()
|
Data longer than max_allowed_packet can be sent by mysqli_stmt_send_long_data()
|
||||||
|
|
||||||
MariaDB:
|
MariaDB:
|
||||||
|
|
Loading…
Reference in a new issue