mirror of
https://github.com/vrana/adminer.git
synced 2026-03-25 22:10:02 +01:00
Compare commits
84 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f0bc24e01 | ||
|
|
4863f48d33 | ||
|
|
9ea8f44919 | ||
|
|
fa791b5461 | ||
|
|
203162b203 | ||
|
|
e4e76b6384 | ||
|
|
353cd452a3 | ||
|
|
5bc4ac6c18 | ||
|
|
aec8275502 | ||
|
|
7d5077e687 | ||
|
|
91d0d8538f | ||
|
|
2439369143 | ||
|
|
d5bce9b3e9 | ||
|
|
b42762e4dc | ||
|
|
695a720403 | ||
|
|
e6fdf2b400 | ||
|
|
b542b6613c | ||
|
|
374b8ed6a6 | ||
|
|
58cca3f951 | ||
|
|
5eecb8e6a3 | ||
|
|
0d0936550c | ||
|
|
c4ed9500a1 | ||
|
|
0863766970 | ||
|
|
146a24efad | ||
|
|
00b9fbda08 | ||
|
|
8ea329538f | ||
|
|
a3428cc7ff | ||
|
|
2a01969c96 | ||
|
|
9b8d14c3ee | ||
|
|
2ce88d9bdc | ||
|
|
593c8e5bcc | ||
|
|
a134193afa | ||
|
|
8a60243459 | ||
|
|
b94636f8a7 | ||
|
|
47ccfa2a2e | ||
|
|
949b39b191 | ||
|
|
09a946cb99 | ||
|
|
13258de188 | ||
|
|
5fe25fca67 | ||
|
|
a693e75e32 | ||
|
|
de7dd4b64f | ||
|
|
8a70474651 | ||
|
|
43a0305a23 | ||
|
|
bff6f8ca93 | ||
|
|
f38c0a1f13 | ||
|
|
835c10674b | ||
|
|
fc5a46549e | ||
|
|
898dc9e25e | ||
|
|
32160b48ae | ||
|
|
6beb07a181 | ||
|
|
ee42077e54 | ||
|
|
c3e2e6c58f | ||
|
|
49effeff09 | ||
|
|
857cbf03f2 | ||
|
|
e8c9164a77 | ||
|
|
01fe709b7a | ||
|
|
90addc5e78 | ||
|
|
b71a456514 | ||
|
|
4d7642a624 | ||
|
|
9f8dadbb40 | ||
|
|
9968851f1e | ||
|
|
a5780e58af | ||
|
|
e8b40e3b9d | ||
|
|
35afd4f88c | ||
|
|
38e4b51256 | ||
|
|
55a7d3864f | ||
|
|
e69583a800 | ||
|
|
338c81e2a3 | ||
|
|
9eb4d00564 | ||
|
|
1c5947de50 | ||
|
|
5cfd48bb68 | ||
|
|
20a0e4e113 | ||
|
|
bf80612b0d | ||
|
|
8e848bfde4 | ||
|
|
38f390ae5e | ||
|
|
367a1b979e | ||
|
|
5dddfbdf12 | ||
|
|
2928b7beb8 | ||
|
|
a940f85206 | ||
|
|
834380aae9 | ||
|
|
3e94299256 | ||
|
|
e99ed80ad8 | ||
|
|
61b84cecd8 | ||
|
|
acf168a6da |
@@ -5,6 +5,7 @@ root = true
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.{php,css,js}]
|
||||
indent_style = tab
|
||||
|
||||
6
.gitattributes
vendored
6
.gitattributes
vendored
@@ -1,6 +0,0 @@
|
||||
/.gitattributes export-ignore
|
||||
/.github export-ignore
|
||||
/.gitignore export-ignore
|
||||
/.gitmodules export-ignore
|
||||
/.travis.yml export-ignore
|
||||
/tests export-ignore
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,3 +2,5 @@
|
||||
/adminer*.php
|
||||
/editor*.php
|
||||
/vendor/
|
||||
/composer.lock
|
||||
/temp
|
||||
|
||||
12
.gitmodules
vendored
12
.gitmodules
vendored
@@ -1,6 +1,6 @@
|
||||
[submodule "jush"]
|
||||
path = externals/jush
|
||||
url = https://github.com/vrana/jush
|
||||
[submodule "JsShrink"]
|
||||
path = externals/JsShrink
|
||||
url = https://github.com/vrana/JsShrink
|
||||
[submodule "designs/hydra"]
|
||||
path = designs/hydra
|
||||
url = https://github.com/Niyko/Hydra-Dark-Theme-for-Adminer
|
||||
[submodule "designs/pepa-linha-dark"]
|
||||
path = designs/pepa-linha-dark
|
||||
url = https://github.com/pepa-linha/Adminer-Design-Dark/
|
||||
|
||||
@@ -6,8 +6,4 @@ php:
|
||||
- 7.3
|
||||
- 7.4
|
||||
- 8.0
|
||||
- 8.1
|
||||
- 8.2
|
||||
- 8.3
|
||||
- 8.4
|
||||
script: git diff --name-only $TRAVIS_COMMIT_RANGE | grep '\.php$' | xargs -n1 -P8 php -l | grep -v 'No syntax errors'; test $? -eq 1
|
||||
|
||||
@@ -32,7 +32,7 @@ if (!$error && $_POST) {
|
||||
$query = (isset($_GET["callf"]) ? "SELECT" : "CALL") . " " . table($PROCEDURE) . "(" . implode(", ", $call) . ")";
|
||||
$start = microtime(true);
|
||||
$result = $connection->multi_query($query);
|
||||
$affected = $connection->affected_rows; // getting warnings overwrites this
|
||||
$affected = $connection->affected_rows; // getting warnigns overwrites this
|
||||
echo $adminer->selectQuery($query, $start, !$result);
|
||||
|
||||
if (!$result) {
|
||||
|
||||
@@ -49,9 +49,12 @@ if ($_POST && !process_fields($row["fields"]) && !$error) {
|
||||
if (!$field["has_default"]) {
|
||||
$field["default"] = null;
|
||||
}
|
||||
if ($key == $row["auto_increment_col"]) {
|
||||
$field["auto_increment"] = true;
|
||||
}
|
||||
$process_field = process_field($field, $type_field);
|
||||
$all_fields[] = array($field["orig"], $process_field, $after);
|
||||
if (!$orig_field || $process_field !== process_field($orig_field, $orig_field)) {
|
||||
if (!$orig_field || $process_field != process_field($orig_field, $orig_field)) {
|
||||
$fields[] = array($field["orig"], $process_field, $after);
|
||||
if ($field["orig"] != "" || $after) {
|
||||
$use_all_fields = true;
|
||||
@@ -79,39 +82,20 @@ if ($_POST && !process_fields($row["fields"]) && !$error) {
|
||||
}
|
||||
|
||||
$partitioning = "";
|
||||
if (support("partitioning")) {
|
||||
if (isset($partition_by[$row["partition_by"]])) {
|
||||
$params = array_filter($row, function ($key) {
|
||||
return preg_match('~^partition~', $key);
|
||||
}, ARRAY_FILTER_USE_KEY);
|
||||
|
||||
foreach ($params["partition_names"] as $key => $name) {
|
||||
if ($name == "") {
|
||||
unset($params["partition_names"][$key]);
|
||||
unset($params["partition_values"][$key]);
|
||||
}
|
||||
if ($partition_by[$row["partition_by"]]) {
|
||||
$partitions = array();
|
||||
if ($row["partition_by"] == 'RANGE' || $row["partition_by"] == 'LIST') {
|
||||
foreach (array_filter($row["partition_names"]) as $key => $val) {
|
||||
$value = $row["partition_values"][$key];
|
||||
$partitions[] = "\n PARTITION " . idf_escape($val) . " VALUES " . ($row["partition_by"] == 'RANGE' ? "LESS THAN" : "IN") . ($value != "" ? " ($value)" : " MAXVALUE"); //! SQL injection
|
||||
}
|
||||
|
||||
if ($params != get_partitions_info($TABLE)) {
|
||||
$partitions = array();
|
||||
if ($params["partition_by"] == 'RANGE' || $params["partition_by"] == 'LIST') {
|
||||
foreach ($params["partition_names"] as $key => $name) {
|
||||
$value = $params["partition_values"][$key];
|
||||
$partitions[] = "\n PARTITION " . idf_escape($name) . " VALUES " . ($params["partition_by"] == 'RANGE' ? "LESS THAN" : "IN") . ($value != "" ? " ($value)" : " MAXVALUE"); //! SQL injection
|
||||
}
|
||||
}
|
||||
|
||||
// $params["partition"] can be expression, not only column
|
||||
$partitioning .= "\nPARTITION BY $params[partition_by]($params[partition])";
|
||||
if ($partitions) {
|
||||
$partitioning .= " (" . implode(",", $partitions) . "\n)";
|
||||
} elseif ($params["partitions"]) {
|
||||
$partitioning .= " PARTITIONS " . (+$params["partitions"]);
|
||||
}
|
||||
}
|
||||
} elseif (preg_match("~partitioned~", $table_status["Create_options"])) {
|
||||
$partitioning .= "\nREMOVE PARTITIONING";
|
||||
}
|
||||
$partitioning .= "\nPARTITION BY $row[partition_by]($row[partition])" . ($partitions // $row["partition"] can be expression, not only column
|
||||
? " (" . implode(",", $partitions) . "\n)"
|
||||
: ($row["partitions"] ? " PARTITIONS " . (+$row["partitions"]) : "")
|
||||
);
|
||||
} elseif (support("partitioning") && preg_match("~partitioned~", $table_status["Create_options"])) {
|
||||
$partitioning .= "\nREMOVE PARTITIONING";
|
||||
}
|
||||
|
||||
$message = lang('Table has been altered.');
|
||||
@@ -157,9 +141,13 @@ if (!$_POST) {
|
||||
}
|
||||
|
||||
if (support("partitioning")) {
|
||||
$row += get_partitions_info($TABLE);
|
||||
$row["partition_names"][] = "";
|
||||
$row["partition_values"][] = "";
|
||||
$from = "FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = " . q(DB) . " AND TABLE_NAME = " . q($TABLE);
|
||||
$result = $connection->query("SELECT PARTITION_METHOD, PARTITION_ORDINAL_POSITION, PARTITION_EXPRESSION $from ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");
|
||||
list($row["partition_by"], $row["partitions"], $row["partition"]) = $result->fetch_row();
|
||||
$partitions = get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $from AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");
|
||||
$partitions[""] = "";
|
||||
$row["partition_names"] = array_keys($partitions);
|
||||
$row["partition_values"] = array_values($partitions);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -178,7 +166,8 @@ foreach ($engines as $engine) {
|
||||
<form action="" method="post" id="form">
|
||||
<p>
|
||||
<?php if (support("columns") || $TABLE == "") { ?>
|
||||
<?php echo lang('Table name'); ?>: <input name="name"<?php echo ($TABLE == "" && !$_POST ? " autofocus" : ""); ?> data-maxlength="64" value="<?php echo h($row["name"]); ?>" autocapitalize="off">
|
||||
<?php echo lang('Table name'); ?>: <input name="name" data-maxlength="64" value="<?php echo h($row["name"]); ?>" autocapitalize="off">
|
||||
<?php if ($TABLE == "" && !$_POST) { echo script("focus(qs('#form')['name']);"); } ?>
|
||||
<?php echo ($engines ? "<select name='Engine'>" . optionlist(array("" => "(" . lang('engine') . ")") + $engines, $row["Engine"]) . "</select>" . on_help("getTarget(event).value", 1) . script("qsl('select').onchange = helpClose;") : ""); ?>
|
||||
<?php echo ($collations && !preg_match("~sqlite|mssql~", $jush) ? html_select("Collation", array("" => "(" . lang('collation') . ")") + $collations, $row["Collation"]) : ""); ?>
|
||||
<input type="submit" value="<?php echo lang('Save'); ?>">
|
||||
|
||||
@@ -59,13 +59,14 @@ if ($_POST) {
|
||||
<p>
|
||||
<?php
|
||||
echo ($_POST["add_x"] || strpos($name, "\n")
|
||||
? '<textarea autofocus name="name" rows="10" cols="40">' . h($name) . '</textarea><br>'
|
||||
: '<input name="name" autofocus value="' . h($name) . '" data-maxlength="64" autocapitalize="off">'
|
||||
? '<textarea id="name" name="name" rows="10" cols="40">' . h($name) . '</textarea><br>'
|
||||
: '<input name="name" id="name" value="' . h($name) . '" data-maxlength="64" autocapitalize="off">'
|
||||
) . "\n" . ($collations ? html_select("collation", array("" => "(" . lang('collation') . ")") + $collations, $row["collation"]) . doc_link(array(
|
||||
'sql' => "charset-charsets.html",
|
||||
'mariadb' => "supported-character-sets-and-collations/",
|
||||
'mssql' => "ms187963.aspx",
|
||||
)) : "");
|
||||
echo script("focus(qs('#name'));");
|
||||
?>
|
||||
<input type="submit" value="<?php echo lang('Save'); ?>">
|
||||
<?php
|
||||
|
||||
@@ -217,7 +217,7 @@ if (isset($_GET["mongo"])) {
|
||||
function connect($uri, $options) {
|
||||
$class = 'MongoDB\Driver\Manager';
|
||||
$this->_link = new $class($uri, $options);
|
||||
$this->executeCommand($options["db"], array('ping' => 1));
|
||||
$this->executeCommand('admin', array('ping' => 1));
|
||||
}
|
||||
|
||||
function executeCommand($db, $command) {
|
||||
@@ -399,7 +399,7 @@ if (isset($_GET["mongo"])) {
|
||||
function get_databases($flush) {
|
||||
global $connection;
|
||||
$return = array();
|
||||
foreach ($connection->executeCommand($connection->_db_name, array('listDatabases' => 1)) as $dbs) {
|
||||
foreach ($connection->executeCommand('admin', array('listDatabases' => 1)) as $dbs) {
|
||||
foreach ($dbs->databases as $db) {
|
||||
$return[] = $db->name;
|
||||
}
|
||||
@@ -463,6 +463,8 @@ if (isset($_GET["mongo"])) {
|
||||
"insert" => 1,
|
||||
"select" => 1,
|
||||
"update" => 1,
|
||||
"where" => 1,
|
||||
"order" => 1,
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -480,11 +482,7 @@ if (isset($_GET["mongo"])) {
|
||||
}
|
||||
|
||||
function sql_query_where_parser($queryWhere) {
|
||||
$queryWhere = preg_replace('~^\s*WHERE\s*~', "", $queryWhere);
|
||||
while ($queryWhere[0] == "(") {
|
||||
$queryWhere = preg_replace('~^\((.*)\)$~', "$1", $queryWhere);
|
||||
}
|
||||
|
||||
$queryWhere = preg_replace('~^\sWHERE \(?\(?(.+?)\)?\)?$~', '\1', $queryWhere);
|
||||
$wheres = explode(' AND ', $queryWhere);
|
||||
$wheresOr = explode(') OR (', $queryWhere);
|
||||
$where = array();
|
||||
@@ -629,11 +627,6 @@ if (isset($_GET["mongo"])) {
|
||||
global $adminer;
|
||||
$connection = new Min_DB;
|
||||
list($server, $username, $password) = $adminer->credentials();
|
||||
|
||||
if ($server == "") {
|
||||
$server = "localhost:27017";
|
||||
}
|
||||
|
||||
$options = array();
|
||||
if ($username . $password != "") {
|
||||
$options["username"] = $username;
|
||||
|
||||
@@ -24,15 +24,8 @@ if (isset($_GET["mssql"])) {
|
||||
|
||||
function connect($server, $username, $password) {
|
||||
global $adminer;
|
||||
$connection_info = array("UID" => $username, "PWD" => $password, "CharacterSet" => "UTF-8");
|
||||
$ssl = $adminer->connectSsl();
|
||||
if (isset($ssl["Encrypt"])) {
|
||||
$connection_info["Encrypt"] = $ssl["Encrypt"];
|
||||
}
|
||||
if (isset($ssl["TrustServerCertificate"])) {
|
||||
$connection_info["TrustServerCertificate"] = $ssl["TrustServerCertificate"];
|
||||
}
|
||||
$db = $adminer->database();
|
||||
$connection_info = array("UID" => $username, "PWD" => $password, "CharacterSet" => "UTF-8");
|
||||
if ($db != "") {
|
||||
$connection_info["Database"] = $db;
|
||||
}
|
||||
@@ -47,8 +40,7 @@ if (isset($_GET["mssql"])) {
|
||||
}
|
||||
|
||||
function quote($string) {
|
||||
$unicode = strlen($string) != strlen(utf8_decode($string));
|
||||
return ($unicode ? "N" : "") . "'" . str_replace("'", "''", $string) . "'";
|
||||
return "'" . str_replace("'", "''", $string) . "'";
|
||||
}
|
||||
|
||||
function select_db($database) {
|
||||
@@ -171,8 +163,7 @@ if (isset($_GET["mssql"])) {
|
||||
}
|
||||
|
||||
function quote($string) {
|
||||
$unicode = strlen($string) != strlen(utf8_decode($string));
|
||||
return ($unicode ? "N" : "") . "'" . str_replace("'", "''", $string) . "'";
|
||||
return "'" . str_replace("'", "''", $string) . "'";
|
||||
}
|
||||
|
||||
function select_db($database) {
|
||||
@@ -310,11 +301,6 @@ if (isset($_GET["mssql"])) {
|
||||
global $adminer;
|
||||
$connection = new Min_DB;
|
||||
$credentials = $adminer->credentials();
|
||||
|
||||
if ($credentials[0] == "") {
|
||||
$credentials[0] = "localhost:1433";
|
||||
}
|
||||
|
||||
if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) {
|
||||
return $connection;
|
||||
}
|
||||
@@ -401,7 +387,7 @@ WHERE o.schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND o.type IN ('S', 'U',
|
||||
"null" => $row["is_nullable"],
|
||||
"auto_increment" => $row["is_identity"],
|
||||
"collation" => $row["collation_name"],
|
||||
"privileges" => array("insert" => 1, "select" => 1, "update" => 1),
|
||||
"privileges" => array("insert" => 1, "select" => 1, "update" => 1, "where" => 1, "order" => 1),
|
||||
"primary" => $row["is_identity"], //! or indexes.is_primary_key
|
||||
"comment" => $comments[$row["name"]],
|
||||
);
|
||||
@@ -553,7 +539,7 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table)
|
||||
|
||||
function foreign_keys($table) {
|
||||
$return = array();
|
||||
foreach (get_rows("EXEC sp_fkeys @fktable_name = " . q($table) . ", @fktable_owner = " . q(get_schema())) as $row) {
|
||||
foreach (get_rows("EXEC sp_fkeys @fktable_name = " . q($table)) as $row) {
|
||||
$foreign_key = &$return[$row["FK_NAME"]];
|
||||
$foreign_key["db"] = $row["PKTABLE_QUALIFIER"];
|
||||
$foreign_key["table"] = $row["PKTABLE_NAME"];
|
||||
@@ -644,8 +630,11 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table)
|
||||
return array();
|
||||
}
|
||||
|
||||
function is_c_style_escapes() {
|
||||
return true;
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function is_strict_mode() {
|
||||
return false;
|
||||
}
|
||||
|
||||
function show_status() {
|
||||
|
||||
@@ -16,10 +16,17 @@ if (!defined("DRIVER")) {
|
||||
global $adminer;
|
||||
mysqli_report(MYSQLI_REPORT_OFF); // stays between requests, not required since PHP 5.3.4
|
||||
list($host, $port) = explode(":", $server, 2); // part after : is used for port or socket
|
||||
|
||||
$ssl = $adminer->connectSsl();
|
||||
if ($ssl) {
|
||||
$this->ssl_set($ssl['key'], $ssl['cert'], $ssl['ca'], '', '');
|
||||
if (isset($ssl['key']) || isset($ssl['cert']) || isset($ssl['ca'])) {
|
||||
$this->ssl_set(
|
||||
isset($ssl['key']) ? $ssl['key'] : null,
|
||||
isset($ssl['cert']) ? $ssl['cert'] : null,
|
||||
isset($ssl['ca']) ? $ssl['ca'] : null,
|
||||
null, null
|
||||
);
|
||||
}
|
||||
|
||||
$return = @$this->real_connect(
|
||||
($server != "" ? $host : ini_get("mysqli.default_host")),
|
||||
($server . $username != "" ? $username : ini_get("mysqli.default_user")),
|
||||
@@ -27,7 +34,7 @@ if (!defined("DRIVER")) {
|
||||
$database,
|
||||
(is_numeric($port) ? $port : ini_get("mysqli.default_port")),
|
||||
(!is_numeric($port) ? $port : $socket),
|
||||
($ssl ? (empty($ssl['cert']) ? 2048 : 64) : 0) // 2048 - MYSQLI_CLIENT_SSL, 64 - MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT (not available before PHP 5.6.16)
|
||||
($ssl ? 64 : 0) // 64 - MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT (not available before PHP 5.6.16)
|
||||
);
|
||||
$this->options(MYSQLI_OPT_LOCAL_INFILE, false);
|
||||
return $return;
|
||||
@@ -234,28 +241,23 @@ if (!defined("DRIVER")) {
|
||||
|
||||
function connect($server, $username, $password) {
|
||||
global $adminer;
|
||||
$options = array(PDO::MYSQL_ATTR_LOCAL_INFILE => false);
|
||||
|
||||
$dsn = "mysql:charset=utf8;host=" . str_replace(":", ";unix_socket=", preg_replace('~:(\d)~', ';port=\1', $server));
|
||||
|
||||
$options = [PDO::MYSQL_ATTR_LOCAL_INFILE => false];
|
||||
$ssl = $adminer->connectSsl();
|
||||
if ($ssl) {
|
||||
if (!empty($ssl['key'])) {
|
||||
$options[PDO::MYSQL_ATTR_SSL_KEY] = $ssl['key'];
|
||||
}
|
||||
if (!empty($ssl['cert'])) {
|
||||
$options[PDO::MYSQL_ATTR_SSL_CERT] = $ssl['cert'];
|
||||
}
|
||||
if (!empty($ssl['ca'])) {
|
||||
$options[PDO::MYSQL_ATTR_SSL_CA] = $ssl['ca'];
|
||||
}
|
||||
if (!empty($ssl['verify'])) {
|
||||
$options[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = $ssl['verify'];
|
||||
}
|
||||
if (isset($ssl['key'])) {
|
||||
$options[PDO::MYSQL_ATTR_SSL_KEY] = $ssl['key'];
|
||||
}
|
||||
$this->dsn(
|
||||
"mysql:charset=utf8;host=" . str_replace(":", ";unix_socket=", preg_replace('~:(\d)~', ';port=\1', $server)),
|
||||
$username,
|
||||
$password,
|
||||
$options
|
||||
);
|
||||
if (isset($ssl['cert'])) {
|
||||
$options[PDO::MYSQL_ATTR_SSL_CERT] = $ssl['cert'];
|
||||
}
|
||||
if (isset($ssl['ca'])) {
|
||||
$options[PDO::MYSQL_ATTR_SSL_CA] = $ssl['ca'];
|
||||
}
|
||||
|
||||
$this->dsn($dsn, $username, $password, $options);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -319,8 +321,8 @@ if (!defined("DRIVER")) {
|
||||
}
|
||||
}
|
||||
|
||||
function convertSearch($idf, $val, $field) {
|
||||
return (preg_match('~char|text|enum|set~', $field["type"]) && !preg_match("~^utf8~", $field["collation"]) && preg_match('~[\x80-\xFF]~', $val['val'])
|
||||
function convertSearch($idf, array $where, array $field) {
|
||||
return (preg_match('~char|text|enum|set~', $field["type"]) && !preg_match("~^utf8~", $field["collation"]) && preg_match('~[\x80-\xFF]~', $where['val'])
|
||||
? "CONVERT($idf USING " . charset($this->_conn) . ")"
|
||||
: $idf
|
||||
);
|
||||
@@ -369,7 +371,7 @@ if (!defined("DRIVER")) {
|
||||
* @return mixed Min_DB or string for error
|
||||
*/
|
||||
function connect() {
|
||||
global $adminer, $types, $structured_types, $edit_functions;
|
||||
global $adminer, $types, $structured_types;
|
||||
$connection = new Min_DB;
|
||||
$credentials = $adminer->credentials();
|
||||
if ($connection->connect($credentials[0], $credentials[1], $credentials[2])) {
|
||||
@@ -379,11 +381,6 @@ if (!defined("DRIVER")) {
|
||||
$structured_types[lang('Strings')][] = "json";
|
||||
$types["json"] = 4294967295;
|
||||
}
|
||||
if (min_version('', 10.7, $connection)) {
|
||||
$structured_types[lang('Strings')][] = "uuid";
|
||||
$types["uuid"] = 128;
|
||||
$edit_functions[0]['uuid'] = 'uuid';
|
||||
}
|
||||
return $connection;
|
||||
}
|
||||
$return = $connection->error;
|
||||
@@ -516,8 +513,6 @@ if (!defined("DRIVER")) {
|
||||
$row["Comment"] = "";
|
||||
}
|
||||
if ($name != "") {
|
||||
// MariaDB: Table name is returned as lowercase on macOS, so we fix it here.
|
||||
$row["Name"] = $name;
|
||||
return $row;
|
||||
}
|
||||
$return[$row["Name"]] = $row;
|
||||
@@ -561,7 +556,7 @@ if (!defined("DRIVER")) {
|
||||
"auto_increment" => ($row["Extra"] == "auto_increment"),
|
||||
"on_update" => (preg_match('~^on update (.+)~i', $row["Extra"], $match) ? $match[1] : ""), //! available since MySQL 5.1.23
|
||||
"collation" => $row["Collation"],
|
||||
"privileges" => array_flip(preg_split('~, *~', $row["Privileges"])),
|
||||
"privileges" => array_flip(preg_split('~, *~', $row["Privileges"])) + ["where" => 1, "order" => 1],
|
||||
"comment" => $row["Comment"],
|
||||
"primary" => ($row["Key"] == "PRI"),
|
||||
// https://mariadb.com/kb/en/library/show-columns/, https://github.com/vrana/adminer/pull/359#pullrequestreview-276677186
|
||||
@@ -1066,16 +1061,17 @@ if (!defined("DRIVER")) {
|
||||
return get_key_vals("SHOW VARIABLES");
|
||||
}
|
||||
|
||||
/** Checks if C-style escapes are supported
|
||||
* @return bool
|
||||
*/
|
||||
function is_c_style_escapes() {
|
||||
static $c_style = null;
|
||||
if ($c_style === null) {
|
||||
$variables = get_key_vals("SHOW VARIABLES LIKE 'sql_mode'");
|
||||
$c_style = strpos($variables["sql_mode"], 'NO_BACKSLASH_ESCAPES') === false;
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function is_strict_mode() {
|
||||
static $strictMode = null;
|
||||
|
||||
if ($strictMode === null) {
|
||||
$strictMode = (bool)preg_match('~STRICT_(TRANS|ALL)_TABLES~', get_key_vals("SHOW VARIABLES LIKE 'sql_mode'")["sql_mode"]);
|
||||
}
|
||||
return $c_style;
|
||||
|
||||
return $strictMode;
|
||||
}
|
||||
|
||||
/** Get process list
|
||||
@@ -1118,7 +1114,7 @@ if (!defined("DRIVER")) {
|
||||
$return = "UNHEX($return)";
|
||||
}
|
||||
if ($field["type"] == "bit") {
|
||||
$return = "CONVERT(b$return, UNSIGNED)";
|
||||
$return = "CONV($return, 2, 10) + 0";
|
||||
}
|
||||
if (preg_match("~geometry|point|linestring|polygon~", $field["type"])) {
|
||||
$prefix = (min_version(8) ? "ST_" : "");
|
||||
@@ -1182,7 +1178,7 @@ if (!defined("DRIVER")) {
|
||||
'structured_types' => $structured_types,
|
||||
'unsigned' => array("unsigned", "zerofill", "unsigned zerofill"), ///< @var array number variants
|
||||
'operators' => array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "REGEXP", "IN", "FIND_IN_SET", "IS NULL", "NOT LIKE", "NOT REGEXP", "NOT IN", "IS NOT NULL", "SQL"), ///< @var array operators used in select
|
||||
'functions' => array("char_length", "date", "from_unixtime", "lower", "round", "floor", "ceil", "sec_to_time", "time_to_sec", "upper"), ///< @var array functions used in select
|
||||
'functions' => array("char_length", "date", "from_unixtime", "unix_timestamp", "lower", "round", "floor", "ceil", "sec_to_time", "time_to_sec", "upper"), ///< @var array functions used in select
|
||||
'grouping' => array("avg", "count", "count distinct", "group_concat", "max", "min", "sum"), ///< @var array grouping functions used in select
|
||||
'edit_functions' => array( ///< @var array of array("$type|$type2" => "$function/$function2") functions used in editing, [0] - edit and insert, [1] - edit only
|
||||
array(
|
||||
|
||||
@@ -167,7 +167,14 @@ if (isset($_GET["oracle"])) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $hostPath
|
||||
* @return bool
|
||||
*/
|
||||
function is_server_host_valid($hostPath) {
|
||||
// EasyConnect host+path format: host[/[service_name][:server_type][/instance_name]]
|
||||
return (bool)preg_match('~^[^/]+(/([^/:]+)?(:[^/:]+)?(/[^/:]+)?)?$~', $hostPath);
|
||||
}
|
||||
|
||||
function idf_escape($idf) {
|
||||
return '"' . str_replace('"', '""', $idf) . '"';
|
||||
@@ -188,12 +195,7 @@ if (isset($_GET["oracle"])) {
|
||||
}
|
||||
|
||||
function get_databases() {
|
||||
return get_vals("SELECT DISTINCT tablespace_name FROM (
|
||||
SELECT tablespace_name FROM user_tablespaces
|
||||
UNION SELECT tablespace_name FROM all_tables WHERE tablespace_name IS NOT NULL
|
||||
)
|
||||
ORDER BY 1"
|
||||
);
|
||||
return get_vals("SELECT tablespace_name FROM user_tablespaces ORDER BY 1");
|
||||
}
|
||||
|
||||
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
|
||||
@@ -302,7 +304,7 @@ ORDER BY 1"
|
||||
"null" => ($row["NULLABLE"] == "Y"),
|
||||
//! "auto_increment" => false,
|
||||
//! "collation" => $row["CHARACTER_SET_NAME"],
|
||||
"privileges" => array("insert" => 1, "select" => 1, "update" => 1),
|
||||
"privileges" => array("insert" => 1, "select" => 1, "update" => 1, "where" => 1, "order" => 1),
|
||||
//! "comment" => $row["Comment"],
|
||||
//! "primary" => ($row["Key"] == "PRI"),
|
||||
);
|
||||
@@ -484,8 +486,11 @@ AND c_src.TABLE_NAME = " . q($table);
|
||||
return get_key_vals('SELECT name, display_value FROM v$parameter');
|
||||
}
|
||||
|
||||
function is_c_style_escapes() {
|
||||
return true;
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function is_strict_mode() {
|
||||
return false;
|
||||
}
|
||||
|
||||
function process_list() {
|
||||
@@ -531,7 +536,7 @@ ORDER BY PROCESS
|
||||
'types' => $types,
|
||||
'structured_types' => $structured_types,
|
||||
'unsigned' => array(),
|
||||
'operators' => array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT IN", "IS NOT NULL", "SQL"),
|
||||
'operators' => array("=", "<", ">", "<=", ">=", "!=", "LIKE", "LIKE %%", "IN", "IS NULL", "NOT LIKE", "NOT REGEXP", "NOT IN", "IS NOT NULL", "SQL"),
|
||||
'functions' => array("length", "lower", "round", "upper"),
|
||||
'grouping' => array("avg", "count", "count distinct", "max", "min", "sum"),
|
||||
'edit_functions' => array(
|
||||
|
||||
@@ -19,11 +19,14 @@ if (isset($_GET["pgsql"])) {
|
||||
global $adminer;
|
||||
$db = $adminer->database();
|
||||
set_error_handler(array($this, '_error'));
|
||||
|
||||
$this->_string = "host='" . str_replace(":", "' port='", addcslashes($server, "'\\")) . "' user='" . addcslashes($username, "'\\") . "' password='" . addcslashes($password, "'\\") . "'";
|
||||
|
||||
$ssl = $adminer->connectSsl();
|
||||
if (isset($ssl["mode"])) {
|
||||
$this->_string .= " sslmode='" . $ssl["mode"] . "'";
|
||||
}
|
||||
|
||||
$this->_link = @pg_connect("$this->_string dbname='" . ($db != "" ? addcslashes($db, "'\\") : "postgres") . "'", PGSQL_CONNECT_FORCE_NEW);
|
||||
if (!$this->_link && $db != "") {
|
||||
// try to connect directly with database for performance
|
||||
@@ -152,14 +155,19 @@ if (isset($_GET["pgsql"])) {
|
||||
|
||||
function connect($server, $username, $password) {
|
||||
global $adminer;
|
||||
|
||||
$db = $adminer->database();
|
||||
|
||||
//! client_encoding is supported since 9.1, but we can't yet use min_version here
|
||||
$dsn = "pgsql:host='" . str_replace(":", "' port='", addcslashes($server, "'\\")) . "' client_encoding=utf8 dbname='" . ($db != "" ? addcslashes($db, "'\\") : "postgres") . "'";
|
||||
|
||||
$ssl = $adminer->connectSsl();
|
||||
if (isset($ssl["mode"])) {
|
||||
$dsn .= " sslmode='" . $ssl["mode"] . "'";
|
||||
}
|
||||
|
||||
$this->dsn($dsn, $username, $password);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -221,9 +229,9 @@ if (isset($_GET["pgsql"])) {
|
||||
return $query;
|
||||
}
|
||||
|
||||
function convertSearch($idf, $val, $field) {
|
||||
function convertSearch($idf, array $where, array $field) {
|
||||
$textTypes = "char|text";
|
||||
if (strpos($val["op"], "LIKE") === false) {
|
||||
if (strpos($where["op"], "LIKE") === false) {
|
||||
$textTypes .= "|date|time(stamp)?|boolean|uuid|inet|cidr|macaddr|" . number_type();
|
||||
}
|
||||
|
||||
@@ -284,8 +292,8 @@ if (isset($_GET["pgsql"])) {
|
||||
|
||||
function get_databases() {
|
||||
return get_vals("SELECT d.datname FROM pg_database d JOIN pg_roles r ON d.datdba = r.oid
|
||||
WHERE d.datallowconn = TRUE AND has_database_privilege(d.datname, 'CONNECT') AND pg_has_role(r.rolname, 'USAGE')
|
||||
ORDER BY d.datname");
|
||||
WHERE d.datallowconn = TRUE AND has_database_privilege(d.datname, 'CONNECT') AND pg_has_role(r.rolname, 'USAGE')
|
||||
ORDER BY d.datname");
|
||||
}
|
||||
|
||||
function limit($query, $where, $limit, $offset = 0, $separator = " ") {
|
||||
@@ -358,6 +366,7 @@ WHERE relkind IN ('r', 'm', 'v', 'f', 'p')
|
||||
'timestamp without time zone' => 'timestamp',
|
||||
'timestamp with time zone' => 'timestamptz',
|
||||
);
|
||||
|
||||
foreach (get_rows("SELECT a.attname AS field, format_type(a.atttypid, a.atttypmod) AS full_type, pg_get_expr(d.adbin, d.adrelid) AS default, a.attnotnull::int, col_description(c.oid, a.attnum) AS comment" . (min_version(10) ? ", a.attidentity" : "") . "
|
||||
FROM pg_class c
|
||||
JOIN pg_namespace n ON c.relnamespace = n.oid
|
||||
@@ -386,7 +395,7 @@ ORDER BY a.attnum"
|
||||
}
|
||||
$row["null"] = !$row["attnotnull"];
|
||||
$row["auto_increment"] = $row['attidentity'] || preg_match('~^nextval\(~i', $row["default"]);
|
||||
$row["privileges"] = array("insert" => 1, "select" => 1, "update" => 1);
|
||||
$row["privileges"] = array("insert" => 1, "select" => 1, "update" => 1, "where" => 1, "order" => 1);
|
||||
if (preg_match('~(.+)::[^,)]+(.*)~', $row["default"], $match)) {
|
||||
$row["default"] = ($match[1] == "NULL" ? null : idf_unescape($match[1]) . $match[2]);
|
||||
}
|
||||
@@ -493,8 +502,7 @@ ORDER BY connamespace, conname") as $row) {
|
||||
}
|
||||
|
||||
function rename_database($name, $collation) {
|
||||
global $connection;
|
||||
$connection->close();
|
||||
//! current database cannot be renamed
|
||||
return queries("ALTER DATABASE " . idf_escape(DB) . " RENAME TO " . idf_escape($name));
|
||||
}
|
||||
|
||||
@@ -508,7 +516,6 @@ ORDER BY connamespace, conname") as $row) {
|
||||
if ($table != "" && $table != $name) {
|
||||
$queries[] = "ALTER TABLE " . table($table) . " RENAME TO " . table($name);
|
||||
}
|
||||
$sequence = "";
|
||||
foreach ($fields as $field) {
|
||||
$column = idf_escape($field[0]);
|
||||
$val = $field[1];
|
||||
@@ -530,15 +537,10 @@ ORDER BY connamespace, conname") as $row) {
|
||||
$queries[] = "ALTER TABLE " . table($name) . " RENAME $column TO $val[0]";
|
||||
}
|
||||
$alter[] = "ALTER $column TYPE$val[1]";
|
||||
$sequence_name = $table . "_" . idf_unescape($val[0]) . "_seq";
|
||||
$alter[] = "ALTER $column " . ($val[3] ? "SET$val[3]"
|
||||
: (isset($val[6]) ? "SET DEFAULT nextval(" . q($sequence_name) . ")"
|
||||
: "DROP DEFAULT"
|
||||
));
|
||||
if (isset($val[6])) {
|
||||
$sequence = "CREATE SEQUENCE IF NOT EXISTS " . idf_escape($sequence_name) . " OWNED BY " . idf_escape($table) . ".$val[0]";
|
||||
if (!$val[6]) {
|
||||
$alter[] = "ALTER $column " . ($val[3] ? "SET$val[3]" : "DROP DEFAULT");
|
||||
$alter[] = "ALTER $column " . ($val[2] == " NULL" ? "DROP NOT" : "SET") . $val[2];
|
||||
}
|
||||
$alter[] = "ALTER $column " . ($val[2] == " NULL" ? "DROP NOT" : "SET") . $val[2];
|
||||
}
|
||||
if ($field[0] != "" || $val5 != "") {
|
||||
$queries[] = "COMMENT ON COLUMN " . table($name) . ".$val[0] IS " . ($val5 != "" ? substr($val5, 9) : "''");
|
||||
@@ -551,9 +553,6 @@ ORDER BY connamespace, conname") as $row) {
|
||||
} elseif ($alter) {
|
||||
array_unshift($queries, "ALTER TABLE " . table($table) . "\n" . implode(",\n", $alter));
|
||||
}
|
||||
if ($sequence) {
|
||||
array_unshift($queries, $sequence);
|
||||
}
|
||||
if ($comment !== null) {
|
||||
$queries[] = "COMMENT ON TABLE " . table($name) . " IS " . q($comment);
|
||||
}
|
||||
@@ -771,6 +770,8 @@ AND typelem = 0"
|
||||
}
|
||||
|
||||
function create_sql($table, $auto_increment, $style) {
|
||||
global $connection;
|
||||
$return = '';
|
||||
$return_parts = array();
|
||||
$sequences = array();
|
||||
|
||||
@@ -800,15 +801,13 @@ AND typelem = 0"
|
||||
// sequences for fields
|
||||
if (preg_match('~nextval\(\'([^\']+)\'\)~', $field['default'], $matches)) {
|
||||
$sequence_name = $matches[1];
|
||||
$sq = reset(get_rows(min_version(10)
|
||||
$rows = get_rows(min_version(10)
|
||||
? "SELECT *, cache_size AS cache_value FROM pg_sequences WHERE schemaname = current_schema() AND sequencename = " . q(idf_unescape($sequence_name))
|
||||
: "SELECT * FROM $sequence_name"
|
||||
));
|
||||
);
|
||||
$sq = reset($rows);
|
||||
$sequences[] = ($style == "DROP+CREATE" ? "DROP SEQUENCE IF EXISTS $sequence_name;\n" : "")
|
||||
. "CREATE SEQUENCE $sequence_name INCREMENT $sq[increment_by] MINVALUE $sq[min_value] MAXVALUE $sq[max_value]"
|
||||
. ($auto_increment && $sq['last_value'] ? " START " . ($sq["last_value"] + 1) : "")
|
||||
. " CACHE $sq[cache_value];"
|
||||
;
|
||||
. "CREATE SEQUENCE $sequence_name INCREMENT $sq[increment_by] MINVALUE $sq[min_value] MAXVALUE $sq[max_value]" . ($auto_increment && $sq['last_value'] ? " START $sq[last_value]" : "") . " CACHE $sq[cache_value];";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -842,7 +841,7 @@ AND typelem = 0"
|
||||
}
|
||||
}
|
||||
|
||||
// comments for table & fields
|
||||
// coments for table & fields
|
||||
if ($status['Comment']) {
|
||||
$return .= "\n\nCOMMENT ON TABLE " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " IS " . q($status['Comment']) . ";";
|
||||
}
|
||||
@@ -879,13 +878,11 @@ AND typelem = 0"
|
||||
return get_key_vals("SHOW ALL");
|
||||
}
|
||||
|
||||
function is_c_style_escapes() {
|
||||
static $c_style = null;
|
||||
if ($c_style === null) {
|
||||
$vals = get_vals("SHOW standard_conforming_strings");
|
||||
$c_style = $vals[0] == "off";
|
||||
}
|
||||
return $c_style;
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function is_strict_mode() {
|
||||
return false;
|
||||
}
|
||||
|
||||
function process_list() {
|
||||
|
||||
@@ -47,7 +47,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
|
||||
return false;
|
||||
}
|
||||
$row = $result->_result->fetchArray();
|
||||
return $row ? $row[$field] : false;
|
||||
return $row[$field];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -319,9 +319,9 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
|
||||
"field" => $name,
|
||||
"type" => (preg_match('~int~i', $type) ? "integer" : (preg_match('~char|clob|text~i', $type) ? "text" : (preg_match('~blob~i', $type) ? "blob" : (preg_match('~real|floa|doub~i', $type) ? "real" : "numeric")))),
|
||||
"full_type" => $type,
|
||||
"default" => (preg_match("~^'(.*)'$~", $default, $match) ? str_replace("''", "'", $match[1]) : ($default == "NULL" ? null : $default)),
|
||||
"default" => (preg_match("~'(.*)'~", $default, $match) ? str_replace("''", "'", $match[1]) : ($default == "NULL" ? null : $default)),
|
||||
"null" => !$row["notnull"],
|
||||
"privileges" => array("select" => 1, "insert" => 1, "update" => 1),
|
||||
"privileges" => array("select" => 1, "insert" => 1, "update" => 1, "where" => 1, "order" => 1),
|
||||
"primary" => $row["pk"],
|
||||
);
|
||||
if ($row["pk"]) {
|
||||
@@ -523,7 +523,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
|
||||
return true;
|
||||
}
|
||||
|
||||
function recreate_table($table, $name, $fields, $originals, $foreign, $auto_increment = 0, $indexes = array()) {
|
||||
function recreate_table($table, $name, $fields, $originals, $foreign, $auto_increment, $indexes = array()) {
|
||||
global $connection;
|
||||
if ($table != "") {
|
||||
if (!$fields) {
|
||||
@@ -764,8 +764,11 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
|
||||
return $return;
|
||||
}
|
||||
|
||||
function is_c_style_escapes() {
|
||||
return true;
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
function is_strict_mode() {
|
||||
return false;
|
||||
}
|
||||
|
||||
function show_status() {
|
||||
|
||||
@@ -147,16 +147,14 @@ if ($jush == "sql") { //! use insertUpdate() in all drivers
|
||||
}
|
||||
parse_str($_COOKIE["adminer_export"], $row);
|
||||
if (!$row) {
|
||||
$row = array("output" => "text", "format" => "sql", "db_style" => (DB != "" ? "" : "CREATE"), "table_style" => "DROP+CREATE", "data_style" => "INSERT");
|
||||
$row = array("output" => "file", "format" => "sql", "db_style" => (DB != "" ? "" : "CREATE"), "table_style" => "DROP+CREATE", "data_style" => "INSERT");
|
||||
}
|
||||
if (!isset($row["events"])) { // backwards compatibility
|
||||
$row["routines"] = $row["events"] = ($_GET["dump"] == "");
|
||||
$row["triggers"] = $row["table_style"];
|
||||
}
|
||||
|
||||
echo "<tr><th>" . lang('Output') . "<td>" . html_select("output", $adminer->dumpOutput(), $row["output"], 0) . "\n"; // 0 - radio
|
||||
|
||||
echo "<tr><th>" . lang('Format') . "<td>" . html_select("format", $adminer->dumpFormat(), $row["format"], 0) . "\n"; // 0 - radio
|
||||
echo "<tr><th>" . lang('Format') . "<td>" . html_select("format", $adminer->dumpFormat(), $row["format"], false) . "\n"; // false = radio
|
||||
|
||||
echo ($jush == "sqlite" ? "" : "<tr><th>" . lang('Database') . "<td>" . html_select('db_style', $db_style, $row["db_style"])
|
||||
. (support("routine") ? checkbox("routines", 1, $row["routines"], lang('Routines')) : "")
|
||||
@@ -169,6 +167,9 @@ echo "<tr><th>" . lang('Tables') . "<td>" . html_select('table_style', $table_st
|
||||
;
|
||||
|
||||
echo "<tr><th>" . lang('Data') . "<td>" . html_select('data_style', $data_style, $row["data_style"]);
|
||||
|
||||
echo "<tr><th>" . lang('Output') . "<td>" . html_select("output", $adminer->dumpOutput(), $row["output"], false) . "\n"; // false = radio
|
||||
|
||||
?>
|
||||
</table>
|
||||
<p><input type="submit" value="<?php echo lang('Export'); ?>">
|
||||
|
||||
@@ -4,10 +4,10 @@ function adminer_object() {
|
||||
include_once "../plugins/login-password-less.php";
|
||||
include_once "../plugins/drivers/elastic.php";
|
||||
include_once "../plugins/drivers/elastic5.php";
|
||||
return new AdminerPlugin(array(
|
||||
return new AdminerPlugin([
|
||||
// TODO: inline the result of password_hash() so that the password is not visible in source codes
|
||||
new AdminerLoginPasswordLess(password_hash("YOUR_PASSWORD_HERE", PASSWORD_DEFAULT)),
|
||||
));
|
||||
]);
|
||||
}
|
||||
|
||||
include "./index.php";
|
||||
|
||||
@@ -6,13 +6,13 @@ if ($_GET["file"] == "favicon.ico") {
|
||||
echo lzw_decompress(compile_file('../adminer/static/favicon.ico', 'lzw_compress'));
|
||||
} elseif ($_GET["file"] == "default.css") {
|
||||
header("Content-Type: text/css; charset=utf-8");
|
||||
echo lzw_decompress(compile_file('../adminer/static/default.css;../externals/jush/jush.css', 'minify_css'));
|
||||
echo lzw_decompress(compile_file('../adminer/static/default.css;../vendor/vrana/jush/jush.css', 'minify_css'));
|
||||
} elseif ($_GET["file"] == "functions.js") {
|
||||
header("Content-Type: text/javascript; charset=utf-8");
|
||||
echo lzw_decompress(compile_file('../adminer/static/functions.js;static/editing.js', 'minify_js'));
|
||||
} elseif ($_GET["file"] == "jush.js") {
|
||||
header("Content-Type: text/javascript; charset=utf-8");
|
||||
echo lzw_decompress(compile_file('../externals/jush/modules/jush.js;../externals/jush/modules/jush-textarea.js;../externals/jush/modules/jush-txt.js;../externals/jush/modules/jush-js.js;../externals/jush/modules/jush-sql.js;../externals/jush/modules/jush-pgsql.js;../externals/jush/modules/jush-sqlite.js;../externals/jush/modules/jush-mssql.js;../externals/jush/modules/jush-oracle.js;../externals/jush/modules/jush-simpledb.js', 'minify_js'));
|
||||
echo lzw_decompress(compile_file('../vendor/vrana/jush/modules/jush.js;../vendor/vrana/jush/modules/jush-textarea.js;../vendor/vrana/jush/modules/jush-txt.js;../vendor/vrana/jush/modules/jush-js.js;../vendor/vrana/jush/modules/jush-sql.js;../vendor/vrana/jush/modules/jush-pgsql.js;../vendor/vrana/jush/modules/jush-sqlite.js;../vendor/vrana/jush/modules/jush-mssql.js;../vendor/vrana/jush/modules/jush-oracle.js;../vendor/vrana/jush/modules/jush-simpledb.js', 'minify_js'));
|
||||
} else {
|
||||
header("Content-Type: image/gif");
|
||||
switch ($_GET["file"]) {
|
||||
|
||||
@@ -39,7 +39,7 @@ class Adminer {
|
||||
function bruteForceKey() {
|
||||
return $_SERVER["REMOTE_ADDR"];
|
||||
}
|
||||
|
||||
|
||||
/** Get server name displayed in breadcrumbs
|
||||
* @param string
|
||||
* @return string HTML code or null
|
||||
@@ -96,7 +96,7 @@ class Adminer {
|
||||
*/
|
||||
function head() {
|
||||
?>
|
||||
<link rel="stylesheet" type="text/css" href="../externals/jush/jush.css">
|
||||
<link rel="stylesheet" type="text/css" href="../vendor/vrana/jush/jush.css">
|
||||
<?php
|
||||
return true;
|
||||
}
|
||||
@@ -121,14 +121,14 @@ class Adminer {
|
||||
echo "<table cellspacing='0' class='layout'>\n";
|
||||
echo $this->loginFormField('driver', '<tr><th>' . lang('System') . '<td>', html_select("auth[driver]", $drivers, DRIVER, "loginDriver(this);") . "\n");
|
||||
echo $this->loginFormField('server', '<tr><th>' . lang('Server') . '<td>', '<input name="auth[server]" value="' . h(SERVER) . '" title="hostname[:port]" placeholder="localhost" autocapitalize="off">' . "\n");
|
||||
echo $this->loginFormField('username', '<tr><th>' . lang('Username') . '<td>', '<input name="auth[username]" id="username" autofocus value="' . h($_GET["username"]) . '" autocomplete="username" autocapitalize="off">' . script("qs('#username').form['auth[driver]'].onchange();"));
|
||||
echo $this->loginFormField('username', '<tr><th>' . lang('Username') . '<td>', '<input name="auth[username]" id="username" value="' . h($_GET["username"]) . '" autocomplete="username" autocapitalize="off">' . script("focus(qs('#username')); qs('#username').form['auth[driver]'].onchange();"));
|
||||
echo $this->loginFormField('password', '<tr><th>' . lang('Password') . '<td>', '<input type="password" name="auth[password]" autocomplete="current-password">' . "\n");
|
||||
echo $this->loginFormField('db', '<tr><th>' . lang('Database') . '<td>', '<input name="auth[db]" value="' . h($_GET["db"]) . '" autocapitalize="off">' . "\n");
|
||||
echo "</table>\n";
|
||||
echo "<p><input type='submit' value='" . lang('Login') . "'>\n";
|
||||
echo checkbox("auth[permanent]", 1, $_COOKIE["adminer_permanent"], lang('Permanent login')) . "\n";
|
||||
}
|
||||
|
||||
|
||||
/** Get login form field
|
||||
* @param string
|
||||
* @param string HTML
|
||||
@@ -231,24 +231,33 @@ class Adminer {
|
||||
*/
|
||||
function selectQuery($query, $start, $failed = false) {
|
||||
global $jush, $driver;
|
||||
$return = "</p>\n"; // required for IE9 inline edit
|
||||
|
||||
$supportSql = support("sql");
|
||||
|
||||
$result = "<p>"
|
||||
. "<code class='jush-$jush'>" . h(str_replace("\n", " ", $query)) . "</code> "
|
||||
. "<span class='time'>(" . format_time($start) . ")</span>"
|
||||
. ($supportSql ? " <a href='" . h(ME) . "sql=" . urlencode($query) . "'>" . lang('Edit') . "</a>" : "");
|
||||
|
||||
if (!$failed && ($warnings = $driver->warnings())) {
|
||||
$id = "warnings";
|
||||
$return = ", <a href='#$id'>" . lang('Warnings') . "</a>" . script("qsl('a').onclick = partial(toggle, '$id');", "")
|
||||
. "$return<div id='$id' class='hidden'>\n$warnings</div>\n"
|
||||
;
|
||||
$result = ($supportSql ? "," : "")
|
||||
. " <a href='#$id'>" . lang('Warnings') . "</a>" . script("qsl('a').onclick = partial(toggle, '$id');", "")
|
||||
. "</p>\n"
|
||||
. "<div id='$id' class='hidden'>\n$warnings</div>\n";
|
||||
} else {
|
||||
$result .= "</p>\n";
|
||||
}
|
||||
return "<p><code class='jush-$jush'>" . h(str_replace("\n", " ", $query)) . "</code> <span class='time'>(" . format_time($start) . ")</span>"
|
||||
. (support("sql") ? " <a href='" . h(ME) . "sql=" . urlencode($query) . "'>" . lang('Edit') . "</a>" : "")
|
||||
. $return
|
||||
;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/** Query printed in SQL command before execution
|
||||
* @param string query to be executed
|
||||
* @return string escaped query to be printed
|
||||
*/
|
||||
function sqlCommandQuery($query) {
|
||||
function sqlCommandQuery($query)
|
||||
{
|
||||
return shorten_utf8(trim($query), 1000);
|
||||
}
|
||||
|
||||
@@ -292,7 +301,7 @@ class Adminer {
|
||||
if (preg_match('~json~', $field["type"])) {
|
||||
$return = "<code class='jush-js'>$return</code>";
|
||||
}
|
||||
return ($link ? "<a href='" . h($link) . "'" . (is_url($link) ? target_blank() : "") . ">$return</a>" : $return);
|
||||
return ($link ? "<a href='" . h($link) . "'" . (is_web_url($link) ? target_blank() : "") . ">$return</a>" : $return);
|
||||
}
|
||||
|
||||
/** Value conversion used in select and edit
|
||||
@@ -479,7 +488,7 @@ class Adminer {
|
||||
echo "</script>\n";
|
||||
echo "</div></fieldset>\n";
|
||||
}
|
||||
|
||||
|
||||
/** Print command box in select
|
||||
* @return bool whether to print default commands
|
||||
*/
|
||||
@@ -528,49 +537,60 @@ class Adminer {
|
||||
* @return array expressions to join by AND
|
||||
*/
|
||||
function selectSearchProcess($fields, $indexes) {
|
||||
global $connection, $driver;
|
||||
$return = array();
|
||||
global $driver;
|
||||
|
||||
$return = [];
|
||||
|
||||
foreach ($indexes as $i => $index) {
|
||||
if ($index["type"] == "FULLTEXT" && $_GET["fulltext"][$i] != "") {
|
||||
$return[] = "MATCH (" . implode(", ", array_map('idf_escape', $index["columns"])) . ") AGAINST (" . q($_GET["fulltext"][$i]) . (isset($_GET["boolean"][$i]) ? " IN BOOLEAN MODE" : "") . ")";
|
||||
}
|
||||
}
|
||||
foreach ((array) $_GET["where"] as $key => $val) {
|
||||
if ("$val[col]$val[val]" != "" && in_array($val["op"], $this->operators)) {
|
||||
|
||||
foreach ((array) $_GET["where"] as $where) {
|
||||
$col = $where["col"];
|
||||
$op = $where["op"];
|
||||
$val = $where["val"];
|
||||
|
||||
if ("$col$val" != "" && in_array($op, $this->operators)) {
|
||||
$prefix = "";
|
||||
$cond = " $val[op]";
|
||||
if (preg_match('~IN$~', $val["op"])) {
|
||||
$in = process_length($val["val"]);
|
||||
$cond = " $op";
|
||||
|
||||
if (preg_match('~IN$~', $op)) {
|
||||
$in = process_length($val);
|
||||
$cond .= " " . ($in != "" ? $in : "(NULL)");
|
||||
} elseif ($val["op"] == "SQL") {
|
||||
$cond = " $val[val]"; // SQL injection
|
||||
} elseif ($val["op"] == "LIKE %%") {
|
||||
$cond = " LIKE " . $this->processInput($fields[$val["col"]], "%$val[val]%");
|
||||
} elseif ($val["op"] == "ILIKE %%") {
|
||||
$cond = " ILIKE " . $this->processInput($fields[$val["col"]], "%$val[val]%");
|
||||
} elseif ($val["op"] == "FIND_IN_SET") {
|
||||
$prefix = "$val[op](" . q($val["val"]) . ", ";
|
||||
} elseif ($op == "SQL") {
|
||||
$cond = " $val"; // SQL injection
|
||||
} elseif ($op == "LIKE %%") {
|
||||
$cond = " LIKE " . $this->processInput($fields[$col], "%$val%");
|
||||
} elseif ($op == "ILIKE %%") {
|
||||
$cond = " ILIKE " . $this->processInput($fields[$col], "%$val%");
|
||||
} elseif ($op == "FIND_IN_SET") {
|
||||
$prefix = "$op(" . q($val) . ", ";
|
||||
$cond = ")";
|
||||
} elseif (!preg_match('~NULL$~', $val["op"])) {
|
||||
$cond .= " " . $this->processInput($fields[$val["col"]], $val["val"]);
|
||||
} elseif (!preg_match('~NULL$~', $op)) {
|
||||
$cond .= " " . $this->processInput($fields[$col], $val);
|
||||
}
|
||||
if ($val["col"] != "") {
|
||||
$return[] = $prefix . $driver->convertSearch(idf_escape($val["col"]), $val, $fields[$val["col"]]) . $cond;
|
||||
|
||||
if ($col != "") {
|
||||
$return[] = $prefix . $driver->convertSearch(idf_escape($col), $where, $fields[$col]) . $cond;
|
||||
} else {
|
||||
// find anywhere
|
||||
$cols = array();
|
||||
foreach ($fields as $name => $field) {
|
||||
if ((preg_match('~^[-\d.' . (preg_match('~IN$~', $val["op"]) ? ',' : '') . ']+$~', $val["val"]) || !preg_match('~' . number_type() . '|bit~', $field["type"]))
|
||||
&& (!preg_match("~[\x80-\xFF]~", $val["val"]) || preg_match('~char|text|enum|set~', $field["type"]))
|
||||
&& (!preg_match('~date|timestamp~', $field["type"]) || preg_match('~^\d+-\d+-\d+~', $val["val"]))
|
||||
if (isset($field["privileges"]["where"])
|
||||
&& (preg_match('~^[-\d.' . (preg_match('~IN$~', $op) ? ',' : '') . ']+$~', $val) || !preg_match('~' . number_type() . '|bit~', $field["type"]))
|
||||
&& (!preg_match("~[\x80-\xFF]~", $val) || preg_match('~char|text|enum|set~', $field["type"]))
|
||||
&& (!preg_match('~date|timestamp~', $field["type"]) || preg_match('~^\d+-\d+-\d+~', $val))
|
||||
) {
|
||||
$cols[] = $prefix . $driver->convertSearch(idf_escape($name), $val, $field) . $cond;
|
||||
$cols[] = $prefix . $driver->convertSearch(idf_escape($name), $where, $field) . $cond;
|
||||
}
|
||||
}
|
||||
$return[] = ($cols ? "(" . implode(" OR ", $cols) . ")" : "1 = 0");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
@@ -753,10 +773,11 @@ class Adminer {
|
||||
* @return array
|
||||
*/
|
||||
function dumpOutput() {
|
||||
$return = array('text' => lang('open'), 'file' => lang('save'));
|
||||
$return = array('file' => lang('save'), 'text' => lang('open'));
|
||||
if (function_exists('gzencode')) {
|
||||
$return['gz'] = 'gzip';
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
@@ -830,7 +851,7 @@ class Adminer {
|
||||
$insert = "";
|
||||
$buffer = "";
|
||||
$keys = array();
|
||||
$generated = array();
|
||||
$generatedKeys = array();
|
||||
$suffix = "";
|
||||
$fetch_function = ($table != '' ? 'fetch_assoc' : 'fetch_row');
|
||||
while ($row = $result->$fetch_function()) {
|
||||
@@ -838,10 +859,10 @@ class Adminer {
|
||||
$values = array();
|
||||
foreach ($row as $val) {
|
||||
$field = $result->fetch_field();
|
||||
if ($fields[$field->name]['generated']) {
|
||||
$generated[$field->name] = true;
|
||||
if (!empty($fields[$field->name]['generated'])) {
|
||||
$generatedKeys[$field->name] = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$keys[] = $field->name;
|
||||
$key = idf_escape($field->name);
|
||||
$values[] = "$key = VALUES($key)";
|
||||
@@ -859,10 +880,10 @@ class Adminer {
|
||||
$insert = "INSERT INTO " . table($table) . " (" . implode(", ", array_map('idf_escape', $keys)) . ") VALUES";
|
||||
}
|
||||
foreach ($row as $key => $val) {
|
||||
if ($generated[$key]) {
|
||||
if (isset($generatedKeys[$key])) {
|
||||
unset($row[$key]);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
$field = $fields[$key];
|
||||
$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)))
|
||||
@@ -942,11 +963,11 @@ class Adminer {
|
||||
global $VERSION, $jush, $drivers, $connection;
|
||||
?>
|
||||
<h1>
|
||||
<?php echo $this->name(); ?>
|
||||
<span class="version">
|
||||
<?php echo $VERSION; ?>
|
||||
<a href="https://www.adminer.org/#download"<?php echo target_blank(); ?> id="version"><?php echo (version_compare($VERSION, $_COOKIE["adminer_version"]) < 0 ? h($_COOKIE["adminer_version"]) : ""); ?></a>
|
||||
</span>
|
||||
<?php echo $this->name(); ?>
|
||||
<?php if ($missing != "auth"): ?>
|
||||
<span class="version"><?php echo $VERSION; ?></span>
|
||||
<a href="https://www.adminer.org/#download"<?php echo target_blank(); ?> id="version"><?php echo (version_compare($VERSION, $_COOKIE["adminer_version"]) < 0 ? h($_COOKIE["adminer_version"]) : ""); ?></a>
|
||||
<?php endif; ?>
|
||||
</h1>
|
||||
<?php
|
||||
if ($missing == "auth") {
|
||||
@@ -972,12 +993,12 @@ class Adminer {
|
||||
$connection->select_db(DB);
|
||||
$tables = table_status('', true);
|
||||
}
|
||||
echo script_src("../externals/jush/modules/jush.js");
|
||||
echo script_src("../externals/jush/modules/jush-textarea.js");
|
||||
echo script_src("../externals/jush/modules/jush-txt.js");
|
||||
echo script_src("../externals/jush/modules/jush-js.js");
|
||||
echo script_src("../vendor/vrana/jush/modules/jush.js");
|
||||
echo script_src("../vendor/vrana/jush/modules/jush-textarea.js");
|
||||
echo script_src("../vendor/vrana/jush/modules/jush-txt.js");
|
||||
echo script_src("../vendor/vrana/jush/modules/jush-js.js");
|
||||
if (support("sql")) {
|
||||
echo script_src("../externals/jush/modules/jush-$jush.js");
|
||||
echo script_src("../vendor/vrana/jush/modules/jush-$jush.js");
|
||||
?>
|
||||
<script<?php echo nonce(); ?>>
|
||||
<?php
|
||||
@@ -998,26 +1019,18 @@ bodyLoad('<?php echo (is_object($connection) ? preg_replace('~^(\d\.?\d).*~s', '
|
||||
<?php
|
||||
}
|
||||
$this->databasesPrint($missing);
|
||||
$actions = array();
|
||||
if (DB == "" || !$missing) {
|
||||
if (support("sql")) {
|
||||
$actions[] = "<a href='" . h(ME) . "sql='" . bold(isset($_GET["sql"]) && !isset($_GET["import"])) . ">" . lang('SQL command') . "</a>";
|
||||
$actions[] = "<a href='" . h(ME) . "import='" . bold(isset($_GET["import"])) . ">" . lang('Import') . "</a>";
|
||||
}
|
||||
echo "<p class='links'>" . (support("sql") ? "<a href='" . h(ME) . "sql='" . bold(isset($_GET["sql"]) && !isset($_GET["import"])) . ">" . lang('SQL command') . "</a>\n<a href='" . h(ME) . "import='" . bold(isset($_GET["import"])) . ">" . lang('Import') . "</a>\n" : "") . "";
|
||||
if (support("dump")) {
|
||||
$actions[] = "<a href='" . h(ME) . "dump=" . urlencode(isset($_GET["table"]) ? $_GET["table"] : $_GET["select"]) . "' id='dump'" . bold(isset($_GET["dump"])) . ">" . lang('Export') . "</a>";
|
||||
echo "<a href='" . h(ME) . "dump=" . urlencode(isset($_GET["table"]) ? $_GET["table"] : $_GET["select"]) . "' id='dump'" . bold(isset($_GET["dump"])) . ">" . lang('Export') . "</a>\n";
|
||||
}
|
||||
}
|
||||
$in_db = $_GET["ns"] !== "" && !$missing && DB != "";
|
||||
if ($in_db) {
|
||||
$actions[] = '<a href="' . h(ME) . 'create="' . bold($_GET["create"] === "") . ">" . lang('Create table') . "</a>";
|
||||
}
|
||||
echo ($actions ? "<p class='links'>\n" . implode("\n", $actions) . "\n" : "");
|
||||
if ($in_db) {
|
||||
if ($tables) {
|
||||
$this->tablesPrint($tables);
|
||||
if ($_GET["ns"] !== "" && !$missing && DB != "") {
|
||||
echo '<a href="' . h(ME) . 'create="' . bold($_GET["create"] === "") . ">" . lang('Create table') . "</a>\n";
|
||||
if (!$tables) {
|
||||
echo "<p class='message'>" . lang('No tables.') . "\n";
|
||||
} else {
|
||||
echo "<p class='message'>" . lang('No tables.') . "</p>\n";
|
||||
$this->tablesPrint($tables);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1039,7 +1052,7 @@ bodyLoad('<?php echo (is_object($connection) ? preg_replace('~^(\d\.?\d).*~s', '
|
||||
<?php
|
||||
hidden_fields_get();
|
||||
$db_events = script("mixin(qsl('select'), {onmousedown: dbMouseDown, onchange: dbChange});");
|
||||
echo "<span title='" . lang('Database') . "'>" . lang('DB') . "</span>: " . ($databases
|
||||
echo "<span title='" . lang('database') . "'>" . lang('DB') . "</span>: " . ($databases
|
||||
? "<select name='db'>" . optionlist(array("" => "") + $databases, DB) . "</select>$db_events"
|
||||
: "<input name='db' value='" . h(DB) . "' autocapitalize='off'>\n"
|
||||
);
|
||||
|
||||
@@ -15,6 +15,71 @@ 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.'));
|
||||
}
|
||||
|
||||
// Note that "localhost" and IP address without a scheme is parsed as a path.
|
||||
$hostPath = (isset($parts['host']) ? $parts['host'] : '') . (isset($parts['path']) ? $parts['path'] : '');
|
||||
|
||||
// Validate host.
|
||||
if (!is_server_host_valid($hostPath)) {
|
||||
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.'));
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('is_server_host_valid')) {
|
||||
/**
|
||||
* @param string $hostPath
|
||||
* @return bool
|
||||
*/
|
||||
function is_server_host_valid($hostPath)
|
||||
{
|
||||
return strpos($hostPath, '/') === false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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() {
|
||||
global $adminer;
|
||||
$fp = file_open_lock(get_temp_dir() . "/adminer.invalid");
|
||||
@@ -52,7 +117,7 @@ $auth = $_POST["auth"];
|
||||
if ($auth) {
|
||||
session_regenerate_id(); // defense against session fixation
|
||||
$vendor = $auth["driver"];
|
||||
$server = $auth["server"];
|
||||
$server = trim($auth["server"]);
|
||||
$username = $auth["username"];
|
||||
$password = (string) $auth["password"];
|
||||
$db = $auth["db"];
|
||||
@@ -72,14 +137,14 @@ if ($auth) {
|
||||
) {
|
||||
redirect(auth_url($vendor, $server, $username, $db));
|
||||
}
|
||||
|
||||
|
||||
} elseif ($_POST["logout"] && (!$has_token || verify_token())) {
|
||||
foreach (array("pwds", "db", "dbs", "queries") as $key) {
|
||||
set_session($key, null);
|
||||
}
|
||||
unset_permanent();
|
||||
redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1), lang('Logout successful.') . ' ' . lang('Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.'));
|
||||
|
||||
|
||||
} elseif ($permanent && !$_SESSION["pwds"]) {
|
||||
session_regenerate_id();
|
||||
$private = $adminer->permanentLogin();
|
||||
@@ -155,18 +220,16 @@ if (isset($_GET["username"]) && !class_exists("Min_DB")) {
|
||||
stop_session(true);
|
||||
|
||||
if (isset($_GET["username"]) && is_string(get_password())) {
|
||||
list($host, $port) = explode(":", SERVER, 2);
|
||||
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.'));
|
||||
}
|
||||
validate_server_input();
|
||||
check_invalid_login();
|
||||
|
||||
$connection = connect();
|
||||
$driver = new Min_Driver($connection);
|
||||
}
|
||||
|
||||
$login = null;
|
||||
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.') : ''));
|
||||
}
|
||||
|
||||
@@ -199,7 +262,7 @@ if ($_POST) {
|
||||
: lang('Invalid CSRF token. Send the form again.') . ' ' . lang('If you did not send this request from Adminer then close this page.')
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
} elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
// posted form with no data means that post_max_size exceeded because Adminer always sends token at least
|
||||
$error = lang('Too big POST data. Reduce the data or increase the %s configuration directive.', "'post_max_size'");
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
<?php
|
||||
include "../adminer/include/version.inc.php";
|
||||
include "../adminer/include/errors.inc.php";
|
||||
function adminer_errors($errno, $errstr) {
|
||||
return (bool)preg_match('~^(Trying to access array offset on( value of type)? null|Undefined array key)~', $errstr);
|
||||
}
|
||||
|
||||
error_reporting(6135); // errors and warnings
|
||||
set_error_handler('adminer_errors', E_WARNING);
|
||||
|
||||
include "../adminer/include/coverage.inc.php";
|
||||
|
||||
// disable filter.default
|
||||
@@ -103,6 +108,7 @@ define("ME", preg_replace('~\?.*~', '', relative_uri()) . '?'
|
||||
. (DB != "" ? 'db=' . urlencode(DB) . '&' . (isset($_GET["ns"]) ? "ns=" . urlencode($_GET["ns"]) . "&" : "") : '')
|
||||
);
|
||||
|
||||
include "../adminer/include/version.inc.php";
|
||||
include "../adminer/include/design.inc.php";
|
||||
include "../adminer/include/xxtea.inc.php";
|
||||
include "../adminer/include/auth.inc.php";
|
||||
|
||||
@@ -68,25 +68,25 @@ var thousandsSeparator = '<?php echo js_escape(lang(',')); ?>';
|
||||
<?php
|
||||
if ($breadcrumb !== null) {
|
||||
$link = substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1);
|
||||
echo '<p id="breadcrumb"><a href="' . h($link ? $link : ".") . '">' . $drivers[DRIVER] . '</a> » ';
|
||||
echo '<p id="breadcrumb"><a href="' . h($link ? $link : ".") . '">' . $drivers[DRIVER] . '</a> » ';
|
||||
$link = substr(preg_replace('~\b(db|ns)=[^&]*&~', '', ME), 0, -1);
|
||||
$server = $adminer->serverName(SERVER);
|
||||
$server = ($server != "" ? $server : lang('Server'));
|
||||
if ($breadcrumb === false) {
|
||||
echo "$server\n";
|
||||
} else {
|
||||
echo "<a href='" . h($link) . "' accesskey='1' title='Alt+Shift+1'>$server</a> » ";
|
||||
echo "<a href='" . h($link) . "' accesskey='1' title='Alt+Shift+1'>$server</a> » ";
|
||||
if ($_GET["ns"] != "" || (DB != "" && is_array($breadcrumb))) {
|
||||
echo '<a href="' . h($link . "&db=" . urlencode(DB) . (support("scheme") ? "&ns=" : "")) . '">' . h(DB) . '</a> » ';
|
||||
echo '<a href="' . h($link . "&db=" . urlencode(DB) . (support("scheme") ? "&ns=" : "")) . '">' . h(DB) . '</a> » ';
|
||||
}
|
||||
if (is_array($breadcrumb)) {
|
||||
if ($_GET["ns"] != "") {
|
||||
echo '<a href="' . h(substr(ME, 0, -1)) . '">' . h($_GET["ns"]) . '</a> » ';
|
||||
echo '<a href="' . h(substr(ME, 0, -1)) . '">' . h($_GET["ns"]) . '</a> » ';
|
||||
}
|
||||
foreach ($breadcrumb as $key => $val) {
|
||||
$desc = (is_array($val) ? $val[1] : h($val));
|
||||
if ($desc != "") {
|
||||
echo "<a href='" . h(ME . "$key=") . urlencode(is_array($val) ? $val[0] : $val) . "'>$desc</a> » ";
|
||||
echo "<a href='" . h(ME . "$key=") . urlencode(is_array($val) ? $val[0] : $val) . "'>$desc</a> » ";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -182,7 +182,6 @@ function page_footer($missing = "") {
|
||||
<?php if ($missing != "auth") { ?>
|
||||
<form action="" method="post">
|
||||
<p class="logout">
|
||||
<?php echo h($_GET["username"]) . "\n"; ?>
|
||||
<input type="submit" name="logout" value="<?php echo lang('Logout'); ?>" id="logout">
|
||||
<input type="hidden" name="token" value="<?php echo $token; ?>">
|
||||
</p>
|
||||
|
||||
@@ -22,14 +22,14 @@ function get_driver($id) {
|
||||
|
||||
/*abstract*/ class Min_SQL {
|
||||
var $_conn;
|
||||
|
||||
|
||||
/** Create object for performing database operations
|
||||
* @param Min_DB
|
||||
*/
|
||||
function __construct($connection) {
|
||||
$this->_conn = $connection;
|
||||
}
|
||||
|
||||
|
||||
/** Select data from table
|
||||
* @param string
|
||||
* @param array result of $adminer->selectColumnsProcess()[0]
|
||||
@@ -61,7 +61,7 @@ function get_driver($id) {
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
/** Delete data from table
|
||||
* @param string
|
||||
* @param string " WHERE ..."
|
||||
@@ -72,7 +72,7 @@ function get_driver($id) {
|
||||
$query = "FROM " . table($table);
|
||||
return queries("DELETE" . ($limit ? limit1($table, $query, $queryWhere) : " $query$queryWhere"));
|
||||
}
|
||||
|
||||
|
||||
/** Update data in table
|
||||
* @param string
|
||||
* @param array escaped columns in keys, quoted data in values
|
||||
@@ -89,7 +89,7 @@ function get_driver($id) {
|
||||
$query = table($table) . " SET$separator" . implode(",$separator", $values);
|
||||
return queries("UPDATE" . ($limit ? limit1($table, $query, $queryWhere, $separator) : " $query$queryWhere"));
|
||||
}
|
||||
|
||||
|
||||
/** Insert data into table
|
||||
* @param string
|
||||
* @param array escaped columns in keys, quoted data in values
|
||||
@@ -101,7 +101,7 @@ function get_driver($id) {
|
||||
: " DEFAULT VALUES"
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
/** Insert or update data in table
|
||||
* @param string
|
||||
* @param array
|
||||
@@ -111,28 +111,28 @@ function get_driver($id) {
|
||||
/*abstract*/ function insertUpdate($table, $rows, $primary) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/** Begin transaction
|
||||
* @return bool
|
||||
*/
|
||||
function begin() {
|
||||
return queries("BEGIN");
|
||||
}
|
||||
|
||||
|
||||
/** Commit transaction
|
||||
* @return bool
|
||||
*/
|
||||
function commit() {
|
||||
return queries("COMMIT");
|
||||
}
|
||||
|
||||
|
||||
/** Rollback transaction
|
||||
* @return bool
|
||||
*/
|
||||
function rollback() {
|
||||
return queries("ROLLBACK");
|
||||
}
|
||||
|
||||
|
||||
/** Return query with a timeout
|
||||
* @param string
|
||||
* @param int seconds
|
||||
@@ -140,21 +140,21 @@ function get_driver($id) {
|
||||
*/
|
||||
function slowQuery($query, $timeout) {
|
||||
}
|
||||
|
||||
|
||||
/** Convert column to be searchable
|
||||
* @param string escaped column name
|
||||
* @param array array("op" => , "val" => )
|
||||
* @param array
|
||||
* @return string
|
||||
*/
|
||||
function convertSearch($idf, $val, $field) {
|
||||
function convertSearch($idf, array $where, array $field) {
|
||||
return $idf;
|
||||
}
|
||||
|
||||
/** Convert operator so it can be used in search
|
||||
* @param string $operator
|
||||
* @return string
|
||||
*/
|
||||
* @param string $operator
|
||||
* @return string
|
||||
*/
|
||||
function convertOperator($operator) {
|
||||
return $operator;
|
||||
}
|
||||
@@ -178,19 +178,19 @@ function get_driver($id) {
|
||||
function quoteBinary($s) {
|
||||
return q($s);
|
||||
}
|
||||
|
||||
|
||||
/** Get warnings about the last command
|
||||
* @return string HTML
|
||||
*/
|
||||
function warnings() {
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
/** Get help link for table
|
||||
* @param string
|
||||
* @return string relative URL or null
|
||||
*/
|
||||
function tableHelp($name) {
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
<?php
|
||||
// This file is not used in Adminer Editor.
|
||||
|
||||
/** Print select result
|
||||
* @param Min_Result
|
||||
* @param Min_DB connection to examine indexes
|
||||
@@ -23,11 +21,11 @@ function select($result, $connection2 = null, $orgtables = array(), $limit = 0)
|
||||
echo "<table cellspacing='0' class='nowrap'>\n";
|
||||
echo "<thead><tr>";
|
||||
for ($j=0; $j < count($row); $j++) {
|
||||
$field = $result->fetch_field();
|
||||
$name = $field->name;
|
||||
$orgtable = $field->orgtable;
|
||||
$orgname = $field->orgname;
|
||||
$return[$field->table] = $orgtable;
|
||||
$field = (array)$result->fetch_field();
|
||||
$name = $field["name"];
|
||||
$orgtable = $field["orgtable"];
|
||||
$orgname = $field["orgname"];
|
||||
$return[$field["table"]] = $orgtable;
|
||||
if ($orgtables && $jush == "sql") { // MySQL EXPLAIN
|
||||
$links[$j] = ($name == "table" ? "table=" : ($name == "possible_keys" ? "indexes=" : null));
|
||||
} elseif ($orgtable != "") {
|
||||
@@ -48,11 +46,11 @@ function select($result, $connection2 = null, $orgtables = array(), $limit = 0)
|
||||
$links[$j] = $orgtable;
|
||||
}
|
||||
}
|
||||
if ($field->charsetnr == 63) { // 63 - binary
|
||||
if ($field["charsetnr"] == 63) { // 63 - binary
|
||||
$blobs[$j] = true;
|
||||
}
|
||||
$types[$j] = $field->type;
|
||||
echo "<th" . ($orgtable != "" || $field->name != $orgname ? " title='" . h(($orgtable != "" ? "$orgtable." : "") . $orgname) . "'" : "") . ">" . h($name)
|
||||
$types[$j] = $field["type"];
|
||||
echo "<th" . ($orgtable != "" || $field["name"] != $orgname ? " title='" . h(($orgtable != "" ? "$orgtable." : "") . $orgname) . "'" : "") . ">" . h($name)
|
||||
. ($orgtables ? doc_link(array(
|
||||
'sql' => "explain-output.html#explain_" . strtolower($name),
|
||||
'mariadb' => "explain/#the-columns-in-explain-select",
|
||||
@@ -74,7 +72,7 @@ function select($result, $connection2 = null, $orgtables = array(), $limit = 0)
|
||||
$link .= "&where" . urlencode("[" . bracket_escape($col) . "]") . "=" . urlencode($row[$j]);
|
||||
}
|
||||
}
|
||||
} elseif (is_url($val)) {
|
||||
} elseif (is_web_url($val)) {
|
||||
$link = $val;
|
||||
}
|
||||
if ($val === null) {
|
||||
@@ -88,7 +86,7 @@ function select($result, $connection2 = null, $orgtables = array(), $limit = 0)
|
||||
}
|
||||
}
|
||||
if ($link) {
|
||||
$val = "<a href='" . h($link) . "'" . (is_url($link) ? target_blank() : '') . ">$val</a>";
|
||||
$val = "<a href='" . h($link) . "'" . (is_web_url($link) ? target_blank() : '') . ">$val</a>";
|
||||
}
|
||||
echo "<td>$val";
|
||||
}
|
||||
@@ -164,41 +162,6 @@ function textarea($name, $value, $rows = 10, $cols = 80) {
|
||||
echo "</textarea>";
|
||||
}
|
||||
|
||||
/** Generate HTML <select> or <input> if $options are empty
|
||||
* @param string
|
||||
* @param array
|
||||
* @param string
|
||||
* @param string
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function select_input($attrs, $options, $value = "", $onchange = "", $placeholder = "") {
|
||||
$tag = ($options ? "select" : "input");
|
||||
return "<$tag$attrs" . ($options
|
||||
? "><option value=''>$placeholder" . optionlist($options, $value, true) . "</select>"
|
||||
: " size='10' value='" . h($value) . "' placeholder='$placeholder'>"
|
||||
) . ($onchange ? script("qsl('$tag').onchange = $onchange;", "") : ""); //! use oninput for input
|
||||
}
|
||||
|
||||
/** Print one row in JSON object
|
||||
* @param string or "" to close the object
|
||||
* @param string
|
||||
* @return null
|
||||
*/
|
||||
function json_row($key, $val = null) {
|
||||
static $first = true;
|
||||
if ($first) {
|
||||
echo "{";
|
||||
}
|
||||
if ($key != "") {
|
||||
echo ($first ? "" : ",") . "\n\t\"" . addcslashes($key, "\r\n\t\"\\/") . '": ' . ($val !== null ? '"' . addcslashes($val, "\r\n\"\\/") . '"' : 'null');
|
||||
$first = false;
|
||||
} else {
|
||||
echo "\n}\n";
|
||||
$first = true;
|
||||
}
|
||||
}
|
||||
|
||||
/** Print table columns for type edit
|
||||
* @param string
|
||||
* @param array
|
||||
@@ -226,22 +189,6 @@ echo optionlist(array_merge($extra_types, $structured_types), $type);
|
||||
echo ($foreign_keys ? "<select name='" . h($key) . "[on_delete]'" . (preg_match("~`~", $type) ? "" : " class='hidden'") . "><option value=''>(" . lang('ON DELETE') . ")" . optionlist(explode("|", $on_actions), $field["on_delete"]) . "</select> " : " "); // space for IE
|
||||
}
|
||||
|
||||
/** Get partition info
|
||||
* @param string
|
||||
* @return array
|
||||
*/
|
||||
function get_partitions_info($table) {
|
||||
global $connection;
|
||||
$from = "FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = " . q(DB) . " AND TABLE_NAME = " . q($table);
|
||||
$result = $connection->query("SELECT PARTITION_METHOD, PARTITION_EXPRESSION, PARTITION_ORDINAL_POSITION $from ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");
|
||||
$return = array();
|
||||
list($return["partition_by"], $return["partition"], $return["partitions"]) = $result->fetch_row();
|
||||
$partitions = get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $from AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");
|
||||
$return["partition_names"] = array_keys($partitions);
|
||||
$return["partition_values"] = array_values($partitions);
|
||||
return $return;
|
||||
}
|
||||
|
||||
/** Filter length value including enums
|
||||
* @param string
|
||||
* @return string
|
||||
@@ -274,10 +221,6 @@ function process_type($field, $collate = "COLLATE") {
|
||||
* @return array array("field", "type", "NULL", "DEFAULT", "ON UPDATE", "COMMENT", "AUTO_INCREMENT")
|
||||
*/
|
||||
function process_field($field, $type_field) {
|
||||
// MariaDB exports CURRENT_TIMESTAMP as a function.
|
||||
if ($field["on_update"]) {
|
||||
$field["on_update"] = str_ireplace("current_timestamp()", "CURRENT_TIMESTAMP", $field["on_update"]);
|
||||
}
|
||||
return array(
|
||||
idf_escape(trim($field["field"])),
|
||||
process_type($type_field),
|
||||
@@ -294,12 +237,16 @@ function process_field($field, $type_field) {
|
||||
* @return string
|
||||
*/
|
||||
function default_value($field) {
|
||||
global $jush;
|
||||
$default = $field["default"];
|
||||
return ($default === null ? "" : " DEFAULT " .
|
||||
(!preg_match('~^GENERATED ~i', $default) && (preg_match('~char|binary|text|enum|set~', $field["type"]) || preg_match('~^(?![a-z])~i', $default))
|
||||
? q($default) : str_ireplace("current_timestamp()", "CURRENT_TIMESTAMP", ($jush == "sqlite" ? "($default)" : $default)))
|
||||
);
|
||||
if ($default === null) return "";
|
||||
|
||||
if (preg_match('~^GENERATED ~i', $default)) {
|
||||
return " $default";
|
||||
}
|
||||
|
||||
$quote = preg_match('~char|binary|text|enum|set~', $field["type"]) || preg_match('~^(?![a-z])~i', $default);
|
||||
|
||||
return " DEFAULT " . ($quote ? q($default) : $default);
|
||||
}
|
||||
|
||||
/** Get type class to use in CSS
|
||||
@@ -576,9 +523,9 @@ function tar_file($filename, $tmp_file) {
|
||||
function ini_bytes($ini) {
|
||||
$val = ini_get($ini);
|
||||
switch (strtolower(substr($val, -1))) {
|
||||
case 'g': $val = (int)$val * 1024; // no break
|
||||
case 'm': $val = (int)$val * 1024; // no break
|
||||
case 'k': $val = (int)$val * 1024;
|
||||
case 'g': $val *= 1024; // no break
|
||||
case 'm': $val *= 1024; // no break
|
||||
case 'k': $val *= 1024;
|
||||
}
|
||||
return $val;
|
||||
}
|
||||
@@ -600,7 +547,7 @@ function doc_link($paths, $text = "<sup>?</sup>") {
|
||||
'oracle' => "https://www.oracle.com/pls/topic/lookup?ctx=db" . preg_replace('~^.* (\d+)\.(\d+)\.\d+\.\d+\.\d+.*~s', '\1\2', $server_info) . "&id=",
|
||||
);
|
||||
if (preg_match('~MariaDB~', $server_info)) {
|
||||
$urls['sql'] = "https://mariadb.com/kb/en/";
|
||||
$urls['sql'] = "https://mariadb.com/kb/en/library/";
|
||||
$paths['sql'] = (isset($paths['mariadb']) ? $paths['mariadb'] : str_replace(".html", "/", $paths['sql']));
|
||||
}
|
||||
return ($paths[$jush] ? "<a href='" . h($urls[$jush] . $paths[$jush]) . "'" . target_blank() . ">$text</a>" : "");
|
||||
@@ -611,7 +558,7 @@ function doc_link($paths, $text = "<sup>?</sup>") {
|
||||
* @return string
|
||||
*/
|
||||
function ob_gzencode($string) {
|
||||
// ob_start() callback receives an optional parameter $phase but gzencode() accepts optional parameter $level
|
||||
// ob_start() callback recieves an optional parameter $phase but gzencode() accepts optional parameter $level
|
||||
return gzencode($string);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<?php
|
||||
function adminer_errors($errno, $errstr) {
|
||||
return !!preg_match('~^(Trying to access array offset on( value of type)? null|Undefined (array key|property))~', $errstr);
|
||||
}
|
||||
|
||||
error_reporting(6135); // errors and warnings
|
||||
set_error_handler('adminer_errors', E_WARNING);
|
||||
@@ -1,6 +1,4 @@
|
||||
<?php
|
||||
// This file is used both in Adminer and Adminer Editor.
|
||||
|
||||
/** Get database connection
|
||||
* @return Min_DB
|
||||
*/
|
||||
@@ -109,7 +107,7 @@ function min_version($version, $maria_db = "", $connection2 = null) {
|
||||
$server_info = $match[1];
|
||||
$version = $maria_db;
|
||||
}
|
||||
return $version && version_compare($server_info, $version) >= 0;
|
||||
return (version_compare($server_info, $version) >= 0);
|
||||
}
|
||||
|
||||
/** Get connection charset
|
||||
@@ -215,7 +213,7 @@ function optionlist($options, $selected = null, $use_keys = false) {
|
||||
* @param string
|
||||
* @param array
|
||||
* @param string
|
||||
* @param string true for no onchange, false for radio
|
||||
* @param string|bool true for no onchange, false for radio
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
@@ -234,6 +232,22 @@ function html_select($name, $options, $value = "", $onchange = true, $labelled_b
|
||||
return $return;
|
||||
}
|
||||
|
||||
/** Generate HTML <select> or <input> if $options are empty
|
||||
* @param string
|
||||
* @param array
|
||||
* @param string
|
||||
* @param string
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function select_input($attrs, $options, $value = "", $onchange = "", $placeholder = "") {
|
||||
$tag = ($options ? "select" : "input");
|
||||
return "<$tag$attrs" . ($options
|
||||
? "><option value=''>$placeholder" . optionlist($options, $value, true) . "</select>"
|
||||
: " size='10' value='" . h($value) . "' placeholder='$placeholder'>"
|
||||
) . ($onchange ? script("qsl('$tag').onchange = $onchange;", "") : ""); //! use oninput for input
|
||||
}
|
||||
|
||||
/** Get onclick confirmation
|
||||
* @param string
|
||||
* @param string
|
||||
@@ -286,6 +300,25 @@ function js_escape($string) {
|
||||
return addcslashes($string, "\r\n'\\/"); // slash for <script>
|
||||
}
|
||||
|
||||
/** Print one row in JSON object
|
||||
* @param string or "" to close the object
|
||||
* @param string
|
||||
* @return null
|
||||
*/
|
||||
function json_row($key, $val = null) {
|
||||
static $first = true;
|
||||
if ($first) {
|
||||
echo "{";
|
||||
}
|
||||
if ($key != "") {
|
||||
echo ($first ? "" : ",") . "\n\t\"" . addcslashes($key, "\r\n\t\"\\/") . '": ' . ($val !== null ? '"' . addcslashes($val, "\r\n\"\\/") . '"' : 'null');
|
||||
$first = false;
|
||||
} else {
|
||||
echo "\n}\n";
|
||||
$first = true;
|
||||
}
|
||||
}
|
||||
|
||||
/** Get INI boolean value
|
||||
* @param string
|
||||
* @return bool
|
||||
@@ -295,7 +328,7 @@ function ini_bool($ini) {
|
||||
return (preg_match('~^(on|true|yes)$~i', $val) || (int) $val); // boolean values set by php_value are strings
|
||||
}
|
||||
|
||||
/** Check if SID is necessary
|
||||
/** Check if SID is neccessary
|
||||
* @return bool
|
||||
*/
|
||||
function sid() {
|
||||
@@ -449,11 +482,10 @@ function where($where, $fields = array()) {
|
||||
$key = bracket_escape($key, 1); // 1 - back
|
||||
$column = escape_key($key);
|
||||
$return[] = $column
|
||||
. ($jush == "sql" && $fields[$key]["type"] == "json" ? " = CAST(" . q($val) . " AS JSON)"
|
||||
: ($jush == "sql" && is_numeric($val) && preg_match('~\.~', $val) ? " LIKE " . q($val) // LIKE because of floats but slow with ints
|
||||
. ($jush == "sql" && is_numeric($val) && preg_match('~\.~', $val) ? " LIKE " . q($val) // LIKE because of floats but slow with ints
|
||||
: ($jush == "mssql" ? " LIKE " . q(preg_replace('~[_%[]~', '[\0]', $val)) // LIKE because of text
|
||||
: " = " . unconvert_field($fields[$key], q($val))
|
||||
)))
|
||||
))
|
||||
; //! enum and set
|
||||
if ($jush == "sql" && preg_match('~char|text~', $fields[$key]["type"]) && preg_match("~[^ -@]~", $val)) { // not just [a-z] to catch non-ASCII characters
|
||||
$return[] = "$column = " . q($val) . " COLLATE " . charset($connection) . "_bin";
|
||||
@@ -882,13 +914,16 @@ function column_foreign_keys($table) {
|
||||
*/
|
||||
function enum_input($type, $attrs, $field, $value, $empty = null) {
|
||||
global $adminer;
|
||||
|
||||
$return = ($empty !== null && !is_strict_mode() ? "<label><input type='$type'$attrs value='$empty'" . ((is_array($value) ? in_array($empty, $value) : $value === 0) ? " checked" : "") . "><i>" . lang('empty') . "</i></label>" : "");
|
||||
|
||||
preg_match_all("~'((?:[^']|'')*)'~", $field["length"], $matches);
|
||||
$return = ($empty !== null ? "<label><input type='$type'$attrs value='$empty'" . ((is_array($value) ? in_array($empty, $value) : $value === 0) ? " checked" : "") . "><i>" . lang('empty') . "</i></label>" : "");
|
||||
foreach ($matches[1] as $i => $val) {
|
||||
$val = stripcslashes(str_replace("''", "'", $val));
|
||||
$checked = (is_int($value) ? $value == $i+1 : (is_array($value) ? in_array($i+1, $value) : $value === $val));
|
||||
$return .= " <label><input type='$type'$attrs value='" . ($i+1) . "'" . ($checked ? ' checked' : '') . '>' . h($adminer->editVal($val, $field)) . '</label>';
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
@@ -915,14 +950,13 @@ function input($field, $value, $function) {
|
||||
$function = null;
|
||||
}
|
||||
$functions = (isset($_GET["select"]) || $reset ? array("orig" => lang('original')) : array()) + $adminer->editFunctions($field);
|
||||
$disabled = stripos($field["default"], "GENERATED ALWAYS AS ") === 0 ? " disabled=''" : "";
|
||||
$attrs = " name='fields[$name]'$disabled";
|
||||
$attrs = " name='fields[$name]'";
|
||||
if ($field["type"] == "enum") {
|
||||
echo h($functions[""]) . "<td>" . $adminer->editInput($_GET["edit"], $field, $attrs, $value);
|
||||
} else {
|
||||
$has_function = (in_array($function, $functions) || isset($functions[$function]));
|
||||
echo (count($functions) > 1
|
||||
? "<select name='function[$name]'$disabled>" . optionlist($functions, $function === null || $has_function ? $function : "") . "</select>"
|
||||
? "<select name='function[$name]'>" . optionlist($functions, $function === null || $has_function ? $function : "") . "</select>"
|
||||
. on_help("getTarget(event).value.replace(/^SQL\$/, '')", 1)
|
||||
. script("qsl('select').onchange = functionChange;", "")
|
||||
: h(reset($functions))
|
||||
@@ -931,8 +965,8 @@ function input($field, $value, $function) {
|
||||
if ($input != "") {
|
||||
echo $input;
|
||||
} elseif (preg_match('~bool~', $field["type"])) {
|
||||
echo "<input type='hidden'$attrs value='0'>"
|
||||
. "<input type='checkbox'" . (preg_match('~^(1|t|true|y|yes|on)$~i', $value) ? " checked='checked'" : "") . "$attrs value='1'>";
|
||||
echo "<input type='hidden'$attrs value='0'>" .
|
||||
"<input type='checkbox'" . (preg_match('~^(1|t|true|y|yes|on)$~i', $value) ? " checked='checked'" : "") . "$attrs value='1'>";
|
||||
} elseif ($field["type"] == "set") { //! 64 bits
|
||||
preg_match_all("~'((?:[^']|'')*)'~", $field["length"], $matches);
|
||||
foreach ($matches[1] as $i => $val) {
|
||||
@@ -947,7 +981,7 @@ function input($field, $value, $function) {
|
||||
$attrs .= " cols='50' rows='12'";
|
||||
} else {
|
||||
$rows = min(12, substr_count($value, "\n") + 1);
|
||||
$attrs .= " cols='30' rows='$rows'" . ($rows == 1 ? " style='height: 1.2em;'" : ""); // 1.2em - line-height
|
||||
$attrs .= " cols='30' rows='$rows'";
|
||||
}
|
||||
echo "<textarea$attrs>" . h($value) . '</textarea>';
|
||||
} elseif ($function == "json" || preg_match('~^jsonb?$~', $field["type"])) {
|
||||
@@ -987,11 +1021,6 @@ function input($field, $value, $function) {
|
||||
*/
|
||||
function process_input($field) {
|
||||
global $adminer, $driver;
|
||||
|
||||
if (stripos($field["default"], "GENERATED ALWAYS AS ") === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$idf = bracket_escape($field["field"]);
|
||||
$function = $_POST["function"][$idf];
|
||||
$value = $_POST["fields"][$idf];
|
||||
@@ -1051,7 +1080,7 @@ function fields_from_edit() {
|
||||
$name = bracket_escape($key, 1); // 1 - back
|
||||
$return[$name] = array(
|
||||
"field" => $name,
|
||||
"privileges" => array("insert" => 1, "update" => 1),
|
||||
"privileges" => array("insert" => 1, "update" => 1, "where" => 1, "order" => 1),
|
||||
"null" => 1,
|
||||
"auto_increment" => ($key == $driver->primary),
|
||||
);
|
||||
@@ -1224,7 +1253,7 @@ function select_value($val, $link, $field, $text_length) {
|
||||
if (is_mail($val)) {
|
||||
$link = "mailto:$val";
|
||||
}
|
||||
if (is_url($val)) {
|
||||
if (is_web_url($val)) {
|
||||
$link = $val; // IE 11 and all modern browsers hide referrer
|
||||
}
|
||||
}
|
||||
@@ -1245,20 +1274,32 @@ function select_value($val, $link, $field, $text_length) {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function is_mail($email) {
|
||||
$atom = '[-a-z0-9!#$%&\'*+/=?^_`{|}~]'; // characters of local-name
|
||||
$domain = '[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])'; // one domain component
|
||||
$pattern = "$atom+(\\.$atom+)*@($domain?\\.)+$domain";
|
||||
return is_string($email) && preg_match("(^$pattern(,\\s*$pattern)*\$)i", $email);
|
||||
function is_mail($value) {
|
||||
return is_string($value) && filter_var($value, FILTER_VALIDATE_EMAIL);
|
||||
}
|
||||
|
||||
/** Check whether the string is URL address
|
||||
/** Check whether the string is web URL address
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function is_url($string) {
|
||||
$domain = '[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])'; // one domain component //! IDN
|
||||
return preg_match("~^(https?)://($domain?\\.)+$domain(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i", $string); //! restrict path, query and fragment characters
|
||||
function is_web_url($value) {
|
||||
if (!is_string($value) || !preg_match('~^https?://~i', $value)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$components = parse_url($value);
|
||||
if (!$components) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Encode URL path. If path was encoded already, it will be encoded twice, but we are OK with that.
|
||||
$encodedParts = array_map('urlencode', explode('/', $components['path']));
|
||||
$url = str_replace($components['path'], implode('/', $encodedParts), $value);
|
||||
|
||||
parse_str($components['query'], $params);
|
||||
$url = str_replace($components['query'], http_build_query($params), $url);
|
||||
|
||||
return (bool)filter_var($url, FILTER_VALIDATE_URL);
|
||||
}
|
||||
|
||||
/** Check if field should be shortened
|
||||
@@ -1400,7 +1441,6 @@ function edit_form($table, $fields, $row, $update) {
|
||||
$adminer->editRowPrint($table, $fields, $row, $update);
|
||||
if ($row === false) {
|
||||
echo "<p class='error'>" . lang('No rows.') . "\n";
|
||||
return;
|
||||
}
|
||||
?>
|
||||
<form action="" method="post" enctype="multipart/form-data" id="form">
|
||||
@@ -1409,6 +1449,7 @@ function edit_form($table, $fields, $row, $update) {
|
||||
echo "<p class='error'>" . lang('You have no privileges to update this table.') . "\n";
|
||||
} else {
|
||||
echo "<table cellspacing='0' class='layout'>" . script("qsl('table').onkeydown = editingKeydown;");
|
||||
|
||||
foreach ($fields as $name => $field) {
|
||||
echo "<tr><th>" . $adminer->fieldName($field);
|
||||
$default = $_GET["set"][bracket_escape($name)];
|
||||
@@ -1445,10 +1486,6 @@ function edit_form($table, $fields, $row, $update) {
|
||||
$value = "";
|
||||
$function = "now";
|
||||
}
|
||||
if ($field["type"] == "uuid" && $value == "uuid()") {
|
||||
$value = "";
|
||||
$function = "uuid";
|
||||
}
|
||||
input($field, $value, $function);
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ $langs = array(
|
||||
'en' => 'English', // Jakub Vrána - https://www.vrana.cz
|
||||
'ar' => 'العربية', // Y.M Amine - Algeria - nbr7@live.fr
|
||||
'bg' => 'Български', // Deyan Delchev
|
||||
'bn' => 'বাংলা', // Dipak Kumar - dipak.ndc@gmail.com, Hossain Ahmed Saiman - hossain.ahmed@altscope.com
|
||||
'bn' => 'বাংলা', // Dipak Kumar - dipak.ndc@gmail.com | Hossain Ahmed Saiman - hossain.ahmed@altscope.com
|
||||
'bs' => 'Bosanski', // Emir Kurtovic
|
||||
'ca' => 'Català', // Joan Llosas
|
||||
'cs' => 'Čeština', // Jakub Vrána - https://www.vrana.cz
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<?php
|
||||
$VERSION = "4.16.0";
|
||||
$VERSION = "4.9.2";
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'تسجيل الدخول',
|
||||
'Logout successful.' => 'تم تسجيل الخروج بنجاح.',
|
||||
'Invalid credentials.' => 'بيانات الدخول غير صالحة.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'الخادم',
|
||||
'Username' => 'اسم المستخدم',
|
||||
'Password' => 'كلمة المرور',
|
||||
@@ -30,6 +30,7 @@ $translations = array(
|
||||
'Create database' => 'إنشاء قاعدة بيانات',
|
||||
'SQL command' => 'استعلام SQL',
|
||||
'Logout' => 'تسجيل الخروج',
|
||||
'database' => 'قاعدة بيانات',
|
||||
'Use' => 'استعمال',
|
||||
'No tables.' => 'لا توجد جداول.',
|
||||
'select' => 'تحديد',
|
||||
@@ -263,4 +264,50 @@ $translations = array(
|
||||
'Permanent link' => 'رابط دائم',
|
||||
'Edit all' => 'تعديل الكل',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Ctrl+click on a value to modify it.' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Изход',
|
||||
'Logged as: %s' => 'Текущ потребител: %s',
|
||||
'Logout successful.' => 'Излизането е успешно.',
|
||||
'Invalid credentials.' => 'Невалидни потребителски данни.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'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 метод, за да я направите постоянна.',
|
||||
'Language' => 'Език',
|
||||
@@ -22,10 +22,10 @@ $translations = array(
|
||||
'Session expired, please login again.' => 'Сесията е изтекла; моля, влезте отново.',
|
||||
'%s version: %s through PHP extension %s' => '%s версия: %s през PHP разширение %s',
|
||||
'Refresh' => 'Обновяване',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => 'Права',
|
||||
'Create user' => 'Създаване на потребител',
|
||||
'User has been dropped.' => 'Потребителя беше премахнат.',
|
||||
@@ -36,14 +36,14 @@ $translations = array(
|
||||
'Routine' => 'Процедура',
|
||||
'Grant' => 'Осигуряване',
|
||||
'Revoke' => 'Отнемане',
|
||||
|
||||
|
||||
'Process list' => 'Списък с процеси',
|
||||
'%d process(es) have been killed.' => array('%d процес беше прекъснат.', '%d процеса бяха прекъснати.'),
|
||||
'Kill' => 'Прекъсване',
|
||||
|
||||
|
||||
'Variables' => 'Променливи',
|
||||
'Status' => 'Състояние',
|
||||
|
||||
|
||||
'SQL command' => 'SQL команда',
|
||||
'%d query(s) executed OK.' => array('%d заявка е изпълнена.', '%d заявки са изпълнени.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Заявката е изпълнена, %d ред е засегнат.', 'Заявката е изпълнена, %d редове са засегнати.'),
|
||||
@@ -57,7 +57,7 @@ $translations = array(
|
||||
'History' => 'Хронология',
|
||||
'Clear' => 'Изчистване',
|
||||
'Edit all' => 'Редактиране на всички',
|
||||
|
||||
|
||||
'File upload' => 'Прикачване на файл',
|
||||
'From server' => 'От сървър',
|
||||
'Webserver file %s' => 'Сървърен файл %s',
|
||||
@@ -69,15 +69,16 @@ $translations = array(
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Изпратени са прекалено много данни. Намалете обема на данните или увеличете %s управляващата директива.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Можете да прикачите голям SQL файл чрез FTP и да го импортирате от сървъра.',
|
||||
'You are offline.' => 'Вие сте офлайн.',
|
||||
|
||||
|
||||
'Export' => 'Експорт',
|
||||
'Output' => 'Резултат',
|
||||
'open' => 'показване',
|
||||
'save' => 'запис',
|
||||
'Format' => 'Формат',
|
||||
'Data' => 'Данни',
|
||||
|
||||
|
||||
'Database' => 'База данни',
|
||||
'database' => 'база данни',
|
||||
'Use' => 'Избор',
|
||||
'Select database' => 'Избор на база данни',
|
||||
'Invalid database.' => 'Невалидна база данни.',
|
||||
@@ -89,10 +90,10 @@ $translations = array(
|
||||
'Alter database' => 'Промяна на база данни',
|
||||
'Create database' => 'Създаване на база данни',
|
||||
'Database schema' => 'Схема на базата данни',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Постоянна препратка',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ',',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -115,7 +116,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'Таблиците бяха преместени.',
|
||||
'Copy' => 'Копиране',
|
||||
'Tables have been copied.' => 'Таблиците бяха копирани.',
|
||||
|
||||
|
||||
'Routines' => 'Процедури',
|
||||
'Routine has been called, %d row(s) affected.' => array('Беше приложена процедура, %d ред е засегнат.', 'Беше приложена процедура, %d редове са засегнати.'),
|
||||
'Call' => 'Прилагане',
|
||||
@@ -128,7 +129,7 @@ $translations = array(
|
||||
'Alter function' => 'Промяна на функция',
|
||||
'Alter procedure' => 'Промяна на процедура',
|
||||
'Return type' => 'Резултат',
|
||||
|
||||
|
||||
'Events' => 'Събития',
|
||||
'Event has been dropped.' => 'Събитието беше премахнато.',
|
||||
'Event has been altered.' => 'Събитието беше променено.',
|
||||
@@ -141,7 +142,7 @@ $translations = array(
|
||||
'Start' => 'Начало',
|
||||
'End' => 'Край',
|
||||
'On completion preserve' => 'Запазване след завършване',
|
||||
|
||||
|
||||
'Tables' => 'Таблици',
|
||||
'Tables and views' => 'Таблици и изгледи',
|
||||
'Table' => 'Таблица',
|
||||
@@ -173,12 +174,12 @@ $translations = array(
|
||||
'Move down' => 'Преместване надолу',
|
||||
'Remove' => 'Премахване',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Максималния брой полета е превишен. Моля, увеличете %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Разделяне на',
|
||||
'Partitions' => 'Раздели',
|
||||
'Partition name' => 'Име на раздела',
|
||||
'Values' => 'Стойности',
|
||||
|
||||
|
||||
'View' => 'Изглед',
|
||||
'Materialized view' => 'Запаметен изглед',
|
||||
'View has been dropped.' => 'Изгледа беше премахнат.',
|
||||
@@ -186,14 +187,14 @@ $translations = array(
|
||||
'View has been created.' => 'Изгледа беше създаден.',
|
||||
'Alter view' => 'Промяна на изглед',
|
||||
'Create view' => 'Създаване на изглед',
|
||||
|
||||
|
||||
'Indexes' => 'Индекси',
|
||||
'Indexes have been altered.' => 'Индексите бяха променени.',
|
||||
'Alter indexes' => 'Промяна на индекси',
|
||||
'Add next' => 'Добавяне на следващ',
|
||||
'Index Type' => 'Вид на индекса',
|
||||
'Column (length)' => 'Колона (дължина)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Препратки',
|
||||
'Foreign key' => 'Препратка',
|
||||
'Foreign key has been dropped.' => 'Препратката беше премахната.',
|
||||
@@ -209,7 +210,7 @@ $translations = array(
|
||||
'ON DELETE' => 'При изтриване',
|
||||
'ON UPDATE' => 'При промяна',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Колоните източник и цел трябва да са от еднакъв вид, трябва да има индекс на колоните приемник и да има въведени данни.',
|
||||
|
||||
|
||||
'Triggers' => 'Тригери',
|
||||
'Add trigger' => 'Добавяне на тригер',
|
||||
'Trigger has been dropped.' => 'Тригера беше премахнат.',
|
||||
@@ -220,7 +221,7 @@ $translations = array(
|
||||
'Time' => 'Време',
|
||||
'Event' => 'Събитие',
|
||||
'Name' => 'Име',
|
||||
|
||||
|
||||
'select' => 'показване',
|
||||
'Select' => 'Показване',
|
||||
'Select data' => 'Показване на данни',
|
||||
@@ -246,16 +247,16 @@ $translations = array(
|
||||
'Loading' => 'Зареждане',
|
||||
'Whole result' => 'Пълен резултат',
|
||||
'%d byte(s)' => array('%d байт', '%d байта'),
|
||||
|
||||
|
||||
'Import' => 'Импорт',
|
||||
'%d row(s) have been imported.' => array('%d ред беше импортиран.', '%d реда бяха импортирани.'),
|
||||
'File must be in UTF-8 encoding.' => 'Файла трябва да е с UTF-8 кодировка.',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => 'Промяна',
|
||||
'Ctrl+click on a value to modify it.' => 'Ctrl+щракване в стойността, за да я промените.',
|
||||
'Use edit link to modify this value.' => 'Използвайте "редакция" за промяна на данните.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Елементи%s бяха вмъкнати.',
|
||||
'Item has been deleted.' => 'Елемента беше изтрит.',
|
||||
@@ -276,14 +277,14 @@ $translations = array(
|
||||
'Clone' => 'Клониране',
|
||||
'Delete' => 'Изтриване',
|
||||
'You have no privileges to update this table.' => 'Нямате праве за обновяване на таблицата.',
|
||||
|
||||
|
||||
'E-mail' => 'E-mail',
|
||||
'From' => 'От',
|
||||
'Subject' => 'Тема',
|
||||
'Attachments' => 'Прикачени',
|
||||
'Send' => 'Изпращане',
|
||||
'%d e-mail(s) have been sent.' => array('%d писмо беше изпратено.', '%d писма бяха изпратени.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Числа',
|
||||
'Date and time' => 'Дата и час',
|
||||
@@ -293,7 +294,7 @@ $translations = array(
|
||||
'Network' => 'Мрежа',
|
||||
'Geometry' => 'Геометрия',
|
||||
'Relations' => 'Зависимости',
|
||||
|
||||
|
||||
'Editor' => 'Редактор',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$1-$3-$5',
|
||||
@@ -304,11 +305,11 @@ $translations = array(
|
||||
'now' => 'сега',
|
||||
'yes' => 'да',
|
||||
'no' => 'не',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Файла вече съществува.',
|
||||
'Please use one of the extensions %s.' => 'Моля, използвайте някое от разширенията %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Промяна на схемата',
|
||||
'Create schema' => 'Създаване на схема',
|
||||
@@ -317,7 +318,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Схемата беше променена.',
|
||||
'Schema' => 'Схема',
|
||||
'Invalid schema.' => 'Невалидна схема.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Последователности',
|
||||
'Create sequence' => 'Създаване на последователност',
|
||||
@@ -325,11 +326,33 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Последователността беше създадена.',
|
||||
'Sequence has been altered.' => 'Последователността беше променена.',
|
||||
'Alter sequence' => 'Промяна на последователност',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Видове потребители',
|
||||
'Create type' => 'Създаване на вид',
|
||||
'Type has been dropped.' => 'Вида беше пермахнат.',
|
||||
'Type has been created.' => 'Вида беше създаден.',
|
||||
'Alter type' => 'Промяна на вид',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Да',
|
||||
'No' => 'Не',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'লগইন',
|
||||
'Logout successful.' => 'সফলভাবে লগআউট হয়েছে।',
|
||||
'Invalid credentials.' => 'ভুল পাসওয়ার্ড।',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'সার্ভার',
|
||||
'Username' => 'ইউজারের নাম',
|
||||
'Password' => 'পাসওয়ার্ড',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'ডাটাবেজ তৈরী করুন',
|
||||
'SQL command' => 'SQL-কমান্ড',
|
||||
'Logout' => 'লগআউট',
|
||||
'database' => 'ডাটাবেজ',
|
||||
'Use' => 'ব্যবহার',
|
||||
'No tables.' => 'কোন টেবিল নাই।',
|
||||
'select' => 'নির্বাচন',
|
||||
@@ -263,4 +264,50 @@ $translations = array(
|
||||
'Permanent link' => 'স্থায়ী লিংক',
|
||||
'Edit all' => 'সবগুলো সম্পাদনা করুন',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Ctrl+click on a value to modify it.' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Odjava',
|
||||
'Logged as: %s' => 'Prijavi se kao: %s',
|
||||
'Logout successful.' => 'Uspešna odjava.',
|
||||
'Invalid credentials.' => 'Nevažeće dozvole.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Language' => 'Jezik',
|
||||
'Invalid CSRF token. Send the form again.' => 'Nevažeći CSRF kod. Proslijedite ponovo formu.',
|
||||
'No extension' => 'Bez dodataka',
|
||||
@@ -73,6 +73,7 @@ $translations = array(
|
||||
'Data' => 'Podaci',
|
||||
|
||||
'Database' => 'Baza podataka',
|
||||
'database' => 'baza podataka',
|
||||
'Use' => 'Koristi',
|
||||
'Select database' => 'Izaberite bazu',
|
||||
'Invalid database.' => 'Neispravna baza podataka.',
|
||||
@@ -317,4 +318,41 @@ $translations = array(
|
||||
'Type has been dropped.' => 'Tip je izbrisan.',
|
||||
'Type has been created.' => 'tip je spašen.',
|
||||
'Alter type' => 'Ažuriraj tip',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Da',
|
||||
'No' => 'Ne',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Inicia la sessió',
|
||||
'Logout successful.' => 'Desconnexió correcta.',
|
||||
'Invalid credentials.' => 'Credencials invàlides.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Servidor',
|
||||
'Username' => 'Nom d\'usuari',
|
||||
'Password' => 'Contrasenya',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Crea una base de dades',
|
||||
'SQL command' => 'Ordre SQL',
|
||||
'Logout' => 'Desconnecta',
|
||||
'database' => 'base de dades',
|
||||
'Use' => 'Utilitza',
|
||||
'No tables.' => 'No hi ha cap taula.',
|
||||
'select' => 'registres',
|
||||
@@ -264,4 +265,49 @@ $translations = array(
|
||||
'Permanent link' => 'Enllaç permanent',
|
||||
'Edit all' => 'Edita-ho tot',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ $translations = array(
|
||||
'Logged as: %s' => 'Přihlášen jako: %s',
|
||||
'Logout successful.' => 'Odhlášení proběhlo v pořádku.',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Díky za použití Admineru, <a href="https://www.adminer.org/cs/donation/">přispějte</a> na vývoj.',
|
||||
'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.',
|
||||
'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.',
|
||||
@@ -29,10 +29,10 @@ $translations = array(
|
||||
'The action will be performed after successful login with the same credentials.' => 'Akce bude provedena po úspěšném přihlášení se stejnými přihlašovacími údaji.',
|
||||
'%s version: %s through PHP extension %s' => 'Verze %s: %s přes PHP rozšíření %s',
|
||||
'Refresh' => 'Obnovit',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => 'Oprávnění',
|
||||
'Create user' => 'Vytvořit uživatele',
|
||||
'User has been dropped.' => 'Uživatel byl odstraněn.',
|
||||
@@ -43,14 +43,14 @@ $translations = array(
|
||||
'Routine' => 'Procedura',
|
||||
'Grant' => 'Povolit',
|
||||
'Revoke' => 'Zakázat',
|
||||
|
||||
|
||||
'Process list' => 'Seznam procesů',
|
||||
'%d process(es) have been killed.' => array('Byl ukončen %d proces.', 'Byly ukončeny %d procesy.', 'Bylo ukončeno %d procesů.'),
|
||||
'Kill' => 'Ukončit',
|
||||
|
||||
|
||||
'Variables' => 'Proměnné',
|
||||
'Status' => 'Stav',
|
||||
|
||||
|
||||
'SQL command' => 'SQL příkaz',
|
||||
'%d query(s) executed OK.' => array('%d příkaz proběhl v pořádku.', '%d příkazy proběhly v pořádku.', '%d příkazů proběhlo v pořádku.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Příkaz proběhl v pořádku, byl změněn %d záznam.', 'Příkaz proběhl v pořádku, byly změněny %d záznamy.', 'Příkaz proběhl v pořádku, bylo změněno %d záznamů.'),
|
||||
@@ -67,7 +67,7 @@ $translations = array(
|
||||
'History' => 'Historie',
|
||||
'Clear' => 'Vyčistit',
|
||||
'Edit all' => 'Upravit vše',
|
||||
|
||||
|
||||
'File upload' => 'Nahrání souboru',
|
||||
'From server' => 'Ze serveru',
|
||||
'Webserver file %s' => 'Soubor %s na webovém serveru',
|
||||
@@ -79,15 +79,16 @@ $translations = array(
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Příliš velká POST data. Zmenšete data nebo zvyšte hodnotu konfigurační direktivy %s.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Velký SQL soubor můžete nahrát pomocí FTP a importovat ho ze serveru.',
|
||||
'You are offline.' => 'Jste offline.',
|
||||
|
||||
|
||||
'Export' => 'Export',
|
||||
'Output' => 'Výstup',
|
||||
'open' => 'otevřít',
|
||||
'save' => 'uložit',
|
||||
'Format' => 'Formát',
|
||||
'Data' => 'Data',
|
||||
|
||||
|
||||
'Database' => 'Databáze',
|
||||
'database' => 'databáze',
|
||||
'DB' => 'DB',
|
||||
'Use' => 'Vybrat',
|
||||
'Select database' => 'Vybrat databázi',
|
||||
@@ -100,10 +101,10 @@ $translations = array(
|
||||
'Alter database' => 'Pozměnit databázi',
|
||||
'Create database' => 'Vytvořit databázi',
|
||||
'Database schema' => 'Schéma databáze',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Trvalý odkaz',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ' ',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -127,7 +128,7 @@ $translations = array(
|
||||
'Copy' => 'Zkopírovat',
|
||||
'Tables have been copied.' => 'Tabulky byly zkopírovány.',
|
||||
'overwrite' => 'přepsat',
|
||||
|
||||
|
||||
'Routines' => 'Procedury a funkce',
|
||||
'Routine has been called, %d row(s) affected.' => array('Procedura byla zavolána, byl změněn %d záznam.', 'Procedura byla zavolána, byly změněny %d záznamy.', 'Procedura byla zavolána, bylo změněno %d záznamů.'),
|
||||
'Call' => 'Zavolat',
|
||||
@@ -140,7 +141,7 @@ $translations = array(
|
||||
'Alter function' => 'Změnit funkci',
|
||||
'Alter procedure' => 'Změnit proceduru',
|
||||
'Return type' => 'Návratový typ',
|
||||
|
||||
|
||||
'Events' => 'Události',
|
||||
'Event has been dropped.' => 'Událost byla odstraněna.',
|
||||
'Event has been altered.' => 'Událost byla změněna.',
|
||||
@@ -153,7 +154,7 @@ $translations = array(
|
||||
'Start' => 'Začátek',
|
||||
'End' => 'Konec',
|
||||
'On completion preserve' => 'Po dokončení zachovat',
|
||||
|
||||
|
||||
'Tables' => 'Tabulky',
|
||||
'Tables and views' => 'Tabulky a pohledy',
|
||||
'Table' => 'Tabulka',
|
||||
@@ -186,12 +187,12 @@ $translations = array(
|
||||
'Move down' => 'Přesunout dolů',
|
||||
'Remove' => 'Odebrat',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Byl překročen maximální povolený počet polí. Zvyšte prosím %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Rozdělit podle',
|
||||
'Partitions' => 'Oddíly',
|
||||
'Partition name' => 'Název oddílu',
|
||||
'Values' => 'Hodnoty',
|
||||
|
||||
|
||||
'View' => 'Pohled',
|
||||
'Materialized view' => 'Materializovaný pohled',
|
||||
'View has been dropped.' => 'Pohled byl odstraněn.',
|
||||
@@ -199,14 +200,14 @@ $translations = array(
|
||||
'View has been created.' => 'Pohled byl vytvořen.',
|
||||
'Alter view' => 'Pozměnit pohled',
|
||||
'Create view' => 'Vytvořit pohled',
|
||||
|
||||
|
||||
'Indexes' => 'Indexy',
|
||||
'Indexes have been altered.' => 'Indexy byly změněny.',
|
||||
'Alter indexes' => 'Pozměnit indexy',
|
||||
'Add next' => 'Přidat další',
|
||||
'Index Type' => 'Typ indexu',
|
||||
'Column (length)' => 'Sloupec (délka)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Cizí klíče',
|
||||
'Foreign key' => 'Cizí klíč',
|
||||
'Foreign key has been dropped.' => 'Cizí klíč byl odstraněn.',
|
||||
@@ -222,7 +223,7 @@ $translations = array(
|
||||
'ON DELETE' => 'Při smazání',
|
||||
'ON UPDATE' => 'Při změně',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Zdrojové a cílové sloupce musí mít stejný datový typ, nad cílovými sloupci musí být definován index a odkazovaná data musí existovat.',
|
||||
|
||||
|
||||
'Triggers' => 'Triggery',
|
||||
'Add trigger' => 'Přidat trigger',
|
||||
'Trigger has been dropped.' => 'Trigger byl odstraněn.',
|
||||
@@ -233,7 +234,7 @@ $translations = array(
|
||||
'Time' => 'Čas',
|
||||
'Event' => 'Událost',
|
||||
'Name' => 'Název',
|
||||
|
||||
|
||||
'select' => 'vypsat',
|
||||
'Select' => 'Vypsat',
|
||||
'Select data' => 'Vypsat data',
|
||||
@@ -255,20 +256,20 @@ $translations = array(
|
||||
'%d row(s)' => array('%d řádek', '%d řádky', '%d řádků'),
|
||||
'Page' => 'Stránka',
|
||||
'last' => 'poslední',
|
||||
'Load more data' => 'Načíst další data',
|
||||
'Loading' => 'Načítá se',
|
||||
'Load more data' => 'Nahrát další data',
|
||||
'Loading' => 'Nahrává se',
|
||||
'Whole result' => 'Celý výsledek',
|
||||
'%d byte(s)' => array('%d bajt', '%d bajty', '%d bajtů'),
|
||||
|
||||
|
||||
'Import' => 'Import',
|
||||
'%d row(s) have been imported.' => array('Byl importován %d záznam.', 'Byly importovány %d záznamy.', 'Bylo importováno %d záznamů.'),
|
||||
'File must be in UTF-8 encoding.' => 'Soubor musí být v kódování UTF-8.',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => 'Změnit',
|
||||
'Ctrl+click on a value to modify it.' => 'Ctrl+klikněte na políčko, které chcete změnit.',
|
||||
'Use edit link to modify this value.' => 'Ke změně této hodnoty použijte odkaz upravit.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Položka%s byla vložena.',
|
||||
'Item has been deleted.' => 'Položka byla smazána.',
|
||||
@@ -289,14 +290,14 @@ $translations = array(
|
||||
'Clone' => 'Klonovat',
|
||||
'Delete' => 'Smazat',
|
||||
'You have no privileges to update this table.' => 'Nemáte oprávnění editovat tuto tabulku.',
|
||||
|
||||
|
||||
'E-mail' => 'E-mail',
|
||||
'From' => 'Odesílatel',
|
||||
'Subject' => 'Předmět',
|
||||
'Attachments' => 'Přílohy',
|
||||
'Send' => 'Odeslat',
|
||||
'%d e-mail(s) have been sent.' => array('Byl odeslán %d e-mail.', 'Byly odeslány %d e-maily.', 'Bylo odesláno %d e-mailů.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Čísla',
|
||||
'Date and time' => 'Datum a čas',
|
||||
@@ -306,7 +307,7 @@ $translations = array(
|
||||
'Network' => 'Síť',
|
||||
'Geometry' => 'Geometrie',
|
||||
'Relations' => 'Vztahy',
|
||||
|
||||
|
||||
'Editor' => 'Editor',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$6.$4.$1',
|
||||
@@ -317,11 +318,11 @@ $translations = array(
|
||||
'now' => 'teď',
|
||||
'yes' => 'ano',
|
||||
'no' => 'ne',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Soubor existuje.',
|
||||
'Please use one of the extensions %s.' => 'Prosím použijte jednu z koncovek %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Pozměnit schéma',
|
||||
'Create schema' => 'Vytvořit schéma',
|
||||
@@ -330,7 +331,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Schéma bylo změněno.',
|
||||
'Schema' => 'Schéma',
|
||||
'Invalid schema.' => 'Nesprávné schéma.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Sekvence',
|
||||
'Create sequence' => 'Vytvořit sekvenci',
|
||||
@@ -338,11 +339,20 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Sekvence byla vytvořena.',
|
||||
'Sequence has been altered.' => 'Sekvence byla změněna.',
|
||||
'Alter sequence' => 'Pozměnit sekvenci',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Uživatelské typy',
|
||||
'Create type' => 'Vytvořit typ',
|
||||
'Type has been dropped.' => 'Typ byl odstraněn.',
|
||||
'Type has been created.' => 'Typ byl vytvořen.',
|
||||
'Alter type' => 'Pozměnit typ',
|
||||
|
||||
// Plugins
|
||||
'Columns' => 'Sloupce',
|
||||
'Nullable' => 'Povoleno null',
|
||||
'Default' => 'Výchozí',
|
||||
'Yes' => 'Ano',
|
||||
'No' => 'Ne',
|
||||
'One Time Password' => 'Jednorázové heslo',
|
||||
'Invalid OTP code.' => 'Neplatný kód OTP.',
|
||||
);
|
||||
|
||||
@@ -9,7 +9,7 @@ $translations = array(
|
||||
'Logout' => 'Log ud',
|
||||
'Logged as: %s' => 'Logget ind som: %s',
|
||||
'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.',
|
||||
'Language' => 'Sprog',
|
||||
'Invalid CSRF token. Send the form again.' => 'Ugyldigt CSRF-token - Genindsend formen.',
|
||||
@@ -64,6 +64,7 @@ $translations = array(
|
||||
'Format' => 'Format',
|
||||
'Data' => 'Data',
|
||||
'Database' => 'Database',
|
||||
'database' => 'database',
|
||||
'Use' => 'Brug',
|
||||
'Select database' => 'Vælg database',
|
||||
'Invalid database.' => 'Ugyldig database.',
|
||||
@@ -278,4 +279,35 @@ $translations = array(
|
||||
'Type has been created.' => 'Typen er oprettet.',
|
||||
'Alter type' => 'Ændre type',
|
||||
'Saving' => 'Gemmer',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Materialized view' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Ja',
|
||||
'No' => 'Nej',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -3,7 +3,7 @@ $translations = array(
|
||||
'Login' => 'Login',
|
||||
'Logout successful.' => 'Abmeldung erfolgreich.',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Danke, dass Sie Adminer genutzt haben. <a href="https://www.adminer.org/de/donation/">Spenden willkommen!</a>',
|
||||
'Invalid credentials.' => 'Ungültige Anmelde-Informationen.',
|
||||
'Invalid server or credentials.' => 'Ungültige Server oder Anmelde-Informationen.',
|
||||
'Server' => 'Server',
|
||||
'Username' => 'Benutzer',
|
||||
'Password' => 'Passwort',
|
||||
@@ -32,7 +32,8 @@ $translations = array(
|
||||
'Create database' => 'Datenbank erstellen',
|
||||
'SQL command' => 'SQL-Kommando',
|
||||
'Logout' => 'Abmelden',
|
||||
'Use' => 'Auswählen',
|
||||
'database' => 'Datenbank',
|
||||
'Use' => 'Benutzung',
|
||||
'No tables.' => 'Keine Tabellen.',
|
||||
'select' => 'zeigen',
|
||||
'Item has been deleted.' => 'Datensatz wurde gelöscht.',
|
||||
@@ -279,25 +280,34 @@ $translations = array(
|
||||
'If you did not send this request from Adminer then close this page.' => 'Wenn Sie diese Anfrage nicht von Adminer gesendet haben, schließen Sie diese Seite.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Sie können eine große SQL-Datei per FTP hochladen und dann vom Server importieren.',
|
||||
'You are offline.' => 'Sie sind offline.',
|
||||
'You have no privileges to update this table.' => 'Sie haben keine Rechte, diese Tabelle zu aktualisieren.',
|
||||
'You have no privileges to update this table.' => 'Sie haben keine Rechte, um diese Tabelle zu aktualisieren.',
|
||||
'Saving' => 'Speichere',
|
||||
'yes' => 'ja',
|
||||
'no' => 'nein',
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Das Master-Passwort ist abgelaufen. <a href="https://www.adminer.org/de/extension/"%s>Implementieren</a> Sie die %s Methode, um es permanent zu machen.',
|
||||
'%d / ' => '%d / ',
|
||||
'Drop %s?' => '%s entfernen?',
|
||||
'Materialized view' => 'Strukturierte Ansicht',
|
||||
'Vacuum' => 'Vacuum',
|
||||
'overwrite' => 'überschreiben',
|
||||
'DB' => 'DB',
|
||||
'ATTACH queries are not supported.' => 'ATTACH Abfragen werden nicht unterstützt.',
|
||||
'Warnings' => 'Warnungen',
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer unterstützt den Zugriff auf eine Datenbank ohne Passwort nicht, <a href="https://www.adminer.org/en/password/"%s>mehr Informationen</a>.',
|
||||
'Full table scan' => 'Vollständige Überprüfung der Tabelle',
|
||||
'The action will be performed after successful login with the same credentials.' => 'Die Aktion wird nach erfolgreicher Anmeldung mit denselben Anmeldedaten ausgeführt.',
|
||||
'Connecting to privileged ports is not allowed.' => 'Die Verbindung zu privilegierten Ports ist nicht erlaubt.',
|
||||
'There is a space in the input password which might be the cause.' => 'Es gibt ein Leerzeichen im Eingabepasswort, das die Ursache sein könnte.',
|
||||
'Unknown error.' => 'Unbekannter Fehler.',
|
||||
'Database does not support password.' => 'Die Datenbank unterstützt kein Passwort.',
|
||||
'Disable %s or enable %s or %s extensions.' => 'Deaktivieren Sie %s oder aktivieren Sie die Erweiterungen %s oder %s.',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Full table scan' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Ja',
|
||||
'No' => 'Nein',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Αποσύνδεση',
|
||||
'Logged as: %s' => 'Συνδεθήκατε ως %s',
|
||||
'Logout successful.' => 'Αποσυνδεθήκατε με επιτυχία.',
|
||||
'Invalid credentials.' => 'Εσφαλμένα Διαπιστευτήρια.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'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 για να τον κάνετε μόνιμο.',
|
||||
'Language' => 'Γλώσσα',
|
||||
@@ -22,10 +22,10 @@ $translations = array(
|
||||
'Session expired, please login again.' => 'Η συνεδρία έληξε, παρακαλώ συνδεθείτε ξανά.',
|
||||
'%s version: %s through PHP extension %s' => '%s έκδοση: %s μέσω επέκτασης PHP %s',
|
||||
'Refresh' => 'Ανανέωση',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => 'Δικαιώματα',
|
||||
'Create user' => 'Δημιουργία Χρήστη',
|
||||
'User has been dropped.' => 'Ο Χρήστης διαγράφηκε.',
|
||||
@@ -36,14 +36,14 @@ $translations = array(
|
||||
'Routine' => 'Ρουτίνα',
|
||||
'Grant' => 'Παραχώρηση',
|
||||
'Revoke' => 'Ανάκληση',
|
||||
|
||||
|
||||
'Process list' => 'Λίστα διεργασιών',
|
||||
'%d process(es) have been killed.' => array('Τερματίστηκε %d διεργασία.', 'Τερματίστηκαν %d διεργασίες.'),
|
||||
'Kill' => 'Τερματισμός',
|
||||
|
||||
|
||||
'Variables' => 'Μεταβλητές',
|
||||
'Status' => 'Κατάσταση',
|
||||
|
||||
|
||||
'SQL command' => 'Εντολή SQL',
|
||||
'%d query(s) executed OK.' => array('Το ερώτημα %d εκτελέστηκε ΟΚ.', 'Τα ερώτηματα %d εκτελέστηκαν ΟΚ.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Το ερώτημα εκτελέστηκε ΟΚ, επηρεάστηκε %d σειρά.', 'Το ερώτημα εκτελέστηκε ΟΚ, επηρεάστηκαν %d σειρές.'),
|
||||
@@ -57,7 +57,7 @@ $translations = array(
|
||||
'History' => 'Ιστορικό',
|
||||
'Clear' => 'Καθαρισμός',
|
||||
'Edit all' => 'Επεξεργασία όλων',
|
||||
|
||||
|
||||
'File upload' => 'Μεταφόρτωση αρχείου',
|
||||
'From server' => 'Από διακομιστή',
|
||||
'Webserver file %s' => 'Αρχείο %s από διακομιστή web',
|
||||
@@ -69,7 +69,7 @@ $translations = array(
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Πολλά δεδομένα POST. Μείωστε τα περιεχόμενα ή αυξήστε την σχετική ρύθμιση %s.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Μπορείτε να μεταφορτώσετε ένα μεγάλο αρχείο SQL μέσω FTP και να το εισάγετε από το διακομιστή.',
|
||||
'You are offline.' => 'Βρίσκεστε εκτός σύνδεσης.',
|
||||
|
||||
|
||||
'Export' => 'Εξαγωγή',
|
||||
'Output' => 'Αποτέλεσμα',
|
||||
'open' => 'άνοιγμα',
|
||||
@@ -77,8 +77,9 @@ $translations = array(
|
||||
'Saving' => 'Γίνεται Αποθήκευση',
|
||||
'Format' => 'Μορφή',
|
||||
'Data' => 'Δεδομένα',
|
||||
|
||||
|
||||
'Database' => 'Β. Δεδομένων',
|
||||
'database' => 'β. δεδομένων',
|
||||
'Use' => 'χρήση',
|
||||
'Select database' => 'Επιλέξτε Β.Δ.',
|
||||
'Invalid database.' => 'Λανθασμένη Β.Δ.',
|
||||
@@ -90,10 +91,10 @@ $translations = array(
|
||||
'Alter database' => 'Τροποποίηση Β.Δ.',
|
||||
'Create database' => 'Δημιουργία Β.Δ.',
|
||||
'Database schema' => 'Σχήμα Β.Δ.',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Μόνιμος Σύνδεσμος',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => '.',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -116,7 +117,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'Οι πίνακες μεταφέρθηκαν.',
|
||||
'Copy' => 'Αντιγραφή',
|
||||
'Tables have been copied.' => 'Οι πίνακες αντιγράφηκαν.',
|
||||
|
||||
|
||||
'Routines' => 'Ρουτίνες',
|
||||
'Routine has been called, %d row(s) affected.' => array('Η ρουτίνα εκτελέστηκε, επηρεάστηκε %d σειρά.', 'Η ρουτίνα εκτελέστηκε, επηρεάστηκαν %d σειρές.'),
|
||||
'Call' => 'Εκτέλεση',
|
||||
@@ -129,7 +130,7 @@ $translations = array(
|
||||
'Alter function' => 'Τροποποίηση λειτουργίας',
|
||||
'Alter procedure' => 'Τροποποίηση διαδικασίας',
|
||||
'Return type' => 'Επιστρεφόμενος τύπος',
|
||||
|
||||
|
||||
'Events' => 'Γεγονός',
|
||||
'Event has been dropped.' => 'Το γεγονός διαγράφηκε.',
|
||||
'Event has been altered.' => 'Το γεγονός τροποποιήθηκε.',
|
||||
@@ -142,7 +143,7 @@ $translations = array(
|
||||
'Start' => 'Έναρξη',
|
||||
'End' => 'Λήξη',
|
||||
'On completion preserve' => 'Κατά την ολοκλήρωση διατήρησε',
|
||||
|
||||
|
||||
'Tables' => 'Πίνακες',
|
||||
'Tables and views' => 'Πίνακες και Προβολές',
|
||||
'Table' => 'Πίνακας',
|
||||
@@ -174,12 +175,12 @@ $translations = array(
|
||||
'Move down' => 'Μετακίνηση προς τα κάτω',
|
||||
'Remove' => 'Αφαίρεση',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Υπέρβαση μέγιστου επιτρεπόμενου αριθμού πεδίων. Παρακαλώ αυξήστε %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Τμηματοποίηση ανά',
|
||||
'Partitions' => 'Τμήματα',
|
||||
'Partition name' => 'Όνομα Τμήματος',
|
||||
'Values' => 'Τιμές',
|
||||
|
||||
|
||||
'View' => 'Προβολή',
|
||||
'Materialized view' => 'Υλοποιημένη προβολή',
|
||||
'View has been dropped.' => 'Η προβολή διαγράφηκε.',
|
||||
@@ -187,14 +188,14 @@ $translations = array(
|
||||
'View has been created.' => 'Η προβολή δημιουργήθηκε.',
|
||||
'Alter view' => 'Τροποποίηση προβολής',
|
||||
'Create view' => 'Δημιουργία προβολής',
|
||||
|
||||
|
||||
'Indexes' => 'Δείκτες',
|
||||
'Indexes have been altered.' => 'Οι δείκτες τροποποιήθηκαν.',
|
||||
'Alter indexes' => 'Τροποποίηση δεικτών',
|
||||
'Add next' => 'Προσθήκη επόμενου',
|
||||
'Index Type' => 'Τύπος δείκτη',
|
||||
'Column (length)' => 'Στήλη (μήκος)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Εξαρτημένα κλειδιά',
|
||||
'Foreign key' => 'Εξαρτημένο κλειδί',
|
||||
'Foreign key has been dropped.' => 'Το εξαρτημένο κλειδί διαγράφηκε.',
|
||||
@@ -210,7 +211,7 @@ $translations = array(
|
||||
'ON DELETE' => 'ΚΑΤΑ ΤΗ ΔΙΑΓΡΑΦΗ',
|
||||
'ON UPDATE' => 'ΚΑΤΑ ΤΗΝ ΑΛΛΑΓΗ',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Οι στήλες στην πηγή και το στόχο πρέπει να έχουν τον ίδιο τύπο, πρέπει να υπάρχει δείκτης στη στήλη στόχο και να υπάρχουν εξαρτημένα δεδομένα.',
|
||||
|
||||
|
||||
'Triggers' => 'Εναύσματα',
|
||||
'Add trigger' => 'Προσθήκη εναύσματος',
|
||||
'Trigger has been dropped.' => 'Το έναυσμα διαγράφηκε.',
|
||||
@@ -221,7 +222,7 @@ $translations = array(
|
||||
'Time' => 'Ώρα',
|
||||
'Event' => 'Γεγονός',
|
||||
'Name' => 'Όνομα',
|
||||
|
||||
|
||||
'select' => 'επιλογή',
|
||||
'Select' => 'Επιλογή',
|
||||
'Select data' => 'Επιλέξτε δεδομένα',
|
||||
@@ -247,16 +248,16 @@ $translations = array(
|
||||
'Loading' => 'Φορτώνει',
|
||||
'Whole result' => 'Όλο το αποτέλεσμα',
|
||||
'%d byte(s)' => array('%d byte', '%d bytes'),
|
||||
|
||||
|
||||
'Import' => 'Εισαγωγή',
|
||||
'%d row(s) have been imported.' => array('$d σειρά εισήχθη.', '%d σειρές εισήχθησαν.'),
|
||||
'File must be in UTF-8 encoding.' => 'Το αρχείο πρέπει να έχει κωδικοποίηση UTF-8.',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => 'Τροποποίηση',
|
||||
'Ctrl+click on a value to modify it.' => 'Πιέστε Ctrl+click σε μια τιμή για να την τροποποιήσετε.',
|
||||
'Use edit link to modify this value.' => 'Χρησιμοποιήστε το σύνδεσμο επεξεργασία για να τροποποιήσετε την τιμή.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Η εγγραφή%s εισήχθη.',
|
||||
'Item has been deleted.' => 'Η εγγραφή διαγράφηκε.',
|
||||
@@ -276,14 +277,14 @@ $translations = array(
|
||||
'Clone' => 'Κλωνοποίηση',
|
||||
'Delete' => 'Διαγραφή',
|
||||
'You have no privileges to update this table.' => 'Δεν έχετε δικαίωμα να τροποποιήσετε αυτό τον πίνακα.',
|
||||
|
||||
|
||||
'E-mail' => 'E-mail',
|
||||
'From' => 'Από',
|
||||
'Subject' => 'Θέμα',
|
||||
'Attachments' => 'Συνημμένα',
|
||||
'Send' => 'Αποστολή',
|
||||
'%d e-mail(s) have been sent.' => array('%d e-mail απεστάλη.', '%d e-mail απεστάλησαν.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Αριθμοί',
|
||||
'Date and time' => 'Ημερομηνία και ώρα',
|
||||
@@ -293,7 +294,7 @@ $translations = array(
|
||||
'Network' => 'Δίκτυο',
|
||||
'Geometry' => 'Γεωμετρία',
|
||||
'Relations' => 'Συσχετήσεις',
|
||||
|
||||
|
||||
'Editor' => 'Επεξεργαστής',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$5/$3/$1',
|
||||
@@ -304,11 +305,11 @@ $translations = array(
|
||||
'now' => 'τώρα',
|
||||
'yes' => 'ναι',
|
||||
'no' => 'όχι',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Το αρχείο υπάρχει.',
|
||||
'Please use one of the extensions %s.' => 'Παρακαλώ χρησιμοποιείστε μια από τις επεκτάσεις %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Τροποποίηση σχήματος',
|
||||
'Create schema' => 'Δημιουργία σχήματος',
|
||||
@@ -317,7 +318,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Το σχήμα τροποποιήθηκε.',
|
||||
'Schema' => 'Σχήμα',
|
||||
'Invalid schema.' => 'Άκυρο σχήμα.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Αλληλουχία',
|
||||
'Create sequence' => 'Δημιουργία αλληλουχίας',
|
||||
@@ -325,11 +326,33 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Η αλληλουχία δημιουργήθηκε.',
|
||||
'Sequence has been altered.' => 'Η αλληλουχία τροποποιήθηκε.',
|
||||
'Alter sequence' => 'Τροποποίηση αλληλουχίας',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Τύποι χρήστη',
|
||||
'Create type' => 'Δημιουργία τύπου',
|
||||
'Type has been dropped.' => 'Ο τύπος διαγράφηκε.',
|
||||
'Type has been created.' => 'Ο τύπος δημιουργήθηκε.',
|
||||
'Alter type' => 'Τροποποίηση τύπου',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Login',
|
||||
'Logout successful.' => 'Sesión finalizada con éxito.',
|
||||
'Invalid credentials.' => 'Usuario y/o clave de acceso incorrecta.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Servidor',
|
||||
'Username' => 'Usuario',
|
||||
'Password' => 'Contraseña',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Crear Base de datos',
|
||||
'SQL command' => 'Comando SQL',
|
||||
'Logout' => 'Cerrar sesión',
|
||||
'database' => 'base de datos',
|
||||
'Use' => 'Usar',
|
||||
'No tables.' => 'No existen tablas.',
|
||||
'select' => 'registros',
|
||||
@@ -264,4 +265,49 @@ $translations = array(
|
||||
'Permanent link' => 'Enlace permanente',
|
||||
'Edit all' => 'Editar todos',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Logi sisse',
|
||||
'Logout successful.' => 'Väljalogimine õnnestus.',
|
||||
'Invalid credentials.' => 'Ebakorrektsed andmed.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Server',
|
||||
'Username' => 'Kasutajanimi',
|
||||
'Password' => 'Parool',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Loo uus andmebaas',
|
||||
'SQL command' => 'SQL-Päring',
|
||||
'Logout' => 'Logi välja',
|
||||
'database' => 'andmebaas',
|
||||
'Use' => 'Kasuta',
|
||||
'No tables.' => 'Tabeleid ei leitud.',
|
||||
'select' => 'kuva',
|
||||
@@ -264,4 +265,49 @@ $translations = array(
|
||||
'Permanent link' => 'Püsilink',
|
||||
'Edit all' => 'Muuda kõiki',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'خروج',
|
||||
'Logged as: %s' => 'ورود به عنوان: %s',
|
||||
'Logout successful.' => 'با موفقیت خارج شدید.',
|
||||
'Invalid credentials.' => 'اعتبار سنجی نامعتبر.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'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> کرده تا آن را دائمی سازید.',
|
||||
'Language' => 'زبان',
|
||||
@@ -21,10 +21,10 @@ $translations = array(
|
||||
'Session expired, please login again.' => 'نشست پایان یافته، لطفا دوباره وارد شوید.',
|
||||
'%s version: %s through PHP extension %s' => 'نسخه %s : %s توسعه پی اچ پی %s',
|
||||
'Refresh' => 'بازیابی',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'rtl',
|
||||
|
||||
|
||||
'Privileges' => 'امتیازات',
|
||||
'Create user' => 'ایجاد کاربر',
|
||||
'User has been dropped.' => 'کاربر حذف شد.',
|
||||
@@ -35,14 +35,14 @@ $translations = array(
|
||||
'Routine' => 'روتین',
|
||||
'Grant' => 'اعطا',
|
||||
'Revoke' => 'لغو کردن',
|
||||
|
||||
|
||||
'Process list' => 'لیست فرآیند',
|
||||
'%d process(es) have been killed.' => '%d فرآیند متوقف شد.',
|
||||
'Kill' => 'حذف فرآیند',
|
||||
|
||||
|
||||
'Variables' => 'متغیرها',
|
||||
'Status' => 'وضعیت',
|
||||
|
||||
|
||||
'SQL command' => 'دستور SQL',
|
||||
'%d query(s) executed OK.' => '%d کوئری اجرا شد.',
|
||||
'Query executed OK, %d row(s) affected.' => 'کوئری اجرا شد. %d سطر تغیر کرد.',
|
||||
@@ -56,7 +56,7 @@ $translations = array(
|
||||
'History' => 'تاریخ',
|
||||
'Clear' => 'پاک کردن',
|
||||
'Edit all' => 'ویرایش همه',
|
||||
|
||||
|
||||
'File upload' => 'بارگذاری فایل',
|
||||
'From server' => 'از سرور',
|
||||
'Webserver file %s' => '%s فایل وب سرور',
|
||||
@@ -75,8 +75,9 @@ $translations = array(
|
||||
'save' => 'ذخیره',
|
||||
'Format' => 'حذف',
|
||||
'Data' => 'داده',
|
||||
|
||||
|
||||
'Database' => 'پایگاه داده',
|
||||
'database' => 'پایگاه داده',
|
||||
'Use' => 'استفاده',
|
||||
'Select database' => 'انتخاب پایگاه داده',
|
||||
'Invalid database.' => 'پایگاه داده نامعتبر.',
|
||||
@@ -88,10 +89,10 @@ $translations = array(
|
||||
'Alter database' => 'ویرایش پایگاه داده',
|
||||
'Create database' => 'ایجاد پایگاه داده',
|
||||
'Database schema' => 'ساختار پایگاه داده',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'ارتباط دائم',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ' ',
|
||||
'0123456789' => '۰۱۲۳۴۵۶۷۸۹',
|
||||
@@ -114,7 +115,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'جدولها انتقال داده شدند.',
|
||||
'Copy' => 'کپی کردن',
|
||||
'Tables have been copied.' => 'جدولها کپی شدند.',
|
||||
|
||||
|
||||
'Routines' => 'روالها',
|
||||
'Routine has been called, %d row(s) affected.' => array('روال فراخوانی شد %d سطر متاثر شد.', 'روال فراخوانی شد %d سطر متاثر شد.'),
|
||||
'Call' => 'صدا زدن',
|
||||
@@ -127,7 +128,7 @@ $translations = array(
|
||||
'Alter function' => 'ویرایش تابع',
|
||||
'Alter procedure' => 'ویرایش زیربرنامه',
|
||||
'Return type' => 'برگرداندن نوع',
|
||||
|
||||
|
||||
'Events' => 'رویدادها',
|
||||
'Event has been dropped.' => 'رویداد حذف شد.',
|
||||
'Event has been altered.' => 'رویداد ویرایش شد.',
|
||||
@@ -140,7 +141,7 @@ $translations = array(
|
||||
'Start' => 'آغاز',
|
||||
'End' => 'پایان',
|
||||
'On completion preserve' => 'تکمیل حفاظت فعال است',
|
||||
|
||||
|
||||
'Tables' => 'جدولها',
|
||||
'Tables and views' => 'جدولها و نمایه ها',
|
||||
'Table' => 'جدول',
|
||||
@@ -172,12 +173,12 @@ $translations = array(
|
||||
'Move down' => 'انتقال به پایین',
|
||||
'Remove' => 'حذف',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'حداکثر تعداد فیلدهای مجاز اشباع شد. لطفا %s را افزایش دهید.',
|
||||
|
||||
|
||||
'Partition by' => 'بخشبندی توسط',
|
||||
'Partitions' => 'بخشبندیها',
|
||||
'Partition name' => 'نام بخش',
|
||||
'Values' => 'مقادیر',
|
||||
|
||||
|
||||
'View' => 'نمایش',
|
||||
'Materialized view' => 'نمایه مادی',
|
||||
'View has been dropped.' => 'نمایش حذف شد.',
|
||||
@@ -185,14 +186,14 @@ $translations = array(
|
||||
'View has been created.' => 'نمایش ایجاد شد.',
|
||||
'Alter view' => 'حذف نمایش',
|
||||
'Create view' => 'ایجاد نمایش',
|
||||
|
||||
|
||||
'Indexes' => 'ایندکسها',
|
||||
'Indexes have been altered.' => 'ایندکسها ویرایش شدند.',
|
||||
'Alter indexes' => 'ویرایش ایندکسها',
|
||||
'Add next' => 'افرودن بعدی',
|
||||
'Index Type' => 'نوع ایندکس',
|
||||
'Column (length)' => 'ستون (طول)',
|
||||
|
||||
|
||||
'Foreign keys' => 'کلیدهای خارجی',
|
||||
'Foreign key' => 'کلید خارجی',
|
||||
'Foreign key has been dropped.' => 'کلید خارجی حذف شد.',
|
||||
@@ -208,7 +209,7 @@ $translations = array(
|
||||
'ON DELETE' => 'ON DELETE',
|
||||
'ON UPDATE' => 'ON UPDATE',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'داده مبدا و مقصد ستونها بایستی شبیه هم باشند.',
|
||||
|
||||
|
||||
'Triggers' => 'تریگرها',
|
||||
'Add trigger' => 'افزودن تریگر',
|
||||
'Trigger has been dropped.' => 'تریگر حذف شد.',
|
||||
@@ -219,7 +220,7 @@ $translations = array(
|
||||
'Time' => 'زمان',
|
||||
'Event' => 'رویداد',
|
||||
'Name' => 'نام',
|
||||
|
||||
|
||||
'select' => 'انتخاب',
|
||||
'Select' => 'انتخاب',
|
||||
'Select data' => 'انتخاب داده',
|
||||
@@ -245,16 +246,16 @@ $translations = array(
|
||||
'Loading' => 'در حال بارگزاری',
|
||||
'Whole result' => 'همه نتایج',
|
||||
'%d byte(s)' => array('%d بایت', '%d بایت'),
|
||||
|
||||
|
||||
'Import' => 'وارد کردن',
|
||||
'%d row(s) have been imported.' => array('%d سطر وارد شد.', '%d سطر وارد شد.'),
|
||||
'File must be in UTF-8 encoding.' => 'فرمت فایل باید UTF-8 باشید.',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => 'ویرایش',
|
||||
'Ctrl+click on a value to modify it.' => 'برای ویرایش بر روی مقدار ctrl+click کنید.',
|
||||
'Use edit link to modify this value.' => 'از لینک ویرایش برای ویرایش این مقدار استفاده کنید.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => '%s آیتم درج شد.',
|
||||
'Item has been deleted.' => 'آیتم حذف شد.',
|
||||
@@ -274,14 +275,14 @@ $translations = array(
|
||||
'Clone' => 'تکثیر',
|
||||
'Delete' => 'حذف',
|
||||
'You have no privileges to update this table.' => 'شما اختیار ویرایش این جدول را ندارید.',
|
||||
|
||||
|
||||
'E-mail' => 'پست الکترونیک',
|
||||
'From' => 'فرستنده',
|
||||
'Subject' => 'موضوع',
|
||||
'Attachments' => 'پیوست ها',
|
||||
'Send' => 'ارسال',
|
||||
'%d e-mail(s) have been sent.' => array('%d ایمیل ارسال شد.', '%d ایمیل ارسال شد.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'اعداد',
|
||||
'Date and time' => 'تاریخ و زمان',
|
||||
@@ -291,7 +292,7 @@ $translations = array(
|
||||
'Network' => 'شبکه',
|
||||
'Geometry' => 'هندسه',
|
||||
'Relations' => 'رابطه ها',
|
||||
|
||||
|
||||
'Editor' => 'ویرایشگر',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$1-$3-$5',
|
||||
@@ -306,7 +307,7 @@ $translations = array(
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'فایل موجود است.',
|
||||
'Please use one of the extensions %s.' => 'لطفا یکی از پسوندها را انتخاب نمائید %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'ویرایش ساختار',
|
||||
'Create schema' => 'ایجاد ساختار',
|
||||
@@ -315,7 +316,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'ساختار ویرایش شد.',
|
||||
'Schema' => 'ساختار',
|
||||
'Invalid schema.' => 'ساختار نامعتبر.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'صف ها',
|
||||
'Create sequence' => 'ایجاد صف',
|
||||
@@ -323,11 +324,35 @@ $translations = array(
|
||||
'Sequence has been created.' => 'صف ایجاد شد.',
|
||||
'Sequence has been altered.' => 'صف ویرایش شد.',
|
||||
'Alter sequence' => 'ویرایش صف',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'انواع کاربر',
|
||||
'Create type' => 'ایجاد نوع',
|
||||
'Type has been dropped.' => 'نوع حذف شد.',
|
||||
'Type has been created.' => 'نوع ایجاد شد.',
|
||||
'Alter type' => 'ویرایش نوع',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Kirjaudu ulos',
|
||||
'Logged as: %s' => 'Olet kirjautunut käyttäjänä: %s',
|
||||
'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.'),
|
||||
'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',
|
||||
@@ -22,10 +22,10 @@ $translations = array(
|
||||
'Session expired, please login again.' => 'Istunto vanhentunut, kirjaudu uudelleen.',
|
||||
'%s version: %s through PHP extension %s' => '%s versio: %s PHP-laajennuksella %s',
|
||||
'Refresh' => 'Virkistä',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => 'Oikeudet',
|
||||
'Create user' => 'Luo käyttäjä',
|
||||
'User has been dropped.' => 'Käyttäjä poistettiin.',
|
||||
@@ -36,14 +36,14 @@ $translations = array(
|
||||
'Routine' => 'Rutiini',
|
||||
'Grant' => 'Myönnä',
|
||||
'Revoke' => 'Kiellä',
|
||||
|
||||
|
||||
'Process list' => 'Prosessilista',
|
||||
'%d process(es) have been killed.' => array('%d prosessi lopetettu.', '%d prosessia lopetettu..'),
|
||||
'Kill' => 'Lopeta',
|
||||
|
||||
|
||||
'Variables' => 'Muuttujat',
|
||||
'Status' => 'Tila',
|
||||
|
||||
|
||||
'SQL command' => 'SQL-komento',
|
||||
'%d query(s) executed OK.' => array('%d kysely onnistui.', '%d kyselyä onnistui.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Kysely onnistui, kohdistui %d riviin.', 'Kysely onnistui, kohdistui %d riviin.'),
|
||||
@@ -57,7 +57,7 @@ $translations = array(
|
||||
'History' => 'Historia',
|
||||
'Clear' => 'Tyhjennä',
|
||||
'Edit all' => 'Muokkaa kaikkia',
|
||||
|
||||
|
||||
'File upload' => 'Tiedoston lataus palvelimelle',
|
||||
'From server' => 'Verkkopalvelimella Adminer-kansiossa oleva tiedosto',
|
||||
'Webserver file %s' => 'Verkkopalvelintiedosto %s',
|
||||
@@ -69,7 +69,7 @@ $translations = array(
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Liian suuri POST-datamäärä. Pienennä dataa tai kasvata arvoa %s konfigurointitiedostossa.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Voit ladata suuren SQL-tiedoston FTP:n kautta ja tuoda sen sitten palvelimelta.',
|
||||
'You are offline.' => 'Olet offline-tilassa.',
|
||||
|
||||
|
||||
'Export' => 'Vienti',
|
||||
'Output' => 'Tulos',
|
||||
'open' => 'avaa',
|
||||
@@ -77,8 +77,9 @@ $translations = array(
|
||||
'Saving' => 'Tallennetaan',
|
||||
'Format' => 'Muoto',
|
||||
'Data' => 'Data',
|
||||
|
||||
|
||||
'Database' => 'Tietokanta',
|
||||
'database' => 'tietokanta',
|
||||
'Use' => 'Käytä',
|
||||
'Select database' => 'Valitse tietokanta',
|
||||
'Invalid database.' => 'Tietokanta ei kelpaa.',
|
||||
@@ -90,10 +91,10 @@ $translations = array(
|
||||
'Alter database' => 'Muuta tietokantaa',
|
||||
'Create database' => 'Luo tietokanta',
|
||||
'Database schema' => 'Tietokantakaava',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Pysyvä linkki',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ',',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -116,7 +117,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'Taulut on siirretty.',
|
||||
'Copy' => 'Kopioi',
|
||||
'Tables have been copied.' => 'Taulut on kopioitu.',
|
||||
|
||||
|
||||
'Routines' => 'Rutiinit',
|
||||
'Routine has been called, %d row(s) affected.' => array('Rutiini kutsuttu, kohdistui %d riviin.', 'Rutiini kutsuttu, kohdistui %d riviin.'),
|
||||
'Call' => 'Kutsua',
|
||||
@@ -129,7 +130,7 @@ $translations = array(
|
||||
'Alter function' => 'Muuta funktiota',
|
||||
'Alter procedure' => 'Muuta proseduuria',
|
||||
'Return type' => 'Palautustyyppi',
|
||||
|
||||
|
||||
'Events' => 'Tapahtumat',
|
||||
'Event has been dropped.' => 'Tapahtuma on poistettu.',
|
||||
'Event has been altered.' => 'Tapahtumaa on muutettu.',
|
||||
@@ -142,7 +143,7 @@ $translations = array(
|
||||
'Start' => 'Aloitus',
|
||||
'End' => 'Lopetus',
|
||||
'On completion preserve' => 'Säilytä, kun valmis',
|
||||
|
||||
|
||||
'Tables' => 'Taulut',
|
||||
'Tables and views' => 'Taulut ja näkymät',
|
||||
'Table' => 'Taulu',
|
||||
@@ -174,12 +175,12 @@ $translations = array(
|
||||
'Move down' => 'Siirrä alas',
|
||||
'Remove' => 'Poista',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Kenttien sallittu enimmäismäärä ylitetty. Kasvata arvoa %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Osioi arvolla',
|
||||
'Partitions' => 'Osiot',
|
||||
'Partition name' => 'Osion nimi',
|
||||
'Values' => 'Arvot',
|
||||
|
||||
|
||||
'View' => 'Näkymä',
|
||||
'Materialized view' => 'Materialisoitunut näkymä',
|
||||
'View has been dropped.' => 'Näkymä on poistettu.',
|
||||
@@ -187,14 +188,14 @@ $translations = array(
|
||||
'View has been created.' => 'Näkymä on luotu.',
|
||||
'Alter view' => 'Muuta näkymää',
|
||||
'Create view' => 'Luo näkymä',
|
||||
|
||||
|
||||
'Indexes' => 'Indeksit',
|
||||
'Indexes have been altered.' => 'Indeksejä on muutettu.',
|
||||
'Alter indexes' => 'Muuta indeksejä',
|
||||
'Add next' => 'Lisää seuraava',
|
||||
'Index Type' => 'Indeksityyppi',
|
||||
'Column (length)' => 'Sarake (pituus)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Vieraat avaimet',
|
||||
'Foreign key' => 'Vieras avain',
|
||||
'Foreign key has been dropped.' => 'Vieras avain on poistettu.',
|
||||
@@ -210,7 +211,7 @@ $translations = array(
|
||||
'ON DELETE' => 'ON DELETE',
|
||||
'ON UPDATE' => 'ON UPDATE',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Lähde- ja kohdesarakkeiden tulee olla samaa tietotyyppiä, kohdesarakkeisiin tulee olla indeksi ja dataa, johon viitataan, täytyy olla.',
|
||||
|
||||
|
||||
'Triggers' => 'Liipaisimet',
|
||||
'Add trigger' => 'Lisää liipaisin',
|
||||
'Trigger has been dropped.' => 'Liipaisin on poistettu.',
|
||||
@@ -221,7 +222,7 @@ $translations = array(
|
||||
'Time' => 'Aika',
|
||||
'Event' => 'Tapahtuma',
|
||||
'Name' => 'Nimi',
|
||||
|
||||
|
||||
'select' => 'valitse',
|
||||
'Select' => 'Valitse',
|
||||
'Select data' => 'Valitse data',
|
||||
@@ -247,16 +248,16 @@ $translations = array(
|
||||
'Loading' => 'Ladataan',
|
||||
'Whole result' => 'Koko tulos',
|
||||
'%d byte(s)' => array('%d tavu', '%d tavua'),
|
||||
|
||||
|
||||
'Import' => 'Tuonti',
|
||||
'%d row(s) have been imported.' => array('%d rivi tuotiin.', '%d riviä tuotiin.'),
|
||||
'File must be in UTF-8 encoding.' => 'Tiedoston täytyy olla UTF-8-muodossa.',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => 'Muuta',
|
||||
'Ctrl+click on a value to modify it.' => 'Ctrl+napsauta arvoa muuttaaksesi.',
|
||||
'Use edit link to modify this value.' => 'Käytä muokkaa-linkkiä muuttaaksesi tätä arvoa.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Tietue%s lisättiin.',
|
||||
'Item has been deleted.' => 'Tietue poistettiin.',
|
||||
@@ -276,14 +277,14 @@ $translations = array(
|
||||
'Clone' => 'Kloonaa',
|
||||
'Delete' => 'Poista',
|
||||
'You have no privileges to update this table.' => 'Sinulla ei ole oikeutta päivittää tätä taulua.',
|
||||
|
||||
|
||||
'E-mail' => 'S-posti',
|
||||
'From' => 'Lähettäjä',
|
||||
'Subject' => 'Aihe',
|
||||
'Attachments' => 'Liitteet',
|
||||
'Send' => 'Lähetä',
|
||||
'%d e-mail(s) have been sent.' => array('% sähköpostiviestiä lähetetty.', '% sähköpostiviestiä lähetetty.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Numerot',
|
||||
'Date and time' => 'Päiväys ja aika',
|
||||
@@ -293,7 +294,7 @@ $translations = array(
|
||||
'Network' => 'Verkko',
|
||||
'Geometry' => 'Geometria',
|
||||
'Relations' => 'Suhteet',
|
||||
|
||||
|
||||
'Editor' => 'Editori',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$5.$3.$1',
|
||||
@@ -304,11 +305,11 @@ $translations = array(
|
||||
'now' => 'nyt',
|
||||
'yes' => 'kyllä',
|
||||
'no' => 'ei',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Tiedosto on olemassa.',
|
||||
'Please use one of the extensions %s.' => 'Käytä jotain %s-laajennuksista.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Muuta kaavaa',
|
||||
'Create schema' => 'Luo kaava',
|
||||
@@ -317,7 +318,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Kaavaa muutettiin.',
|
||||
'Schema' => 'Kaava',
|
||||
'Invalid schema.' => 'Kaava ei kelpaa.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Sekvenssit',
|
||||
'Create sequence' => 'Luo sekvenssi',
|
||||
@@ -325,7 +326,7 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Sekvenssi on luotu.',
|
||||
'Sequence has been altered.' => 'Sekvenssiä on muutettu.',
|
||||
'Alter sequence' => 'Muuta sekvenssiä',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Käyttäjän tyypit',
|
||||
'Create type' => 'Luo tyyppi',
|
||||
@@ -346,4 +347,12 @@ $translations = array(
|
||||
'Unknown error.' => 'Tuntematon virhe.',
|
||||
'Database does not support password.' => 'Tietokanta ei tue salasanaa.',
|
||||
'Disable %s or enable %s or %s extensions.' => 'Poista käytöstä %s tai ota käyttöön laajennus %s tai %s.',
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Kyllä',
|
||||
'No' => 'Ei',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Authentification',
|
||||
'Logout successful.' => 'Au revoir !',
|
||||
'Invalid credentials.' => 'Authentification échouée.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Serveur',
|
||||
'Username' => 'Utilisateur',
|
||||
'Password' => 'Mot de passe',
|
||||
@@ -30,6 +30,7 @@ $translations = array(
|
||||
'Create database' => 'Créer une base de données',
|
||||
'SQL command' => 'Requête SQL',
|
||||
'Logout' => 'Déconnexion',
|
||||
'database' => 'base de données',
|
||||
'Use' => 'Utiliser',
|
||||
'No tables.' => 'Aucune table.',
|
||||
'select' => 'select',
|
||||
@@ -287,16 +288,26 @@ $translations = array(
|
||||
'Default value' => 'Valeur par défaut',
|
||||
'If you did not send this request from Adminer then close this page.' => 'Si vous n\'avez pas envoyé cette requête depuis Adminer, alors fermez cette page.',
|
||||
'You are offline.' => 'Vous êtes hors ligne.',
|
||||
|
||||
'Drop %s?' => 'Supprimer %s?',
|
||||
'overwrite' => 'écraser',
|
||||
'DB' => 'BD',
|
||||
'ATTACH queries are not supported.' => 'Requêtes ATTACH ne sont pas supportées.',
|
||||
'Warnings' => 'Avertissements',
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer ne supporte pas l\'accès aux bases de données sans mot de passe, <a href="https://www.adminer.org/en/password/"%s>plus d\'information</a>.',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => 'Cette action sera exécutée après s\'être connecté avec les mêmes données de connexion.',
|
||||
'Connecting to privileged ports is not allowed.' => 'La connexion aux ports privilégiés n\'est pas autorisée.',
|
||||
'There is a space in the input password which might be the cause.' => 'Il y a un espace dans le mot de passe entré qui pourrait en être la cause.',
|
||||
'Unknown error.' => 'Erreur inconnue',
|
||||
'Database does not support password.' => 'La base de données ne support pas les mots de passe',
|
||||
'Disable %s or enable %s or %s extensions.' => 'Désactiver %s ou activer %s or %s extensions.',
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Oui',
|
||||
'No' => 'Non',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Conectar',
|
||||
'Logout successful.' => 'Pechouse a sesión con éxito.',
|
||||
'Invalid credentials.' => 'Credenciais (usuario e/ou contrasinal) inválidos.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Servidor',
|
||||
'Username' => 'Usuario',
|
||||
'Password' => 'Contrasinal',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Crear Base de datos',
|
||||
'SQL command' => 'Comando SQL',
|
||||
'Logout' => 'Pechar sesión',
|
||||
'database' => 'base de datos',
|
||||
'Use' => 'Usar',
|
||||
'No tables.' => 'Nengunha táboa.',
|
||||
'select' => 'selecciona',
|
||||
@@ -287,4 +288,26 @@ $translations = array(
|
||||
'Saving' => 'Gardando',
|
||||
'yes' => 'si',
|
||||
'no' => 'non',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Si',
|
||||
'No' => 'Non',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'התחברות',
|
||||
'Logout successful.' => 'ההתחברות הצליחה',
|
||||
'Invalid credentials.' => 'פרטי התחברות שגויים',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'שרת',
|
||||
'Username' => 'שם משתמש',
|
||||
'Password' => 'סיסמה',
|
||||
@@ -30,6 +30,7 @@ $translations = array(
|
||||
'Create database' => 'צור מסד נתונים',
|
||||
'SQL command' => 'שאילתת SQL',
|
||||
'Logout' => 'התנתק',
|
||||
'database' => 'מסד נתונים',
|
||||
'Use' => 'השתמש',
|
||||
'No tables.' => 'אין טבלאות',
|
||||
'select' => 'בחר',
|
||||
@@ -289,4 +290,24 @@ $translations = array(
|
||||
'Saving' => 'שומר',
|
||||
'yes' => 'כן',
|
||||
'no' => 'לא',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Warnings' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Belépés',
|
||||
'Logout successful.' => 'Sikeres kilépés.',
|
||||
'Invalid credentials.' => 'Érvénytelen adatok.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Szerver',
|
||||
'Username' => 'Felhasználó',
|
||||
'Password' => 'Jelszó',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Adatbázis létrehozása',
|
||||
'SQL command' => 'SQL parancs',
|
||||
'Logout' => 'Kilépés',
|
||||
'database' => 'adatbázis',
|
||||
'Use' => 'Használ',
|
||||
'No tables.' => 'Nincs tábla.',
|
||||
'select' => 'kiválasztás',
|
||||
@@ -263,4 +264,50 @@ $translations = array(
|
||||
'Permanent link' => 'Hivatkozás',
|
||||
'Edit all' => 'Összes szerkesztése',
|
||||
'HH:MM:SS' => 'óó:pp:mm',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Ctrl+click on a value to modify it.' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Keluar',
|
||||
'Logged as: %s' => 'Masuk sebagai: %s',
|
||||
'Logout successful.' => 'Berhasil keluar.',
|
||||
'Invalid credentials.' => 'Akses tidak sah.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Language' => 'Bahasa',
|
||||
'Invalid CSRF token. Send the form again.' => 'Token CSRF tidak sah. Kirim ulang formulir.',
|
||||
'No extension' => 'Ekstensi tidak ada',
|
||||
@@ -73,6 +73,7 @@ $translations = array(
|
||||
'Data' => 'Data',
|
||||
|
||||
'Database' => 'Basis data',
|
||||
'database' => 'basis data',
|
||||
'Use' => 'Gunakan',
|
||||
'Select database' => 'Pilih basis data',
|
||||
'Invalid database.' => 'Basis data tidak sah.',
|
||||
@@ -312,4 +313,46 @@ $translations = array(
|
||||
'Type has been dropped.' => 'Jenis berhasil dihapus.',
|
||||
'Type has been created.' => 'Jenis berhasil dibuat.',
|
||||
'Alter type' => 'Ubah jenis',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Ctrl+click on a value to modify it.' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Autenticazione',
|
||||
'Logout successful.' => 'Uscita effettuata con successo.',
|
||||
'Invalid credentials.' => 'Credenziali non valide.',
|
||||
'Invalid server or credentials.' => 'Server o credenziali non valide.',
|
||||
'Server' => 'Server',
|
||||
'Username' => 'Utente',
|
||||
'Password' => 'Password',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Crea database',
|
||||
'SQL command' => 'Comando SQL',
|
||||
'Logout' => 'Esci',
|
||||
'database' => 'database',
|
||||
'Use' => 'Usa',
|
||||
'No tables.' => 'No tabelle.',
|
||||
'select' => 'seleziona',
|
||||
@@ -264,6 +265,7 @@ $translations = array(
|
||||
'Permanent link' => 'Link permanente',
|
||||
'Edit all' => 'Modifica tutto',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => 'Scartare %s?',
|
||||
'Tables have been optimized.' => 'Le tabelle sono state ottimizzate',
|
||||
'Materialized view' => 'Vista materializzata',
|
||||
@@ -277,12 +279,13 @@ $translations = array(
|
||||
'Loading' => 'Caricamento',
|
||||
'ATTACH queries are not supported.' => 'ATTACH queries non sono supportate.',
|
||||
'Warnings' => 'Attenzione',
|
||||
'%d / ' => '%d / ',
|
||||
'%d / ' => array('%d / '),
|
||||
'Limit rows' => 'Limite righe',
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer non supporta accesso a databse senza password, <a href="https://www.adminer.org/it/password/"%s>piú informazioni</a>.',
|
||||
'Default value' => 'Valore predefinito',
|
||||
'Full table scan' => 'Analizza intera tabella',
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('Troppi tentativi infruttuosi di login, si prega di riprovare in %d minuto.', 'Troppi tentativi infruttuosi di login, si prega di riprovare in %d minuti.'),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'La password principale é scaduta. <a href="https://www.adminer.org/it/extension/"%s>Implementare</a> %s come metodo per renderla permanente.',
|
||||
'The action will be performed after successful login with the same credentials.' => 'La azione verrá eseguita dopo un login valido con le stesse credenziali.',
|
||||
'Connecting to privileged ports is not allowed.' => 'LA connessione a porte privilegiate non é permessa.',
|
||||
@@ -299,4 +302,12 @@ $translations = array(
|
||||
'Disable %s or enable %s or %s extensions.' => 'Disabilita %s o abilita %s oppure %s estensioni.',
|
||||
'yes' => 'si',
|
||||
'no' => 'no',
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Si',
|
||||
'No' => 'No',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'ログイン',
|
||||
'Logout successful.' => 'ログアウト',
|
||||
'Invalid credentials.' => '不正なログイン',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'サーバ',
|
||||
'Username' => 'ユーザ名',
|
||||
'Password' => 'パスワード',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'データベースを作成',
|
||||
'SQL command' => 'SQLコマンド',
|
||||
'Logout' => 'ログアウト',
|
||||
'database' => 'データベース',
|
||||
'Use' => '使用',
|
||||
'No tables.' => 'テーブルがありません。',
|
||||
'select' => '選択',
|
||||
@@ -273,4 +274,40 @@ $translations = array(
|
||||
'yes' => 'はい',
|
||||
'no' => 'いいえ',
|
||||
'Default value' => '既定値',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Ctrl+click on a value to modify it.' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'შესვლა',
|
||||
'Logout successful.' => 'გამოხვედით სისტემიდან.',
|
||||
'Invalid credentials.' => 'არასწორი მომხმარებელი ან პაროლი.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'სერვერი',
|
||||
'Username' => 'მომხმარებელი',
|
||||
'Password' => 'პაროლი',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'ბაზის შექმნა',
|
||||
'SQL command' => 'SQL-ბრძანება',
|
||||
'Logout' => 'გასვლა',
|
||||
'database' => 'ბაზა',
|
||||
'Use' => 'არჩევა',
|
||||
'No tables.' => 'ბაზაში ცხრილი არაა.',
|
||||
'select' => 'არჩევა',
|
||||
@@ -299,4 +300,14 @@ $translations = array(
|
||||
'Unknown error.' => 'უცნობი შეცდომა.',
|
||||
'Database does not support password.' => 'ბაზაში არაა მხარდაჭერილი პაროლი.',
|
||||
'Disable %s or enable %s or %s extensions.' => 'გათიშეთ %s ან ჩართეთ %s ან %s გაფართოება.',
|
||||
|
||||
'overwrite' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -71,6 +71,7 @@ $translations = array(
|
||||
'Database has been dropped.' => '데이터베이스를 삭제했습니다.',
|
||||
'Database has been renamed.' => '데이터베이스의 이름을 바꾸었습니다.',
|
||||
'Database schema' => '데이터베이스 구조',
|
||||
'database' => '데이터베이스',
|
||||
'Database' => '데이터베이스',
|
||||
'Databases have been dropped.' => '데이터베이스를 삭제했습니다.',
|
||||
'Date and time' => '시간',
|
||||
@@ -120,7 +121,7 @@ $translations = array(
|
||||
'Indexes have been altered.' => '색인을 변경했습니다.',
|
||||
'Indexes' => '색인',
|
||||
'Insert' => '삽입',
|
||||
'Invalid credentials.' => '잘못된 로그인',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Invalid CSRF token. Send the form again.' => '잘못된 CSRF 토큰입니다. 다시 보내주십시오.',
|
||||
'Invalid database.' => '잘못된 데이터베이스입니다.',
|
||||
'Invalid schema.' => '잘못된 스키마입니다.',
|
||||
@@ -276,4 +277,37 @@ $translations = array(
|
||||
'You are offline.' => '오프라인입니다.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => '큰 SQL 파일은 FTP를 통하여 업로드하여 서버에서 가져올 수 있습니다.',
|
||||
'You have no privileges to update this table.' => '이 테이블을 업데이트할 권한이 없습니다.',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'User types' => null,
|
||||
'DB' => null,
|
||||
'Ctrl+click on a value to modify it.' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'%d / ' => array(),
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Atsijungti',
|
||||
'Logged as: %s' => 'Prisijungęs kaip: %s',
|
||||
'Logout successful.' => 'Jūs atsijungėte nuo sistemos.',
|
||||
'Invalid credentials.' => 'Neteisingi prisijungimo duomenys.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Language' => 'Kalba',
|
||||
'Invalid CSRF token. Send the form again.' => 'Neteisingas CSRF tokenas. Bandykite siųsti formos duomenis dar kartą.',
|
||||
'No extension' => 'Nėra plėtiio',
|
||||
@@ -19,10 +19,10 @@ $translations = array(
|
||||
'Session expired, please login again.' => 'Sesijos galiojimas baigėsi. Prisijunkite iš naujo.',
|
||||
'%s version: %s through PHP extension %s' => '%s versija: %s per PHP plėtinį %s',
|
||||
'Refresh' => 'Atnaujinti',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => 'Privilegijos',
|
||||
'Create user' => 'Sukurti vartotoją',
|
||||
'User has been dropped.' => 'Vartotojas ištrintas.',
|
||||
@@ -33,14 +33,14 @@ $translations = array(
|
||||
'Routine' => 'Procedūra',
|
||||
'Grant' => 'Suteikti',
|
||||
'Revoke' => 'Atšaukti',
|
||||
|
||||
|
||||
'Process list' => 'Procesų sąrašas',
|
||||
'%d process(es) have been killed.' => array('%d procesas nutrauktas.', '%d procesai nutraukti.', '%d procesų nutraukta.'),
|
||||
'Kill' => 'Nutraukti',
|
||||
|
||||
|
||||
'Variables' => 'Kintamieji',
|
||||
'Status' => 'Būsena',
|
||||
|
||||
|
||||
'SQL command' => 'SQL užklausa',
|
||||
'%d query(s) executed OK.' => array('%d užklausa įvykdyta.', '%d užklausos įvykdytos.', '%d užklausų įvykdyta.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Užklausa įvykdyta. Pakeistas %d įrašas.', 'Užklausa įvykdyta. Pakeisti %d įrašai.', 'Užklausa įvykdyta. Pakeista %d įrašų.'),
|
||||
@@ -54,7 +54,7 @@ $translations = array(
|
||||
'History' => 'Istorija',
|
||||
'Clear' => 'Išvalyti',
|
||||
'Edit all' => 'Redaguoti visus',
|
||||
|
||||
|
||||
'File upload' => 'Failo įkėlimas',
|
||||
'From server' => 'Iš serverio',
|
||||
'Webserver file %s' => 'Failas %s iš serverio',
|
||||
@@ -64,15 +64,16 @@ $translations = array(
|
||||
'Unable to upload a file.' => 'Nepavyko įkelti failo.',
|
||||
'Maximum allowed file size is %sB.' => 'Maksimalus failo dydis - %sB.',
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Per daug POST duomenų. Sumažinkite duomenų kiekį arba padidinkite konfigūracijos nustatymą %s.',
|
||||
|
||||
|
||||
'Export' => 'Eksportas',
|
||||
'Output' => 'Išvestis',
|
||||
'open' => 'atidaryti',
|
||||
'save' => 'išsaugoti',
|
||||
'Format' => 'Formatas',
|
||||
'Data' => 'Duomenys',
|
||||
|
||||
|
||||
'Database' => 'Duomenų bazė',
|
||||
'database' => 'duomenų bazė',
|
||||
'Use' => 'Naudoti',
|
||||
'Select database' => 'Pasirinkti duomenų bazę',
|
||||
'Invalid database.' => 'Neteisinga duomenų bazė.',
|
||||
@@ -84,10 +85,10 @@ $translations = array(
|
||||
'Alter database' => 'Redaguoti duomenų bazę',
|
||||
'Create database' => 'Sukurti duomenų bazę',
|
||||
'Database schema' => 'Duomenų bazės schema',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Pastovi nuoroda',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ' ',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -109,7 +110,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'Lentelės perkeltos.',
|
||||
'Copy' => 'Kopijuoti',
|
||||
'Tables have been copied.' => 'Lentelės nukopijuotos.',
|
||||
|
||||
|
||||
'Routines' => 'Procedūros',
|
||||
'Routine has been called, %d row(s) affected.' => array('Procedūra įvykdyta. %d įrašas pakeistas.', 'Procedūra įvykdyta. %d įrašai pakeisti.', 'Procedūra įvykdyta. %d įrašų pakeista.'),
|
||||
'Call' => 'Vykdyti',
|
||||
@@ -122,7 +123,7 @@ $translations = array(
|
||||
'Alter function' => 'Keisti funkciją',
|
||||
'Alter procedure' => 'Keiskti procedūrą',
|
||||
'Return type' => 'Grąžinimo tipas',
|
||||
|
||||
|
||||
'Events' => 'Įvykiai',
|
||||
'Event has been dropped.' => 'Įvykis pašalintas.',
|
||||
'Event has been altered.' => 'Įvykis pakeistas.',
|
||||
@@ -135,7 +136,7 @@ $translations = array(
|
||||
'Start' => 'Pradžia',
|
||||
'End' => 'Pabaiga',
|
||||
'On completion preserve' => 'Įvykdžius išsaugoti',
|
||||
|
||||
|
||||
'Tables' => 'Lentelės',
|
||||
'Tables and views' => 'Lentelės ir vaizdai',
|
||||
'Table' => 'Lentelė',
|
||||
@@ -163,26 +164,26 @@ $translations = array(
|
||||
'Move down' => 'Perkelti žemyn',
|
||||
'Remove' => 'Pašalinti',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Viršytas maksimalus leidžiamų stulpelių kiekis. Padidinkite %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Skirstyti pagal',
|
||||
'Partitions' => 'Skirsniai',
|
||||
'Partition name' => 'Skirsnio pavadinimas',
|
||||
'Values' => 'Reikšmės',
|
||||
|
||||
|
||||
'View' => 'Vaizdas',
|
||||
'View has been dropped.' => 'Vaizdas pašalintas.',
|
||||
'View has been altered.' => 'Vaizdas pakeistas.',
|
||||
'View has been created.' => 'Vaizdas sukurtas.',
|
||||
'Alter view' => 'Redaguoti vaizdą',
|
||||
'Create view' => 'Sukurti vaizdą',
|
||||
|
||||
|
||||
'Indexes' => 'Indeksai',
|
||||
'Indexes have been altered.' => 'Indeksai pakeisti.',
|
||||
'Alter indexes' => 'Redaguoti indeksus',
|
||||
'Add next' => 'Pridėti kitą',
|
||||
'Index Type' => 'Indekso tipas',
|
||||
'Column (length)' => 'Stulpelis (ilgis)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Išoriniai raktai',
|
||||
'Foreign key' => 'Išorinis raktas',
|
||||
'Foreign key has been dropped.' => 'Išorinis raktas pašalintas.',
|
||||
@@ -198,7 +199,7 @@ $translations = array(
|
||||
'ON DELETE' => 'Ištrinant',
|
||||
'ON UPDATE' => 'Atnaujinant',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Šaltinio ir tikslinis stulpelis turi būti to paties tipo, tiksliniame stulpelyje turi būti naudojamas indeksas ir duomenys turi egzistuoti.',
|
||||
|
||||
|
||||
'Triggers' => 'Trigeriai',
|
||||
'Add trigger' => 'Pridėti trigerį',
|
||||
'Trigger has been dropped.' => 'Trigeris pašalintas.',
|
||||
@@ -209,7 +210,7 @@ $translations = array(
|
||||
'Time' => 'Laikas',
|
||||
'Event' => 'Įvykis',
|
||||
'Name' => 'Pavadinimas',
|
||||
|
||||
|
||||
'select' => 'atrinkti',
|
||||
'Select' => 'Atrinkti',
|
||||
'Select data' => 'Atrinkti duomenis',
|
||||
@@ -230,13 +231,13 @@ $translations = array(
|
||||
'last' => 'paskutinis',
|
||||
'Whole result' => 'Visas rezultatas',
|
||||
'%d byte(s)' => array('%d baitas', '%d baigai', '%d baitų'),
|
||||
|
||||
|
||||
'Import' => 'Importas',
|
||||
'%d row(s) have been imported.' => array('%d įrašas įkelta.', '%d įrašai įkelti.', '%d įrašų įkelta.'),
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Use edit link to modify this value.' => 'Norėdami redaguoti reikšmę naudokite redagavimo nuorodą.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Įrašas%s sukurtas.',
|
||||
'Item has been deleted.' => 'Įrašas ištrintas.',
|
||||
@@ -254,14 +255,14 @@ $translations = array(
|
||||
'Save and insert next' => 'Išsaugoti ir įrašyti kitą',
|
||||
'Clone' => 'Klonuoti',
|
||||
'Delete' => 'Trinti',
|
||||
|
||||
|
||||
'E-mail' => 'El. paštas',
|
||||
'From' => 'Nuo',
|
||||
'Subject' => 'Antraštė',
|
||||
'Attachments' => 'Priedai',
|
||||
'Send' => 'Siųsti',
|
||||
'%d e-mail(s) have been sent.' => array('Išsiųstas %d laiškas.', 'Išsiųsti %d laiškai.', 'Išsiųsta %d laiškų.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Skaičiai',
|
||||
'Date and time' => 'Data ir laikas',
|
||||
@@ -271,7 +272,7 @@ $translations = array(
|
||||
'Network' => 'Tinklas',
|
||||
'Geometry' => 'Geometrija',
|
||||
'Relations' => 'Ryšiai',
|
||||
|
||||
|
||||
'Editor' => 'Redaktorius',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$1-$3-$5',
|
||||
@@ -280,11 +281,11 @@ $translations = array(
|
||||
// hint for time format - use language equivalents for hour, minute and second shortcuts
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
'now' => 'dabar',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Failas egzistuoja.',
|
||||
'Please use one of the extensions %s.' => 'Naudokite vieną iš plėtinių %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Keisti schemą',
|
||||
'Create schema' => 'Sukurti schemą',
|
||||
@@ -293,7 +294,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Schema pakeista.',
|
||||
'Schema' => 'Schema',
|
||||
'Invalid schema.' => 'Neteisinga schema.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Sekos',
|
||||
'Create sequence' => 'Sukurti seką',
|
||||
@@ -301,11 +302,57 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Seka sukurta.',
|
||||
'Sequence has been altered.' => 'Seka pakeista.',
|
||||
'Alter sequence' => 'Keisti seką',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Vartotojų tipai',
|
||||
'Create type' => 'Sukurti tipą',
|
||||
'Type has been dropped.' => 'Tipas pašalintas.',
|
||||
'Type has been created.' => 'Tipas sukurtas.',
|
||||
'Alter type' => 'Keisti tipą',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Ctrl+click on a value to modify it.' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Ieiet',
|
||||
'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',
|
||||
'Username' => 'Lietotājs',
|
||||
'Password' => 'Parole',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Izveidot datubāzi',
|
||||
'SQL command' => 'SQL pieprasījums',
|
||||
'Logout' => 'Iziet',
|
||||
'database' => 'datubāze',
|
||||
'Use' => 'Lietot',
|
||||
'No tables.' => 'Datubāzē nav tabulu.',
|
||||
'select' => 'izvēlēties',
|
||||
@@ -284,10 +285,10 @@ $translations = array(
|
||||
'Size' => 'Izmērs',
|
||||
'Compute' => 'Izskaitļot',
|
||||
'You are offline.' => 'Jūs est bezsasaistē.',
|
||||
'You have no privileges to update this table.' => 'jums nav pieejas labot šo tabulu.',
|
||||
'You have no privileges to update this table.' => 'Jums nav pieejas labot šo tabulu.',
|
||||
'Saving' => 'Saglabāšana',
|
||||
'yes' => 'Jā',
|
||||
'no' => 'Nē',
|
||||
'yes' => 'jā',
|
||||
'no' => 'nē',
|
||||
'Drop %s?' => 'Dzēst %s?',
|
||||
'overwrite' => 'pārrakstīt',
|
||||
'DB' => 'DB',
|
||||
@@ -299,4 +300,14 @@ $translations = array(
|
||||
'There is a space in the input password which might be the cause.' => 'Parole satur atstarpi, kas varētu būt lieka.',
|
||||
'Unknown error.' => 'Nezināma kļūda.',
|
||||
'Database does not support password.' => 'Datubāze neatbalsta paroli.',
|
||||
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Jā',
|
||||
'No' => 'Nē',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ $translations = array(
|
||||
'Logged as: %s' => 'Log masuk sebagai: %s',
|
||||
'Logout successful.' => 'Log keluar berjaya.',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Terima kasih kerana menggunakan Adminer, pertimbangkan untuk <a href="https://www.adminer.org/en/donation/">menderma</a>.',
|
||||
'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.',
|
||||
'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',
|
||||
@@ -82,6 +82,7 @@ $translations = array(
|
||||
'Data' => 'Data',
|
||||
|
||||
'Database' => 'Pangkalan data',
|
||||
'database' => 'pangkalan data',
|
||||
'Use' => 'Guna',
|
||||
'Select database' => 'Pilih pangkalan data',
|
||||
'Invalid database.' => 'Pangkalan data tidak sah.',
|
||||
@@ -336,4 +337,22 @@ $translations = array(
|
||||
'Type has been dropped.' => 'Jenis telah dijatuhkan.',
|
||||
'Type has been created.' => 'Jenis telah dibuat.',
|
||||
'Alter type' => 'Ubah jenis',
|
||||
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Warnings' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Ya',
|
||||
'No' => 'Tidak',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Aanmelden',
|
||||
'Logout successful.' => 'Successvol afgemeld.',
|
||||
'Invalid credentials.' => 'Ongeldige gebruikersgegevens.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Server',
|
||||
'Username' => 'Gebruikersnaam',
|
||||
'Password' => 'Wachtwoord',
|
||||
@@ -32,6 +32,7 @@ $translations = array(
|
||||
'Create database' => 'Database aanmaken',
|
||||
'SQL command' => 'SQL opdracht',
|
||||
'Logout' => 'Afmelden',
|
||||
'database' => 'database',
|
||||
'Use' => 'Gebruik',
|
||||
'No tables.' => 'Geen tabellen.',
|
||||
'select' => 'kies',
|
||||
@@ -264,6 +265,7 @@ $translations = array(
|
||||
'Permanent link' => 'Permanente link',
|
||||
'Edit all' => 'Alles bewerken',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => 'Verwijder %s?',
|
||||
'Tables have been optimized.' => 'Tabellen zijn geoptimaliseerd.',
|
||||
'Materialized view' => 'Materialized view',
|
||||
@@ -283,6 +285,7 @@ $translations = array(
|
||||
'Default value' => 'Standaardwaarde',
|
||||
'Full table scan' => 'Full table scan',
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('Teveel foutieve aanmeldpogingen, probeer opnieuw binnen %d minuut.', 'Teveel foutieve aanmeldpogingen, probeer opnieuw binnen %d minuten.'),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Master wachtwoord verlopen. <a href="https://www.adminer.org/en/extension/"%s>Implementeer</a> de %s methode om het permanent te maken.',
|
||||
'The action will be performed after successful login with the same credentials.' => 'Deze actie zal uitgevoerd worden na het succesvol aanmelden met dezelfde gebruikersgegevens',
|
||||
'Connecting to privileged ports is not allowed.' => 'Verbindingen naar geprivilegieerde poorten is niet toegestaan.',
|
||||
@@ -299,4 +302,12 @@ $translations = array(
|
||||
'Disable %s or enable %s or %s extensions.' => 'Schakel %s uit or schakel extensies %s of %s in.',
|
||||
'yes' => 'ja',
|
||||
'no' => 'neen',
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Ja',
|
||||
'No' => 'Neen',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -9,7 +9,7 @@ $translations = array(
|
||||
'Logout' => 'Logg ut',
|
||||
'Logged as: %s' => 'Logget inn som: %s',
|
||||
'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.',
|
||||
'Language' => 'Språk',
|
||||
'Invalid CSRF token. Send the form again.' => 'Ugylding CSRF-token - Send inn skjemaet igjen.',
|
||||
@@ -64,6 +64,7 @@ $translations = array(
|
||||
'Format' => 'Format',
|
||||
'Data' => 'Data',
|
||||
'Database' => 'Database',
|
||||
'database' => 'database',
|
||||
'Use' => 'Bruk',
|
||||
'Select database' => 'Velg database',
|
||||
'Invalid database.' => 'Ugyldig database.',
|
||||
@@ -278,4 +279,35 @@ $translations = array(
|
||||
'Type has been created.' => 'Type er opprettet.',
|
||||
'Alter type' => 'Endre type',
|
||||
'Saving' => 'Lagrer',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Materialized view' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Ja',
|
||||
'No' => 'Nei',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ $translations = array(
|
||||
'Logged as: %s' => 'Zalogowany jako: %s',
|
||||
'Logout successful.' => 'Wylogowano pomyślnie.',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Dziękujemy za używanie Adminera, rozważ proszę <a href="https://www.adminer.org/pl/donation/">dotację</a>.',
|
||||
'Invalid credentials.' => 'Nieprawidłowe dane logowania.',
|
||||
'Invalid server or 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.'),
|
||||
'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',
|
||||
@@ -42,10 +42,10 @@ $translations = array(
|
||||
'Process list' => 'Lista procesów',
|
||||
'%d process(es) have been killed.' => array('Przerwano %d wątek.', 'Przerwano %d wątki.', 'Przerwano %d wątków.'),
|
||||
'Kill' => 'Przerwij wykonywanie',
|
||||
|
||||
|
||||
'Variables' => 'Zmienne',
|
||||
'Status' => 'Status',
|
||||
|
||||
|
||||
'SQL command' => 'Zapytanie SQL',
|
||||
'%d query(s) executed OK.' => array('Pomyślnie wykonano %d zapytanie.', 'Pomyślnie wykonano %d zapytania.', 'Pomyślnie wykonano %d zapytań.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Zapytanie wykonane pomyślnie, zmieniono %d rekord.', 'Zapytanie wykonane pomyślnie, zmieniono %d rekordy.', 'Zapytanie wykonane pomyślnie, zmieniono %d rekordów.'),
|
||||
@@ -60,7 +60,7 @@ $translations = array(
|
||||
'History' => 'Historia',
|
||||
'Clear' => 'Wyczyść',
|
||||
'Edit all' => 'Edytuj wszystkie',
|
||||
|
||||
|
||||
'File upload' => 'Wgranie pliku',
|
||||
'From server' => 'Z serwera',
|
||||
'Webserver file %s' => 'Plik %s na serwerze',
|
||||
@@ -72,15 +72,16 @@ $translations = array(
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Przesłano zbyt dużo danych. Zmniejsz objętość danych lub zwiększ zmienną konfiguracyjną %s.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Większe pliki SQL możesz wgrać na serwer poprzez FTP przed zaimportowaniem.',
|
||||
'You are offline.' => 'Jesteś offline.',
|
||||
|
||||
|
||||
'Export' => 'Eksport',
|
||||
'Output' => 'Rezultat',
|
||||
'open' => 'otwórz',
|
||||
'save' => 'zapisz',
|
||||
'Format' => 'Format',
|
||||
'Data' => 'Dane',
|
||||
|
||||
|
||||
'Database' => 'Baza danych',
|
||||
'database' => 'baza danych',
|
||||
'Use' => 'Wybierz',
|
||||
'Select database' => 'Wybierz bazę danych',
|
||||
'Invalid database.' => 'Nie znaleziono bazy danych.',
|
||||
@@ -92,10 +93,10 @@ $translations = array(
|
||||
'Alter database' => 'Zmień bazę danych',
|
||||
'Create database' => 'Utwórz bazę danych',
|
||||
'Database schema' => 'Schemat bazy danych',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Trwały link',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ' ',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -118,7 +119,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'Tabele zostały przeniesione.',
|
||||
'Copy' => 'Kopiuj',
|
||||
'Tables have been copied.' => 'Tabele zostały skopiowane.',
|
||||
|
||||
|
||||
'Routines' => 'Procedury i funkcje',
|
||||
'Routine has been called, %d row(s) affected.' => array('Procedura została uruchomiona, zmieniono %d rekord.', 'Procedura została uruchomiona, zmieniono %d rekordy.', 'Procedura została uruchomiona, zmieniono %d rekordów.'),
|
||||
'Call' => 'Uruchom',
|
||||
@@ -131,7 +132,7 @@ $translations = array(
|
||||
'Alter function' => 'Zmień funkcję',
|
||||
'Alter procedure' => 'Zmień procedurę',
|
||||
'Return type' => 'Zwracany typ',
|
||||
|
||||
|
||||
'Events' => 'Wydarzenia',
|
||||
'Event has been dropped.' => 'Wydarzenie zostało usunięte.',
|
||||
'Event has been altered.' => 'Wydarzenie zostało zmienione.',
|
||||
@@ -144,7 +145,7 @@ $translations = array(
|
||||
'Start' => 'Początek',
|
||||
'End' => 'Koniec',
|
||||
'On completion preserve' => 'Nie kasuj wydarzenia po przeterminowaniu',
|
||||
|
||||
|
||||
'Tables' => 'Tabele',
|
||||
'Tables and views' => 'Tabele i perspektywy',
|
||||
'Table' => 'Tabela',
|
||||
@@ -177,12 +178,12 @@ $translations = array(
|
||||
'Move down' => 'Przesuń w dół',
|
||||
'Remove' => 'Usuń',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Przekroczono maksymalną liczbę pól. Zwiększ %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Partycjonowanie',
|
||||
'Partitions' => 'Partycje',
|
||||
'Partition name' => 'Nazwa partycji',
|
||||
'Values' => 'Wartości',
|
||||
|
||||
|
||||
'View' => 'Perspektywa',
|
||||
'Materialized view' => 'Zmaterializowana perspektywa',
|
||||
'View has been dropped.' => 'Perspektywa została usunięta.',
|
||||
@@ -190,14 +191,14 @@ $translations = array(
|
||||
'View has been created.' => 'Perspektywa została utworzona.',
|
||||
'Alter view' => 'Zmień perspektywę',
|
||||
'Create view' => 'Utwórz perspektywę',
|
||||
|
||||
|
||||
'Indexes' => 'Indeksy',
|
||||
'Indexes have been altered.' => 'Indeksy zostały zmienione.',
|
||||
'Alter indexes' => 'Zmień indeksy',
|
||||
'Add next' => 'Dodaj następny',
|
||||
'Index Type' => 'Typ indeksu',
|
||||
'Column (length)' => 'Kolumna (długość)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Klucze obce',
|
||||
'Foreign key' => 'Klucz obcy',
|
||||
'Foreign key has been dropped.' => 'Klucz obcy został usunięty.',
|
||||
@@ -213,7 +214,7 @@ $translations = array(
|
||||
'ON DELETE' => 'W przypadku usunięcia',
|
||||
'ON UPDATE' => 'W przypadku zmiany',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Źródłowa i docelowa kolumna muszą być tego samego typu, powinien istnieć indeks na docelowej kolumnie oraz muszą istnieć dane referencyjne.',
|
||||
|
||||
|
||||
'Triggers' => 'Wyzwalacze',
|
||||
'Add trigger' => 'Dodaj wyzwalacz',
|
||||
'Trigger has been dropped.' => 'Wyzwalacz został usunięty.',
|
||||
@@ -224,7 +225,7 @@ $translations = array(
|
||||
'Time' => 'Czas',
|
||||
'Event' => 'Wydarzenie',
|
||||
'Name' => 'Nazwa',
|
||||
|
||||
|
||||
'select' => 'przeglądaj',
|
||||
'Select' => 'pokaż',
|
||||
'Select data' => 'Pokaż dane',
|
||||
@@ -250,16 +251,16 @@ $translations = array(
|
||||
'Loading' => 'Wczytywanie',
|
||||
'Whole result' => 'Wybierz wszystkie',
|
||||
'%d byte(s)' => array('%d bajt', '%d bajty', '%d bajtów'),
|
||||
|
||||
|
||||
'Import' => 'Import',
|
||||
'%d row(s) have been imported.' => array('%d rekord został zaimportowany.', '%d rekordy zostały zaimportowane.', '%d rekordów zostało zaimportowanych.'),
|
||||
'File must be in UTF-8 encoding.' => 'Kodowanie pliku musi być ustawione na UTF-8.',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => 'Zmień',
|
||||
'Ctrl+click on a value to modify it.' => 'Ctrl+kliknij wartość, aby ją edytować.',
|
||||
'Use edit link to modify this value.' => 'Użyj linku edycji aby zmienić tę wartość.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Rekord%s został dodany.',
|
||||
'Item has been deleted.' => 'Rekord został usunięty.',
|
||||
@@ -280,14 +281,14 @@ $translations = array(
|
||||
'Clone' => 'Duplikuj',
|
||||
'Delete' => 'Usuń',
|
||||
'You have no privileges to update this table.' => 'Brak uprawnień do edycji tej tabeli',
|
||||
|
||||
|
||||
'E-mail' => 'E-mail',
|
||||
'From' => 'Nadawca',
|
||||
'Subject' => 'Temat',
|
||||
'Attachments' => 'Załączniki',
|
||||
'Send' => 'Wyślij',
|
||||
'%d e-mail(s) have been sent.' => array('Wysłano %d e-mail.', 'Wysłano %d e-maile.', 'Wysłano %d e-maili.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Numeryczne',
|
||||
'Date and time' => 'Data i czas',
|
||||
@@ -297,7 +298,7 @@ $translations = array(
|
||||
'Network' => 'Sieć',
|
||||
'Geometry' => 'Geometria',
|
||||
'Relations' => 'Relacje',
|
||||
|
||||
|
||||
'Editor' => 'Edytor',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$6.$4.$1',
|
||||
@@ -308,11 +309,11 @@ $translations = array(
|
||||
'now' => 'teraz',
|
||||
'yes' => 'tak',
|
||||
'no' => 'nie',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Plik już istnieje.',
|
||||
'Please use one of the extensions %s.' => 'Proszę użyć jednego z rozszerzeń: %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Zmień schemat',
|
||||
'Create schema' => 'Utwórz schemat',
|
||||
@@ -321,7 +322,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Schemat został zmieniony.',
|
||||
'Schema' => 'Schemat',
|
||||
'Invalid schema.' => 'Nieprawidłowy schemat.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Sekwencje',
|
||||
'Create sequence' => 'Utwórz sekwencję',
|
||||
@@ -329,11 +330,29 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Sekwencja została utworzona.',
|
||||
'Sequence has been altered.' => 'Sekwencja została zmieniona.',
|
||||
'Alter sequence' => 'Zmień sekwencję',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Typy użytkownika',
|
||||
'Create type' => 'Utwórz typ',
|
||||
'Type has been dropped.' => 'Typ został usunięty.',
|
||||
'Type has been created.' => 'Typ został utworzony.',
|
||||
'Alter type' => 'Zmień typ',
|
||||
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Warnings' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Tak',
|
||||
'No' => 'Nie',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Entrar',
|
||||
'Logout successful.' => 'Saída bem sucedida.',
|
||||
'Invalid credentials.' => 'Identificação inválida.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Servidor',
|
||||
'Username' => 'Usuário',
|
||||
'Password' => 'Senha',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Criar Base de dados',
|
||||
'SQL command' => 'Comando SQL',
|
||||
'Logout' => 'Sair',
|
||||
'database' => 'base de dados',
|
||||
'Use' => 'Usar',
|
||||
'No tables.' => 'Não existem tabelas.',
|
||||
'select' => 'selecionar',
|
||||
@@ -259,4 +260,54 @@ $translations = array(
|
||||
'Please use one of the extensions %s.' => 'Por favor use uma das extensões %s.',
|
||||
'now' => 'agora',
|
||||
'ltr' => 'ltr',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been copied.' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'Copy' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Permanent link' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Edit all' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
'HH:MM:SS' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Entrar',
|
||||
'Logout successful.' => 'Sessão terminada com sucesso.',
|
||||
'Invalid credentials.' => 'Identificação inválida.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Servidor',
|
||||
'Username' => 'Nome de utilizador',
|
||||
'Password' => 'Senha',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Criar Base de dados',
|
||||
'SQL command' => 'Comando SQL',
|
||||
'Logout' => 'Terminar sessão',
|
||||
'database' => 'base de dados',
|
||||
'Use' => 'Usar',
|
||||
'No tables.' => 'Não existem tabelas.',
|
||||
'select' => 'registos',
|
||||
@@ -259,4 +260,54 @@ $translations = array(
|
||||
'Please use one of the extensions %s.' => 'Por favor use uma das extensões %s.',
|
||||
'now' => 'agora',
|
||||
'ltr' => 'ltr',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been copied.' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'Copy' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Permanent link' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Edit all' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
'HH:MM:SS' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Intră',
|
||||
'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',
|
||||
'Username' => 'Nume de utilizator',
|
||||
'Password' => 'Parola',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Crează baza de date',
|
||||
'SQL command' => 'SQL query',
|
||||
'Logout' => 'Ieșire',
|
||||
'database' => 'baza de date',
|
||||
'Use' => 'Alege',
|
||||
'No tables.' => 'În baza de date nu sunt tabele.',
|
||||
'select' => 'selectează',
|
||||
@@ -264,4 +265,49 @@ $translations = array(
|
||||
'Permanent link' => 'Adresă permanentă',
|
||||
'Edit all' => 'Editează tot',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Войти',
|
||||
'Logout successful.' => 'Вы успешно покинули систему.',
|
||||
'Invalid credentials.' => 'Неправильное имя пользователя или пароль.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'Сервер',
|
||||
'Username' => 'Имя пользователя',
|
||||
'Password' => 'Пароль',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'Создать базу данных',
|
||||
'SQL command' => 'SQL-запрос',
|
||||
'Logout' => 'Выйти',
|
||||
'database' => 'база данных',
|
||||
'Use' => 'Выбрать',
|
||||
'No tables.' => 'В базе данных нет таблиц.',
|
||||
'select' => 'выбрать',
|
||||
@@ -286,8 +287,8 @@ $translations = array(
|
||||
'You are offline.' => 'Вы не выполнили вход.',
|
||||
'You have no privileges to update this table.' => 'У вас нет прав на обновление этой таблицы.',
|
||||
'Saving' => 'Сохранение',
|
||||
'yes' => 'Да',
|
||||
'no' => 'Нет',
|
||||
'yes' => 'да',
|
||||
'no' => 'нет',
|
||||
'Drop %s?' => 'Удалить %s?',
|
||||
'overwrite' => 'перезаписать',
|
||||
'DB' => 'DB',
|
||||
@@ -299,5 +300,14 @@ $translations = array(
|
||||
'There is a space in the input password which might be the cause.' => 'В введеном пароле есть пробел, это может быть причиною.',
|
||||
'Unknown error.' => 'Неизвестная ошибка.',
|
||||
'Database does not support password.' => 'База данных не поддерживает пароль.',
|
||||
|
||||
'Disable %s or enable %s or %s extensions.' => 'Отключите %s или включите расширения %s или %s.',
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Да',
|
||||
'No' => 'Нет',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'Prihlásiť sa',
|
||||
'Logout successful.' => 'Odhlásenie prebehlo v poriadku.',
|
||||
'Invalid credentials.' => 'Neplatné prihlasovacie údaje.',
|
||||
'Invalid server or credentials.' => 'Neplatný server alebo prihlasovacie údaje.',
|
||||
'Server' => 'Server',
|
||||
'Username' => 'Používateľ',
|
||||
'Password' => 'Heslo',
|
||||
@@ -32,6 +32,7 @@ $translations = array(
|
||||
'Create database' => 'Vytvoriť databázu',
|
||||
'SQL command' => 'SQL príkaz',
|
||||
'Logout' => 'Odhlásiť',
|
||||
'database' => 'databáza',
|
||||
'Use' => 'Vybrať',
|
||||
'No tables.' => 'Žiadne tabuľky.',
|
||||
'select' => 'vypísať',
|
||||
@@ -273,8 +274,8 @@ $translations = array(
|
||||
'DB' => 'DB',
|
||||
'File must be in UTF-8 encoding.' => 'Súbor musí byť v kódovaní UTF-8.',
|
||||
'Modify' => 'Zmeniť',
|
||||
'Load more data' => 'Načítať ďalšie dáta',
|
||||
'Loading' => 'Načítava sa',
|
||||
'Load more data' => 'Nahráť ďalšie dáta',
|
||||
'Loading' => 'Nahráva sa',
|
||||
'ATTACH queries are not supported.' => 'Dotazy ATTACH nie sú podporované.',
|
||||
'Warnings' => 'Varovania',
|
||||
'%d / ' => '%d / ',
|
||||
@@ -300,4 +301,11 @@ $translations = array(
|
||||
'Disable %s or enable %s or %s extensions.' => 'Zakážte %s alebo povoľte rozšírenie %s alebo %s.',
|
||||
'yes' => 'áno',
|
||||
'no' => 'nie',
|
||||
'Yes' => 'Áno',
|
||||
'No' => 'Nie',
|
||||
'Columns' => 'Stĺpce',
|
||||
'Nullable' => 'Povolené null',
|
||||
'Default' => 'Predvolené',
|
||||
'One Time Password' => 'Jednorázové heslo',
|
||||
'Invalid OTP code.' => 'Neplatný kód OTP.',
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Odjavi se',
|
||||
'Logged as: %s' => 'Prijavljen kot: %s',
|
||||
'Logout successful.' => 'Prijava uspešna.',
|
||||
'Invalid credentials.' => 'Neveljavne pravice.',
|
||||
'Invalid server or credentials.' => 'Neveljaven strežnik ali pravice.',
|
||||
'Language' => 'Jezik',
|
||||
'Invalid CSRF token. Send the form again.' => 'Neveljaven token CSRF. Pošljite formular še enkrat.',
|
||||
'No extension' => 'Brez dodatkov',
|
||||
@@ -19,10 +19,10 @@ $translations = array(
|
||||
'Session expired, please login again.' => 'Seja je potekla. Prosimo, ponovno se prijavite.',
|
||||
'%s version: %s through PHP extension %s' => 'Verzija %s: %s preko dodatka za PHP %s',
|
||||
'Refresh' => 'Osveži',
|
||||
|
||||
|
||||
// text direction
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => 'Pravice',
|
||||
'Create user' => 'Ustvari uporabnika',
|
||||
'User has been dropped.' => 'Uporabnik je odstranjen.',
|
||||
@@ -33,14 +33,14 @@ $translations = array(
|
||||
'Routine' => 'Postopek',
|
||||
'Grant' => 'Dovoli',
|
||||
'Revoke' => 'Odvzemi',
|
||||
|
||||
|
||||
'Process list' => 'Seznam procesov',
|
||||
'%d process(es) have been killed.' => array('Končan je %d proces.', 'Končana sta %d procesa.', 'Končani so %d procesi.', 'Končanih je %d procesov.'),
|
||||
'Kill' => 'Končaj',
|
||||
|
||||
|
||||
'Variables' => 'Spremenljivke',
|
||||
'Status' => 'Stanje',
|
||||
|
||||
|
||||
'SQL command' => 'Ukaz SQL',
|
||||
'%d query(s) executed OK.' => array('Uspešno se je končala %d poizvedba.', 'Uspešno sta se končali %d poizvedbi.', 'Uspešno so se končale %d poizvedbe.', 'Uspešno se je končalo %d poizvedb.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Poizvedba se je uspešno izvedla, spremenjena je %d vrstica.', 'Poizvedba se je uspešno izvedla, spremenjeni sta %d vrstici.', 'Poizvedba se je uspešno izvedla, spremenjene so %d vrstice.', 'Poizvedba se je uspešno izvedla, spremenjenih je %d vrstic.'),
|
||||
@@ -53,7 +53,7 @@ $translations = array(
|
||||
'%.3f s' => '%.3f s',
|
||||
'History' => 'Zgodovina',
|
||||
'Clear' => 'Počisti',
|
||||
|
||||
|
||||
'File upload' => 'Naloži datoteko',
|
||||
'From server' => 'z strežnika',
|
||||
'Webserver file %s' => 'Datoteka na spletnem strežniku %s',
|
||||
@@ -63,15 +63,16 @@ $translations = array(
|
||||
'Unable to upload a file.' => 'Ne morem naložiti datoteke.',
|
||||
'Maximum allowed file size is %sB.' => 'Največja velikost datoteke je %sB.',
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Preveliko podatkov za POST. Zmanjšajte število podatkov ali povečajte nastavitev za %s.',
|
||||
|
||||
|
||||
'Export' => 'Izvozi',
|
||||
'Output' => 'Izhod rezultata',
|
||||
'open' => 'odpri',
|
||||
'save' => 'shrani',
|
||||
'Format' => 'Format',
|
||||
'Data' => 'Podatki',
|
||||
|
||||
|
||||
'Database' => 'Baza',
|
||||
'database' => 'baza',
|
||||
'Use' => 'Uporabi',
|
||||
'Select database' => 'Izberi bazo',
|
||||
'Invalid database.' => 'Neveljavna baza.',
|
||||
@@ -83,7 +84,7 @@ $translations = array(
|
||||
'Alter database' => 'Spremeni bazo',
|
||||
'Create database' => 'Ustvari bazo',
|
||||
'Database schema' => 'Shema baze',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ' ',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -105,7 +106,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'Tabele so premaknjene.',
|
||||
'Copy' => 'Kopiraj',
|
||||
'Tables have been copied.' => 'Tabele so kopirane.',
|
||||
|
||||
|
||||
'Routines' => 'Postopki',
|
||||
'Routine has been called, %d row(s) affected.' => array('Klican je bil postopek, spremenjena je %d vrstica.', 'Klican je bil postopek, spremenjeni sta %d vrstici.', 'Klican je bil postopek, spremenjene so %d vrstice.', 'Klican je bil postopek, spremenjenih je %d vrstic.'),
|
||||
'Call' => 'Pokliči',
|
||||
@@ -118,7 +119,7 @@ $translations = array(
|
||||
'Alter function' => 'Spremeni funkcijo',
|
||||
'Alter procedure' => 'Spremeni postopek',
|
||||
'Return type' => 'Vračalni tip',
|
||||
|
||||
|
||||
'Events' => 'Dogodki',
|
||||
'Event has been dropped.' => 'Dogodek je zavržen.',
|
||||
'Event has been altered.' => 'Dogodek je spremenjen.',
|
||||
@@ -131,7 +132,7 @@ $translations = array(
|
||||
'Start' => 'Začetek',
|
||||
'End' => 'Konec',
|
||||
'On completion preserve' => 'Po zaključku ohrani',
|
||||
|
||||
|
||||
'Tables' => 'Tabele',
|
||||
'Tables and views' => 'Tabele in pogledi',
|
||||
'Table' => 'Tabela',
|
||||
@@ -159,26 +160,26 @@ $translations = array(
|
||||
'Move down' => 'Premakni dol',
|
||||
'Remove' => 'Odstrani',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Največje število dovoljenih polje je preseženo. Prosimo, povečajte %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Porazdeli po',
|
||||
'Partitions' => 'Porazdelitve',
|
||||
'Partition name' => 'Ime porazdelitve',
|
||||
'Values' => 'Vrednosti',
|
||||
|
||||
|
||||
'View' => 'Pogledi',
|
||||
'View has been dropped.' => 'Pogled je zavržen.',
|
||||
'View has been altered.' => 'Pogled je spremenjen.',
|
||||
'View has been created.' => 'Pogled je ustvarjen.',
|
||||
'Alter view' => 'Spremeni pogled',
|
||||
'Create view' => 'Ustvari pogled',
|
||||
|
||||
|
||||
'Indexes' => 'Indeksi',
|
||||
'Indexes have been altered.' => 'Indeksi so spremenjeni.',
|
||||
'Alter indexes' => 'Spremeni indekse',
|
||||
'Add next' => 'Dodaj naslednjega',
|
||||
'Index Type' => 'Tip indeksa',
|
||||
'Column (length)' => 'Stolpec (dolžina)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Tuji ključi',
|
||||
'Foreign key' => 'Tuj ključ',
|
||||
'Foreign key has been dropped.' => 'Tuj ključ je zavržen.',
|
||||
@@ -194,7 +195,7 @@ $translations = array(
|
||||
'ON DELETE' => 'pri brisanju',
|
||||
'ON UPDATE' => 'pri posodabljanju',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Izvorni in ciljni stolpec mora imeti isti podatkovni tip. Obstajati mora indeks na ciljnih stolpcih in obstajati morajo referenčni podatki.',
|
||||
|
||||
|
||||
'Triggers' => 'Sprožilniki',
|
||||
'Add trigger' => 'Dodaj sprožilnik',
|
||||
'Trigger has been dropped.' => 'Sprožilnik je odstranjen.',
|
||||
@@ -205,7 +206,7 @@ $translations = array(
|
||||
'Time' => 'Čas',
|
||||
'Event' => 'Dogodek',
|
||||
'Name' => 'Naziv',
|
||||
|
||||
|
||||
'select' => 'izberi',
|
||||
'Select' => 'Izberi',
|
||||
'Select data' => 'Izberi podatke',
|
||||
@@ -226,14 +227,14 @@ $translations = array(
|
||||
'last' => 'Zadnja',
|
||||
'Whole result' => 'Cel razultat',
|
||||
'%d byte(s)' => array('%d bajt', '%d bajta', '%d bajti', '%d bajtov'),
|
||||
|
||||
|
||||
'Import' => 'Uvozi',
|
||||
'%d row(s) have been imported.' => array('Uvožena je %d vrstica.', 'Uvoženi sta %d vrstici.', 'Uvožene so %d vrstice.', 'Uvoženih je %d vrstic.'),
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Ctrl+click on a value to modify it.' => 'Ctrl+klik na vrednost za urejanje.',
|
||||
'Use edit link to modify this value.' => 'Uporabite urejanje povezave za spreminjanje te vrednosti.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Predmet%s je vstavljen.',
|
||||
'Item has been deleted.' => 'Predmet je izbrisan.',
|
||||
@@ -251,14 +252,14 @@ $translations = array(
|
||||
'Save and insert next' => 'Shrani in vstavi tekst',
|
||||
'Clone' => 'Kloniraj',
|
||||
'Delete' => 'Izbriši',
|
||||
|
||||
|
||||
'E-mail' => 'E-mail',
|
||||
'From' => 'Od',
|
||||
'Subject' => 'Zadeva',
|
||||
'Attachments' => 'Priponke',
|
||||
'Send' => 'Pošlji',
|
||||
'%d e-mail(s) have been sent.' => array('Poslan je %d e-mail.', 'Poslana sta %d e-maila.', 'Poslani so %d e-maili.', 'Poslanih je %d e-mailov.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Števila',
|
||||
'Date and time' => 'Datum in čas',
|
||||
@@ -268,18 +269,18 @@ $translations = array(
|
||||
'Network' => 'Mrežni',
|
||||
'Geometry' => 'Geometrčni',
|
||||
'Relations' => 'Relacijski',
|
||||
|
||||
|
||||
'Editor' => 'Urejevalnik',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$6.$4.$1',
|
||||
// hint for date format - use language equivalents for day, month and year shortcuts
|
||||
'[yyyy]-mm-dd' => 'd.m.[rrrr]',
|
||||
'now' => 'zdaj',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Datoteka obstaja.',
|
||||
'Please use one of the extensions %s.' => 'Prosim, uporabite enega od dodatkov %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Spremeni shemo',
|
||||
'Create schema' => 'Ustvari shemo',
|
||||
@@ -288,7 +289,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Shema je spremenjena.',
|
||||
'Schema' => 'Shema',
|
||||
'Invalid schema.' => 'Neveljavna shema.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Sekvence',
|
||||
'Create sequence' => 'Ustvari sekvenco',
|
||||
@@ -296,11 +297,59 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Sekvence je ustvarjena.',
|
||||
'Sequence has been altered.' => 'Sekvence je spremenjena.',
|
||||
'Alter sequence' => 'Spremni sekvenco',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Uporabniški tipi',
|
||||
'Create type' => 'Ustvari tip',
|
||||
'Type has been dropped.' => 'Tip je zavržen.',
|
||||
'Type has been created.' => 'Tip je ustvarjen.',
|
||||
'Alter type' => 'Spremeni tip',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Permanent link' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Edit all' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
'HH:MM:SS' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Одјава',
|
||||
'Logged as: %s' => 'Пријави се као: %s',
|
||||
'Logout successful.' => 'Успешна одјава.',
|
||||
'Invalid credentials.' => 'Неважеће дозволе.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Language' => 'Језик',
|
||||
'Invalid CSRF token. Send the form again.' => 'Неважећи CSRF код. Проследите поново форму.',
|
||||
'No extension' => 'Без додатака',
|
||||
@@ -73,6 +73,7 @@ $translations = array(
|
||||
'Data' => 'Податци',
|
||||
|
||||
'Database' => 'База података',
|
||||
'database' => 'база података',
|
||||
'Use' => 'Користи',
|
||||
'Select database' => 'Изаберите базу',
|
||||
'Invalid database.' => 'Неисправна база података.',
|
||||
@@ -315,4 +316,43 @@ $translations = array(
|
||||
'Type has been dropped.' => 'Тип је избрисан.',
|
||||
'Type has been created.' => 'тип је креиран.',
|
||||
'Alter type' => 'Уреди тип',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Да',
|
||||
'No' => 'Не',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ $translations = array(
|
||||
'Logged as: %s' => 'Inloggad som: %s',
|
||||
'Logout successful.' => 'Du är nu utloggad.',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Tack för att du använder Adminer, vänligen fundera över att <a href="https://www.adminer.org/en/donation/">donera</a>.',
|
||||
'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.',
|
||||
'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.',
|
||||
@@ -89,6 +89,7 @@ $translations = array(
|
||||
'Data' => 'Data',
|
||||
|
||||
'Database' => 'Databas',
|
||||
'database' => 'databas',
|
||||
'DB' => 'DB',
|
||||
'Use' => 'Använd',
|
||||
'Select database' => 'Välj databas',
|
||||
@@ -345,4 +346,12 @@ $translations = array(
|
||||
'Type has been dropped.' => 'Typ har, typ, tagits bort.',
|
||||
'Type has been created.' => 'Typ har skapats.',
|
||||
'Alter type' => 'Ändra typ',
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Ja',
|
||||
'No' => 'Nej',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'நுழை',
|
||||
'Logout successful.' => 'வெற்றிகரமாய் வெளியேறியாயிற்று.',
|
||||
'Invalid credentials.' => 'சரியான விபரங்கள் இல்லை.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'வழங்கி (Server)',
|
||||
'Username' => 'பயனாளர் (User)',
|
||||
'Password' => 'கடவுச்சொல்',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'தகவல்தளத்தை உருவாக்கு',
|
||||
'SQL command' => 'SQL கட்டளை',
|
||||
'Logout' => 'வெளியேறு',
|
||||
'database' => 'தகவல்தளம்',
|
||||
'Use' => 'உபயோகி',
|
||||
'No tables.' => 'அட்டவணை இல்லை.',
|
||||
'select' => 'தேர்வு செய்',
|
||||
@@ -263,4 +264,50 @@ $translations = array(
|
||||
'Permanent link' => 'நிரந்தர இணைப்பு',
|
||||
'Edit all' => 'அனைத்தையும் தொகு',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'Ctrl+click on a value to modify it.' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$translations = array(
|
||||
'Login' => 'เข้าสู่ระบบ',
|
||||
'Logout successful.' => 'ออกจากระบบเรียบร้อยแล้ว.',
|
||||
'Invalid credentials.' => 'ข้อมูลไม่ถูกต้อง.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Server' => 'เซอเวอร์',
|
||||
'Username' => 'ชื่อผู้ใช้งาน',
|
||||
'Password' => 'รหัสผ่าน',
|
||||
@@ -31,6 +31,7 @@ $translations = array(
|
||||
'Create database' => 'สร้างฐานข้อมูล',
|
||||
'SQL command' => 'คำสั่ง SQL',
|
||||
'Logout' => 'ออกจากระบบ',
|
||||
'database' => 'ฐานข้อมูล',
|
||||
'Use' => 'ใช้งาน',
|
||||
'No tables.' => 'ไม่พบตาราง.',
|
||||
'select' => 'เลือก',
|
||||
@@ -264,4 +265,49 @@ $translations = array(
|
||||
'Permanent link' => 'ลิงค์ถาวร',
|
||||
'Edit all' => 'แก้ไขทั้งหมด',
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Tables have been optimized.' => null,
|
||||
'Materialized view' => null,
|
||||
'Vacuum' => null,
|
||||
'Selected' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'File must be in UTF-8 encoding.' => null,
|
||||
'Modify' => null,
|
||||
'Load more data' => null,
|
||||
'Loading' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Full table scan' => null,
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array(),
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You can upload a big SQL file via FTP and import it from server.' => null,
|
||||
'Size' => null,
|
||||
'Compute' => null,
|
||||
'You are offline.' => null,
|
||||
'You have no privileges to update this table.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
'yes' => null,
|
||||
'no' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ $translations = array(
|
||||
'Logged as: %s' => '%s olarak giriş yapıldı.',
|
||||
'Logout successful.' => 'Oturum başarıyla sonlandı.',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Adminer kullandığınız için teşekkür ederiz <a href="https://www.adminer.org/en/donation/">bağış yapmayı düşünün</a>.',
|
||||
'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.'),
|
||||
'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',
|
||||
@@ -84,6 +84,7 @@ $translations = array(
|
||||
'Data' => 'Veri',
|
||||
|
||||
'Database' => 'Veri Tabanı',
|
||||
'database' => 'veri tabanı',
|
||||
'DB' => 'DB',
|
||||
'Use' => 'Kullan',
|
||||
'Select database' => 'Veri tabanı seç',
|
||||
@@ -339,4 +340,19 @@ $translations = array(
|
||||
'Type has been dropped.' => 'Tür silindi.',
|
||||
'Type has been created.' => 'Tür oluşturuldu.',
|
||||
'Alter type' => 'Türü değiştir',
|
||||
|
||||
'overwrite' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Evet',
|
||||
'No' => 'Hayır',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Вийти',
|
||||
'Logged as: %s' => 'Ви увійшли як: %s',
|
||||
'Logout successful.' => 'Ви вдало вийшли з системи.',
|
||||
'Invalid credentials.' => 'Неправильні дані входу.',
|
||||
'Invalid server or credentials.' => null,
|
||||
'Language' => 'Мова',
|
||||
'Invalid CSRF token. Send the form again.' => 'Недійсний CSRF токен. Надішліть форму ще раз.',
|
||||
'No extension' => 'Нема розширень',
|
||||
@@ -19,10 +19,10 @@ $translations = array(
|
||||
'Session expired, please login again.' => 'Сесія закінчилась, будь ласка, увійдіть в систему знову.',
|
||||
'%s version: %s through PHP extension %s' => 'Версія %s: %s з PHP-розширенням %s',
|
||||
'Refresh' => 'Оновити',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => 'Привілеї',
|
||||
'Create user' => 'Створити користувача',
|
||||
'User has been dropped.' => 'Користувача було видалено.',
|
||||
@@ -33,14 +33,14 @@ $translations = array(
|
||||
'Routine' => 'Процедура',
|
||||
'Grant' => 'Дозволити',
|
||||
'Revoke' => 'Заборонити',
|
||||
|
||||
|
||||
'Process list' => 'Перелік процесів',
|
||||
'%d process(es) have been killed.' => array('Було завершено %d процес.', 'Було завершено %d процеси.', 'Було завершёно %d процесів.'),
|
||||
'Kill' => 'Завершити процес',
|
||||
|
||||
|
||||
'Variables' => 'Змінні',
|
||||
'Status' => 'Статус',
|
||||
|
||||
|
||||
'SQL command' => 'SQL запит',
|
||||
'%d query(s) executed OK.' => array('%d запит виконано успішно.', '%d запити виконано успішно.', '%d запитів виконано успішно.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Запит виконано успішно, змінено %d рядок.', 'Запит виконано успішно, змінено %d рядки.', 'Запит виконано успішно, змінено %d рядків.'),
|
||||
@@ -54,7 +54,7 @@ $translations = array(
|
||||
'History' => 'Історія',
|
||||
'Clear' => 'Очистити',
|
||||
'Edit all' => 'Редагувати все',
|
||||
|
||||
|
||||
'File upload' => 'Завантажити файл',
|
||||
'From server' => 'З сервера',
|
||||
'Webserver file %s' => 'Файл %s на вебсервері',
|
||||
@@ -64,15 +64,16 @@ $translations = array(
|
||||
'Unable to upload a file.' => 'Неможливо завантажити файл.',
|
||||
'Maximum allowed file size is %sB.' => 'Максимально допустимий розмір файлу %sБ.',
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Занадто великий об\'єм POST-даних. Зменшіть об\'єм або збільшіть параметр директиви %s конфигурації.',
|
||||
|
||||
|
||||
'Export' => 'Експорт',
|
||||
'Output' => 'Вихідні дані',
|
||||
'open' => 'відкрити',
|
||||
'save' => 'зберегти',
|
||||
'Format' => 'Формат',
|
||||
'Data' => 'Дані',
|
||||
|
||||
|
||||
'Database' => 'База даних',
|
||||
'database' => 'база даних',
|
||||
'Use' => 'Обрати',
|
||||
'Select database' => 'Обрати базу даних',
|
||||
'Invalid database.' => 'Погана база даних.',
|
||||
@@ -84,10 +85,10 @@ $translations = array(
|
||||
'Alter database' => 'Змінити базу даних',
|
||||
'Create database' => 'Створити базу даних',
|
||||
'Database schema' => 'Схема бази даних',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Постійне посилання',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ' ',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -109,7 +110,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'Таблиці було перенесено.',
|
||||
'Copy' => 'копіювати',
|
||||
'Tables have been copied.' => 'Таблиці було зкопійовано.',
|
||||
|
||||
|
||||
'Routines' => 'Збережені процедури',
|
||||
'Routine has been called, %d row(s) affected.' => array('Була викликана процедура, %d запис було змінено.', 'Була викликана процедура, %d записи було змінено.', 'Була викликана процедура, %d записів було змінено.'),
|
||||
'Call' => 'Викликати',
|
||||
@@ -122,7 +123,7 @@ $translations = array(
|
||||
'Alter function' => 'Змінити функцію',
|
||||
'Alter procedure' => 'Змінити процедуру',
|
||||
'Return type' => 'Тип, що повернеться',
|
||||
|
||||
|
||||
'Events' => 'Події',
|
||||
'Event has been dropped.' => 'Подію було видалено.',
|
||||
'Event has been altered.' => 'Подію було змінено.',
|
||||
@@ -135,7 +136,7 @@ $translations = array(
|
||||
'Start' => 'Початок',
|
||||
'End' => 'Кінець',
|
||||
'On completion preserve' => 'Після завершення зберегти',
|
||||
|
||||
|
||||
'Tables' => 'Таблиці',
|
||||
'Tables and views' => 'Таблиці і вигляди',
|
||||
'Table' => 'Таблиця',
|
||||
@@ -164,26 +165,26 @@ $translations = array(
|
||||
'Move down' => 'Пересунути вниз',
|
||||
'Remove' => 'Видалити',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Досягнута максимальна кількість доступних полів. Будь ласка, збільшіть %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Розділити по',
|
||||
'Partitions' => 'Розділи',
|
||||
'Partition name' => 'Назва розділу',
|
||||
'Values' => 'Значення',
|
||||
|
||||
|
||||
'View' => 'Вигляд',
|
||||
'View has been dropped.' => 'Вигляд було видалено.',
|
||||
'View has been altered.' => 'Вигляд було змінено.',
|
||||
'View has been created.' => 'Вигляд було створено.',
|
||||
'Alter view' => 'Змінити вигляд',
|
||||
'Create view' => 'Створити вигляд',
|
||||
|
||||
|
||||
'Indexes' => 'Індекси',
|
||||
'Indexes have been altered.' => 'Індексування було змінено.',
|
||||
'Alter indexes' => 'Змінити індексування',
|
||||
'Add next' => 'Додати ще',
|
||||
'Index Type' => 'Тип індексу',
|
||||
'Column (length)' => 'Стовпець (довжина)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Зовнішні ключі',
|
||||
'Foreign key' => 'Зовнішній ключ',
|
||||
'Foreign key has been dropped.' => 'Зовнішній ключ було видалено.',
|
||||
@@ -199,7 +200,7 @@ $translations = array(
|
||||
'ON DELETE' => 'ПРИ ВИДАЛЕННІ',
|
||||
'ON UPDATE' => 'ПРИ ЗМІНІ',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Стовпці повинні мати той самий тип даних, цільові стовпці повинні бути проіндексовані і дані, на які посилаються повинні існувати.',
|
||||
|
||||
|
||||
'Triggers' => 'Тригери',
|
||||
'Add trigger' => 'Додати тригер',
|
||||
'Trigger has been dropped.' => 'Тригер було видалено.',
|
||||
@@ -210,7 +211,7 @@ $translations = array(
|
||||
'Time' => 'Час',
|
||||
'Event' => 'Подія',
|
||||
'Name' => 'Назва',
|
||||
|
||||
|
||||
'select' => 'вибрати',
|
||||
'Select' => 'Вибрати',
|
||||
'Select data' => 'Вибрати дані',
|
||||
@@ -231,14 +232,14 @@ $translations = array(
|
||||
'last' => 'остання',
|
||||
'Whole result' => 'Весь результат',
|
||||
'%d byte(s)' => array('%d байт', '%d байта', '%d байтів'),
|
||||
|
||||
|
||||
'Import' => 'Імпортувати',
|
||||
'%d row(s) have been imported.' => array('%d рядок було імпортовано.', '%d рядки було імпортовано.', '%d рядків було імпортовано.'),
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Ctrl+click on a value to modify it.' => 'Ctrl+клікніть на значенні щоб змінити його.',
|
||||
'Use edit link to modify this value.' => 'Використовуйте посилання щоб змінити це значення.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Запис%s було вставлено.',
|
||||
'Item has been deleted.' => 'Запис було видалено.',
|
||||
@@ -256,14 +257,14 @@ $translations = array(
|
||||
'Save and insert next' => 'Зберегти і вставити знову',
|
||||
'Clone' => 'Клонувати',
|
||||
'Delete' => 'Видалити',
|
||||
|
||||
|
||||
'E-mail' => 'E-mail',
|
||||
'From' => 'Від',
|
||||
'Subject' => 'Заголовок',
|
||||
'Attachments' => 'Додатки',
|
||||
'Send' => 'Надіслати',
|
||||
'%d e-mail(s) have been sent.' => array('Було надіслано %d повідомлення.', 'Було надіслано %d повідомлення.', 'Було надіслано %d повідомлень.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Числа',
|
||||
'Date and time' => 'Дата і час',
|
||||
@@ -273,7 +274,7 @@ $translations = array(
|
||||
'Network' => 'Мережа',
|
||||
'Geometry' => 'Геометрія',
|
||||
'Relations' => 'Зв\'язки',
|
||||
|
||||
|
||||
'Editor' => 'Редактор',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$5.$3.$1',
|
||||
@@ -284,11 +285,11 @@ $translations = array(
|
||||
'now' => 'зараз',
|
||||
'yes' => 'так',
|
||||
'no' => 'ні',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Файл існує.',
|
||||
'Please use one of the extensions %s.' => 'Будь ласка, використовуйте одне з розширень %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Змінити схему',
|
||||
'Create schema' => 'Створити схему',
|
||||
@@ -297,7 +298,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Схему було змінено.',
|
||||
'Schema' => 'Схема',
|
||||
'Invalid schema.' => 'Невірна схема.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Послідовності',
|
||||
'Create sequence' => 'Створити послідовність',
|
||||
@@ -305,7 +306,7 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Послідовність було створено.',
|
||||
'Sequence has been altered.' => 'Послідовність було змінено.',
|
||||
'Alter sequence' => 'Змінити послідовність',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Типи користувачів',
|
||||
'Create type' => 'Створити тип',
|
||||
@@ -342,4 +343,16 @@ $translations = array(
|
||||
'Saving' => 'Збереження',
|
||||
'Unknown error.' => 'Невідома помилка.',
|
||||
'Database does not support password.' => 'База даних не підтримує пароль.',
|
||||
|
||||
'Vacuum' => null,
|
||||
'%d / ' => array(),
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Так',
|
||||
'No' => 'Ні',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -10,7 +10,7 @@ $translations = array(
|
||||
'Logout' => 'Thoát',
|
||||
'Logged as: %s' => 'Vào dưới tên: %s',
|
||||
'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.',
|
||||
'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ữ',
|
||||
@@ -21,10 +21,10 @@ $translations = array(
|
||||
'Session expired, please login again.' => 'Phiên làm việc đã hết, hãy đăng nhập lại.',
|
||||
'%s version: %s through PHP extension %s' => 'Phiên bản %s: %s (PHP extension: %s)',
|
||||
'Refresh' => 'Làm mới',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => 'Quyền truy cập',
|
||||
'Create user' => 'Tạo người dùng',
|
||||
'User has been dropped.' => 'Đã xoá người dùng.',
|
||||
@@ -35,14 +35,14 @@ $translations = array(
|
||||
'Routine' => 'Hàm tích hợp',
|
||||
'Grant' => 'Cấp quyền',
|
||||
'Revoke' => 'Tước quyền',
|
||||
|
||||
|
||||
'Process list' => 'Danh sách tiến trình',
|
||||
'%d process(es) have been killed.' => '%d tiến trình đã dừng.',
|
||||
'Kill' => 'Dừng',
|
||||
|
||||
|
||||
'Variables' => 'Biến',
|
||||
'Status' => 'Trạng thái',
|
||||
|
||||
|
||||
'SQL command' => 'Câu lệnh SQL',
|
||||
'%d query(s) executed OK.' => '%d câu lệnh đã chạy thành công.',
|
||||
'Query executed OK, %d row(s) affected.' => 'Đã thực hiện xong, ảnh hưởng đến %d dòng.',
|
||||
@@ -56,7 +56,7 @@ $translations = array(
|
||||
'History' => 'Lịch sử',
|
||||
'Clear' => 'Xoá',
|
||||
'Edit all' => 'Sửa tất cả',
|
||||
|
||||
|
||||
'File upload' => 'Tải tệp lên',
|
||||
'From server' => 'Dùng tệp trên máy chủ',
|
||||
'Webserver file %s' => 'Tệp trên máy chủ',
|
||||
@@ -67,15 +67,16 @@ $translations = array(
|
||||
'Maximum allowed file size is %sB.' => 'Kích thước tệp tối đa là %sB.',
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Dữ liệu tải lên/POST quá lớn. Hãy giảm kích thước tệp hoặc tăng cấu hình (hiện tại %s).',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Bạn có thể tải tệp lên dùng FTP và nhập vào cơ sở dữ liệu.',
|
||||
|
||||
|
||||
'Export' => 'Xuất',
|
||||
'Output' => 'Kết quả',
|
||||
'open' => 'xem',
|
||||
'save' => 'lưu',
|
||||
'Format' => 'Định dạng',
|
||||
'Data' => 'Dữ liệu',
|
||||
|
||||
|
||||
'Database' => 'Cơ sở dữ liệu',
|
||||
'database' => 'cơ sở dữ liệu',
|
||||
'Use' => 'Sử dụng',
|
||||
'Select database' => 'Chọn CSDL',
|
||||
'Invalid database.' => 'CSDL sai.',
|
||||
@@ -87,10 +88,10 @@ $translations = array(
|
||||
'Alter database' => 'Thay đổi CSDL',
|
||||
'Create database' => 'Tạo CSDL',
|
||||
'Database schema' => 'Cấu trúc CSDL',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Liên kết cố định',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ',',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -113,7 +114,7 @@ $translations = array(
|
||||
'Tables have been moved.' => 'Bảng.',
|
||||
'Copy' => 'Sao chép',
|
||||
'Tables have been copied.' => 'Bảng đã được sao chép.',
|
||||
|
||||
|
||||
'Routines' => 'Routines',
|
||||
'Routine has been called, %d row(s) affected.' => 'Đã chạy routine, thay đổi %d dòng.',
|
||||
'Call' => 'Gọi',
|
||||
@@ -138,7 +139,7 @@ $translations = array(
|
||||
'Start' => 'Bắt đầu',
|
||||
'End' => 'Kết thúc',
|
||||
'On completion preserve' => 'Khi kết thúc, duy trì',
|
||||
|
||||
|
||||
'Tables' => 'Các bảng',
|
||||
'Tables and views' => 'Bảng và khung nhìn',
|
||||
'Table' => 'Bảng',
|
||||
@@ -169,26 +170,26 @@ $translations = array(
|
||||
'Move down' => 'Chuyển xuống dưới',
|
||||
'Remove' => 'Xoá',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Thiết lập %s cần tăng thêm. (Đã vượt giới hạnố trường tối đa cho phép trong một biểu mẫu).',
|
||||
|
||||
|
||||
'Partition by' => 'Phân chia bằng',
|
||||
'Partitions' => 'Phân hoạch',
|
||||
'Partition name' => 'Tên phân hoạch',
|
||||
'Values' => 'Giá trị',
|
||||
|
||||
|
||||
'View' => 'Khung nhìn',
|
||||
'View has been dropped.' => 'Khung nhìn đã bị xoá.',
|
||||
'View has been altered.' => 'Khung nhìn đã được sửa.',
|
||||
'View has been created.' => 'Khung nhìn đã được tạo.',
|
||||
'Alter view' => 'Sửa khung nhìn',
|
||||
'Create view' => 'Tạo khung nhìn',
|
||||
|
||||
|
||||
'Indexes' => 'Chỉ mục',
|
||||
'Indexes have been altered.' => 'Chỉ mục đã được sửa.',
|
||||
'Alter indexes' => 'Sửa chỉ mục',
|
||||
'Add next' => 'Thêm tiếp',
|
||||
'Index Type' => 'Loại chỉ mục',
|
||||
'Column (length)' => 'Cột (độ dài)',
|
||||
|
||||
|
||||
'Foreign keys' => 'Các khoá ngoại',
|
||||
'Foreign key' => 'Khoá ngoại',
|
||||
'Foreign key has been dropped.' => 'Khoá ngoại đã bị xoá.',
|
||||
@@ -204,7 +205,7 @@ $translations = array(
|
||||
'ON DELETE' => 'Khi xoá',
|
||||
'ON UPDATE' => 'Khi cập nhật',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Cột gốc và cột đích phải cùng kiểu, phải đặt chỉ mục trong cột đích và dữ liệu tham chiếu phải tồn tại.',
|
||||
|
||||
|
||||
'Triggers' => 'Phản xạ',
|
||||
'Add trigger' => 'Thêm phản xạ',
|
||||
'Trigger has been dropped.' => 'Đã xoá phản xạ.',
|
||||
@@ -215,7 +216,7 @@ $translations = array(
|
||||
'Time' => 'Thời gian',
|
||||
'Event' => 'Sự kiện',
|
||||
'Name' => 'Tên',
|
||||
|
||||
|
||||
'select' => 'xem',
|
||||
'Select' => 'Xem',
|
||||
'Select data' => 'Xem dữ liệu',
|
||||
@@ -239,16 +240,16 @@ $translations = array(
|
||||
'Loading' => 'Đang nạp',
|
||||
'Whole result' => 'Toàn bộ kết quả',
|
||||
'%d byte(s)' => '%d byte(s)',
|
||||
|
||||
|
||||
'Import' => 'Nhập khẩu',
|
||||
'%d row(s) have been imported.' => 'Đã nhập % dòng dữ liệu.',
|
||||
'File must be in UTF-8 encoding.' => 'Tệp phải mã hoá bằng chuẩn UTF-8.',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => 'Sửa',
|
||||
'Ctrl+click on a value to modify it.' => 'Nhấn Ctrl và bấm vào giá trị để sửa.',
|
||||
'Use edit link to modify this value.' => 'Dùng nút sửa để thay đổi giá trị này.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Đã thêm%s.',
|
||||
'Item has been deleted.' => 'Đã xoá.',
|
||||
@@ -268,14 +269,14 @@ $translations = array(
|
||||
'Clone' => 'Sao chép',
|
||||
'Delete' => 'Xoá',
|
||||
'You have no privileges to update this table.' => 'Bạn không có quyền sửa bảng này.',
|
||||
|
||||
|
||||
'E-mail' => 'Địa chỉ email',
|
||||
'From' => 'Người gửi',
|
||||
'Subject' => 'Chủ đề',
|
||||
'Attachments' => 'Đính kèm',
|
||||
'Send' => 'Gửi',
|
||||
'%d e-mail(s) have been sent.' => '%d thư đã gửi.',
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Số',
|
||||
'Date and time' => 'Ngày giờ',
|
||||
@@ -285,7 +286,7 @@ $translations = array(
|
||||
'Network' => 'Mạng',
|
||||
'Geometry' => 'Toạ độ',
|
||||
'Relations' => 'Quan hệ',
|
||||
|
||||
|
||||
'Editor' => 'Biên tập',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$1-$3-$5',
|
||||
@@ -296,11 +297,11 @@ $translations = array(
|
||||
'now' => 'hiện tại',
|
||||
'yes' => 'có',
|
||||
'no' => 'không',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Tệp đã có rồi.',
|
||||
'Please use one of the extensions %s.' => 'Cần phải dùng một trong các phần mở rộng sau: %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Thay đổi schema',
|
||||
'Create schema' => 'Tạo schema',
|
||||
@@ -309,7 +310,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Đã thay đổi schema.',
|
||||
'Schema' => 'Schema',
|
||||
'Invalid schema.' => 'Schema không hợp lệ.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Dãy số',
|
||||
'Create sequence' => 'Tạo dãy số',
|
||||
@@ -317,11 +318,40 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Đã tạo dãy số.',
|
||||
'Sequence has been altered.' => 'Đã sửa dãy số.',
|
||||
'Alter sequence' => 'Thay đổi dãy số',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Kiểu tự định nghĩa',
|
||||
'Create type' => 'Tạo kiểu',
|
||||
'Type has been dropped.' => 'Đã xoá kiểu.',
|
||||
'Type has been created.' => 'Đã tạo kiểu.',
|
||||
'Alter type' => 'Sửa kiểu dữ liệu',
|
||||
|
||||
'Drop %s?' => null,
|
||||
'Materialized view' => null,
|
||||
'overwrite' => null,
|
||||
'DB' => null,
|
||||
'ATTACH queries are not supported.' => null,
|
||||
'Warnings' => null,
|
||||
'%d / ' => array(),
|
||||
'Limit rows' => null,
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => null,
|
||||
'Default value' => null,
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => null,
|
||||
'The action will be performed after successful login with the same credentials.' => null,
|
||||
'Connecting to privileged ports is not allowed.' => null,
|
||||
'There is a space in the input password which might be the cause.' => null,
|
||||
'If you did not send this request from Adminer then close this page.' => null,
|
||||
'You are offline.' => null,
|
||||
'Saving' => null,
|
||||
'Unknown error.' => null,
|
||||
'Database does not support password.' => null,
|
||||
'Disable %s or enable %s or %s extensions.' => null,
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => 'Có',
|
||||
'No' => 'Không',
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ $translations = array(
|
||||
'Logged as: %s' => 'Xx: %s',
|
||||
'Logout successful.' => 'Xx.',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Xx <a href="https://www.adminer.org/en/donation/">xx</a>.',
|
||||
'Invalid credentials.' => 'Xx.',
|
||||
'Invalid server or credentials.' => '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>.',
|
||||
'Database does not support password.' => 'Xx.',
|
||||
@@ -29,10 +29,10 @@ $translations = array(
|
||||
'The action will be performed after successful login with the same credentials.' => 'Xx.',
|
||||
'%s version: %s through PHP extension %s' => '%s xx: %s xx %s',
|
||||
'Refresh' => 'Xx',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'xx',
|
||||
|
||||
|
||||
'Privileges' => 'Xx',
|
||||
'Create user' => 'Xx',
|
||||
'User has been dropped.' => 'Xx.',
|
||||
@@ -43,14 +43,14 @@ $translations = array(
|
||||
'Routine' => 'Xx',
|
||||
'Grant' => 'Xx',
|
||||
'Revoke' => 'Xx',
|
||||
|
||||
|
||||
'Process list' => 'Xx',
|
||||
'%d process(es) have been killed.' => array('%d xx.', '%d xx.'),
|
||||
'Kill' => 'Xx',
|
||||
|
||||
|
||||
'Variables' => 'Xx',
|
||||
'Status' => 'Xx',
|
||||
|
||||
|
||||
'SQL command' => 'Xx',
|
||||
'%d query(s) executed OK.' => array('%d xx.', '%d xx.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Xx, %d.', 'Xx, %d.'),
|
||||
@@ -67,7 +67,7 @@ $translations = array(
|
||||
'History' => 'Xx',
|
||||
'Clear' => 'Xx',
|
||||
'Edit all' => 'Xx',
|
||||
|
||||
|
||||
'File upload' => 'Xx',
|
||||
'From server' => 'Xx',
|
||||
'Webserver file %s' => 'Xx %s',
|
||||
@@ -79,7 +79,7 @@ $translations = array(
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Xx %s.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Xx.',
|
||||
'You are offline.' => 'Xx.',
|
||||
|
||||
|
||||
'Export' => 'Xx',
|
||||
'Output' => 'Xx',
|
||||
'open' => 'xx',
|
||||
@@ -87,8 +87,9 @@ $translations = array(
|
||||
'Saving' => 'Xx',
|
||||
'Format' => 'Xx',
|
||||
'Data' => 'Xx',
|
||||
|
||||
|
||||
'Database' => 'Xx',
|
||||
'database' => 'xx',
|
||||
'DB' => 'XX',
|
||||
'Use' => 'Xx',
|
||||
'Select database' => 'Xx',
|
||||
@@ -101,10 +102,10 @@ $translations = array(
|
||||
'Alter database' => 'Xx',
|
||||
'Create database' => 'Xx',
|
||||
'Database schema' => 'Xx',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Xx',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => 'x',
|
||||
'0123456789' => 'xxxxxxxxxx',
|
||||
@@ -128,7 +129,7 @@ $translations = array(
|
||||
'Copy' => 'Xx',
|
||||
'Tables have been copied.' => 'Xx.',
|
||||
'overwrite' => 'xx',
|
||||
|
||||
|
||||
'Routines' => 'Xx',
|
||||
'Routine has been called, %d row(s) affected.' => array('Xx, %d.', 'Xx, %d.'),
|
||||
'Call' => 'Xx',
|
||||
@@ -141,7 +142,7 @@ $translations = array(
|
||||
'Alter function' => 'Xx',
|
||||
'Alter procedure' => 'Xx',
|
||||
'Return type' => 'Xx',
|
||||
|
||||
|
||||
'Events' => 'Xx',
|
||||
'Event has been dropped.' => 'Xx.',
|
||||
'Event has been altered.' => 'Xx.',
|
||||
@@ -154,7 +155,7 @@ $translations = array(
|
||||
'Start' => 'Xx',
|
||||
'End' => 'Xx',
|
||||
'On completion preserve' => 'Xx',
|
||||
|
||||
|
||||
'Tables' => 'Xx',
|
||||
'Tables and views' => 'Xx',
|
||||
'Table' => 'Xx',
|
||||
@@ -187,12 +188,12 @@ $translations = array(
|
||||
'Move down' => 'Xx',
|
||||
'Remove' => 'Xx',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Xx %s.',
|
||||
|
||||
|
||||
'Partition by' => 'Xx',
|
||||
'Partitions' => 'Xx',
|
||||
'Partition name' => 'Xx',
|
||||
'Values' => 'Xx',
|
||||
|
||||
|
||||
'View' => 'Xx',
|
||||
'Materialized view' => 'Xx',
|
||||
'View has been dropped.' => 'Xx.',
|
||||
@@ -200,14 +201,14 @@ $translations = array(
|
||||
'View has been created.' => 'Xx.',
|
||||
'Alter view' => 'Xx',
|
||||
'Create view' => 'Xx',
|
||||
|
||||
|
||||
'Indexes' => 'Xx',
|
||||
'Indexes have been altered.' => 'Xx.',
|
||||
'Alter indexes' => 'Xx',
|
||||
'Add next' => 'Xx',
|
||||
'Index Type' => 'Xx',
|
||||
'Column (length)' => 'Xx',
|
||||
|
||||
|
||||
'Foreign keys' => 'Xx',
|
||||
'Foreign key' => 'Xx',
|
||||
'Foreign key has been dropped.' => 'Xx.',
|
||||
@@ -223,7 +224,7 @@ $translations = array(
|
||||
'ON DELETE' => 'Xx',
|
||||
'ON UPDATE' => 'Xx',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'Xx.',
|
||||
|
||||
|
||||
'Triggers' => 'Xx',
|
||||
'Add trigger' => 'Xx',
|
||||
'Trigger has been dropped.' => 'Xx.',
|
||||
@@ -234,7 +235,7 @@ $translations = array(
|
||||
'Time' => 'Xx',
|
||||
'Event' => 'Xx',
|
||||
'Name' => 'Xx',
|
||||
|
||||
|
||||
'select' => 'xx',
|
||||
'Select' => 'Xx',
|
||||
'Select data' => 'Xx',
|
||||
@@ -260,16 +261,16 @@ $translations = array(
|
||||
'Loading' => 'Xx',
|
||||
'Whole result' => 'Xx',
|
||||
'%d byte(s)' => array('%d xx', '%d xx'),
|
||||
|
||||
|
||||
'Import' => 'Xx',
|
||||
'%d row(s) have been imported.' => array('%d xx.', '%d xx.'),
|
||||
'File must be in UTF-8 encoding.' => 'Xx.',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => 'Xx',
|
||||
'Ctrl+click on a value to modify it.' => 'Xx.',
|
||||
'Use edit link to modify this value.' => 'Xx.',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Xx%s.',
|
||||
'Item has been deleted.' => 'Xx.',
|
||||
@@ -289,14 +290,14 @@ $translations = array(
|
||||
'Clone' => 'Xx',
|
||||
'Delete' => 'Xx',
|
||||
'You have no privileges to update this table.' => 'Xx.',
|
||||
|
||||
|
||||
'E-mail' => 'Xx',
|
||||
'From' => 'Xx',
|
||||
'Subject' => 'Xx',
|
||||
'Attachments' => 'Xx',
|
||||
'Send' => 'Xx',
|
||||
'%d e-mail(s) have been sent.' => array('%d xx.', '%d xx.'),
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Xx',
|
||||
'Date and time' => 'Xx',
|
||||
@@ -306,7 +307,7 @@ $translations = array(
|
||||
'Network' => 'Xx',
|
||||
'Geometry' => 'Xx',
|
||||
'Relations' => 'Xx',
|
||||
|
||||
|
||||
'Editor' => 'Xx',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => 'xx',
|
||||
@@ -317,11 +318,11 @@ $translations = array(
|
||||
'now' => 'xx',
|
||||
'yes' => 'xx',
|
||||
'no' => 'xx',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Xx.',
|
||||
'Please use one of the extensions %s.' => 'Xx %s.',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Xx',
|
||||
'Create schema' => 'Xx',
|
||||
@@ -330,7 +331,7 @@ $translations = array(
|
||||
'Schema has been altered.' => 'Xx.',
|
||||
'Schema' => 'Xx',
|
||||
'Invalid schema.' => 'Xx.',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Xx',
|
||||
'Create sequence' => 'Xx',
|
||||
@@ -338,11 +339,20 @@ $translations = array(
|
||||
'Sequence has been created.' => 'Xx.',
|
||||
'Sequence has been altered.' => 'Xx.',
|
||||
'Alter sequence' => 'Xx',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Xx',
|
||||
'Create type' => 'Xx',
|
||||
'Type has been dropped.' => 'Xx.',
|
||||
'Type has been created.' => 'Xx.',
|
||||
'Alter type' => 'Xx',
|
||||
|
||||
// Plugins
|
||||
'Columns' => 'Xx',
|
||||
'Nullable' => 'Xx',
|
||||
'Default' => 'Xx',
|
||||
'Yes' => 'Xx',
|
||||
'No' => 'Xx',
|
||||
'One Time Password' => 'Xx',
|
||||
'Invalid OTP code.' => 'Xx.',
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ $translations = array(
|
||||
'Logged as: %s' => '登錄為: %s',
|
||||
'Logout successful.' => '成功登出。',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => '感謝使用Adminer,請考慮為我們<a href="https://www.adminer.org/en/donation/">捐款(英文網頁)</a>.',
|
||||
'Invalid credentials.' => '無效的憑證。',
|
||||
'Invalid server or credentials.' => null,
|
||||
'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>.',
|
||||
'Database does not support password.' => '資料庫不支援密碼。',
|
||||
@@ -29,10 +29,10 @@ $translations = array(
|
||||
'The action will be performed after successful login with the same credentials.' => '此操作將在成功使用相同的憑據登錄後執行。',
|
||||
'%s version: %s through PHP extension %s' => '%s 版本:%s 透過 PHP 擴充模組 %s',
|
||||
'Refresh' => '重新載入',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
|
||||
'Privileges' => '權限',
|
||||
'Create user' => '建立使用者',
|
||||
'User has been dropped.' => '已刪除使用者。',
|
||||
@@ -43,14 +43,14 @@ $translations = array(
|
||||
'Routine' => '程序',
|
||||
'Grant' => '授權',
|
||||
'Revoke' => '廢除',
|
||||
|
||||
|
||||
'Process list' => '處理程序列表',
|
||||
'%d process(es) have been killed.' => '%d 個 Process(es) 被終止',
|
||||
'Kill' => '終止',
|
||||
|
||||
|
||||
'Variables' => '變數',
|
||||
'Status' => '狀態',
|
||||
|
||||
|
||||
'SQL command' => 'SQL 命令',
|
||||
'%d query(s) executed OK.' => '已順利執行 %d 個查詢。',
|
||||
'Query executed OK, %d row(s) affected.' => '執行查詢 OK,%d 行受影響。',
|
||||
@@ -67,7 +67,7 @@ $translations = array(
|
||||
'History' => '紀錄',
|
||||
'Clear' => '清除',
|
||||
'Edit all' => '編輯全部',
|
||||
|
||||
|
||||
'File upload' => '檔案上傳',
|
||||
'From server' => '從伺服器',
|
||||
'Webserver file %s' => '網頁伺服器檔案 %s',
|
||||
@@ -79,7 +79,7 @@ $translations = array(
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'POST 資料太大。減少資料或者增加 %s 的設定值。',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => '您可以通過FTP上傳大型SQL檔並從伺服器導入。',
|
||||
'You are offline.' => '您離線了。',
|
||||
|
||||
|
||||
'Export' => '匯出',
|
||||
'Output' => '輸出',
|
||||
'open' => '打開',
|
||||
@@ -87,8 +87,9 @@ $translations = array(
|
||||
'Saving' => '保存中',
|
||||
'Format' => '格式',
|
||||
'Data' => '資料',
|
||||
|
||||
|
||||
'Database' => '資料庫',
|
||||
'database' => '資料庫',
|
||||
'DB' => '資料庫',
|
||||
'Use' => '使用',
|
||||
'Select database' => '選擇資料庫',
|
||||
@@ -101,10 +102,10 @@ $translations = array(
|
||||
'Alter database' => '修改資料庫',
|
||||
'Create database' => '建立資料庫',
|
||||
'Database schema' => '資料庫結構',
|
||||
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => '永久連結',
|
||||
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => ',',
|
||||
'0123456789' => '0123456789',
|
||||
@@ -128,7 +129,7 @@ $translations = array(
|
||||
'Copy' => '複製',
|
||||
'Tables have been copied.' => '資料表已經複製',
|
||||
'overwrite' => '覆蓋',
|
||||
|
||||
|
||||
'Routines' => '程序',
|
||||
'Routine has been called, %d row(s) affected.' => '程序已被執行,%d 行被影響',
|
||||
'Call' => '呼叫',
|
||||
@@ -141,7 +142,7 @@ $translations = array(
|
||||
'Alter function' => '修改函式',
|
||||
'Alter procedure' => '修改預存程序',
|
||||
'Return type' => '回傳類型',
|
||||
|
||||
|
||||
'Events' => '事件',
|
||||
'Event has been dropped.' => '已刪除事件。',
|
||||
'Event has been altered.' => '已修改事件。',
|
||||
@@ -154,7 +155,7 @@ $translations = array(
|
||||
'Start' => '開始',
|
||||
'End' => '結束',
|
||||
'On completion preserve' => '在完成後儲存',
|
||||
|
||||
|
||||
'Tables' => '資料表',
|
||||
'Tables and views' => '資料表和檢視表',
|
||||
'Table' => '資料表',
|
||||
@@ -187,12 +188,12 @@ $translations = array(
|
||||
'Move down' => '下移',
|
||||
'Remove' => '移除',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => '超過允許的字段數量的最大值。請增加 %s。',
|
||||
|
||||
|
||||
'Partition by' => '分區類型',
|
||||
'Partitions' => '分區',
|
||||
'Partition name' => '分區名稱',
|
||||
'Values' => '值',
|
||||
|
||||
|
||||
'View' => '檢視表',
|
||||
'Materialized view' => '物化視圖',
|
||||
'View has been dropped.' => '已刪除檢視表。',
|
||||
@@ -200,14 +201,14 @@ $translations = array(
|
||||
'View has been created.' => '已建立檢視表。',
|
||||
'Alter view' => '修改檢視表',
|
||||
'Create view' => '建立檢視表',
|
||||
|
||||
|
||||
'Indexes' => '索引',
|
||||
'Indexes have been altered.' => '已修改索引。',
|
||||
'Alter indexes' => '修改索引',
|
||||
'Add next' => '新增下一筆',
|
||||
'Index Type' => '索引類型',
|
||||
'Column (length)' => '欄位(長度)',
|
||||
|
||||
|
||||
'Foreign keys' => '外來鍵',
|
||||
'Foreign key' => '外來鍵',
|
||||
'Foreign key has been dropped.' => '已刪除外來鍵。',
|
||||
@@ -223,7 +224,7 @@ $translations = array(
|
||||
'ON DELETE' => 'ON DELETE',
|
||||
'ON UPDATE' => 'ON UPDATE',
|
||||
'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => '來源列和目標列必須具有相同的資料類型,在目標列上必須有一個索引並且引用的資料必須存在。',
|
||||
|
||||
|
||||
'Triggers' => '觸發器',
|
||||
'Add trigger' => '建立觸發器',
|
||||
'Trigger has been dropped.' => '已刪除觸發器。',
|
||||
@@ -234,7 +235,7 @@ $translations = array(
|
||||
'Time' => '時間',
|
||||
'Event' => '事件',
|
||||
'Name' => '名稱',
|
||||
|
||||
|
||||
'select' => '選擇',
|
||||
'Select' => '選擇',
|
||||
'Select data' => '選擇資料',
|
||||
@@ -260,16 +261,16 @@ $translations = array(
|
||||
'Loading' => '載入中',
|
||||
'Whole result' => '所有結果',
|
||||
'%d byte(s)' => '%d byte(s)',
|
||||
|
||||
|
||||
'Import' => '匯入',
|
||||
'%d row(s) have been imported.' => '已匯入 %d 行。',
|
||||
'File must be in UTF-8 encoding.' => '檔必須使用UTF-8編碼。',
|
||||
|
||||
|
||||
// in-place editing in select
|
||||
'Modify' => '修改',
|
||||
'Ctrl+click on a value to modify it.' => '按住Ctrl並按一下某個值進行修改。',
|
||||
'Use edit link to modify this value.' => '使用編輯連結來修改。',
|
||||
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => '已新增項目 %s。',
|
||||
'Item has been deleted.' => '該項目已被刪除',
|
||||
@@ -289,14 +290,14 @@ $translations = array(
|
||||
'Clone' => '複製',
|
||||
'Delete' => '刪除',
|
||||
'You have no privileges to update this table.' => '您沒有許可權更新這個資料表。',
|
||||
|
||||
|
||||
'E-mail' => '電子郵件',
|
||||
'From' => '來自',
|
||||
'Subject' => '主旨',
|
||||
'Attachments' => '附件',
|
||||
'Send' => '寄出',
|
||||
'%d e-mail(s) have been sent.' => '已寄出 %d 封郵件。',
|
||||
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => '數字',
|
||||
'Date and time' => '日期時間',
|
||||
@@ -306,7 +307,7 @@ $translations = array(
|
||||
'Network' => '網路',
|
||||
'Geometry' => '幾何',
|
||||
'Relations' => '關聯',
|
||||
|
||||
|
||||
'Editor' => '編輯器',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$1.$3.$5',
|
||||
@@ -317,11 +318,11 @@ $translations = array(
|
||||
'now' => '現在',
|
||||
'yes' => '是',
|
||||
'no' => '否',
|
||||
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => '檔案已存在。',
|
||||
'Please use one of the extensions %s.' => '請使用下列其中一個擴充模組 %s。',
|
||||
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => '修改資料表結構',
|
||||
'Create schema' => '建立資料表結構',
|
||||
@@ -330,7 +331,7 @@ $translations = array(
|
||||
'Schema has been altered.' => '已修改資料表結構。',
|
||||
'Schema' => '資料表結構',
|
||||
'Invalid schema.' => '無效的資料表結構。',
|
||||
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => '序列',
|
||||
'Create sequence' => '建立序列',
|
||||
@@ -338,11 +339,20 @@ $translations = array(
|
||||
'Sequence has been created.' => '已建立序列。',
|
||||
'Sequence has been altered.' => '已修改序列。',
|
||||
'Alter sequence' => '修改序列',
|
||||
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => '使用者類型',
|
||||
'Create type' => '建立類型',
|
||||
'Type has been dropped.' => '已刪除類型。',
|
||||
'Type has been created.' => '已建立類型。',
|
||||
'Alter type' => '修改類型',
|
||||
|
||||
// Plugins
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ $translations = array(
|
||||
'Logged as: %s' => '登录用户:%s',
|
||||
'Logout successful.' => '成功登出。',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => '感谢使用Adminer,请考虑为我们<a href="https://www.adminer.org/en/donation/">捐款(英文页面)</a>.',
|
||||
'Invalid credentials.' => '无效凭据。',
|
||||
'Invalid server or credentials.' => null,
|
||||
'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>.',
|
||||
'Database does not support password.' => '数据库不支持密码。',
|
||||
@@ -29,7 +29,7 @@ $translations = array(
|
||||
'The action will be performed after successful login with the same credentials.' => '此操作将在成功使用相同的凭据登录后执行。',
|
||||
'%s version: %s through PHP extension %s' => '%s 版本:%s, 使用PHP扩展 %s',
|
||||
'Refresh' => '刷新',
|
||||
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
@@ -89,6 +89,7 @@ $translations = array(
|
||||
'Data' => '数据',
|
||||
|
||||
'Database' => '数据库',
|
||||
'database' => '数据库',
|
||||
'DB' => '数据库',
|
||||
'Use' => '使用',
|
||||
'Select database' => '选择数据库',
|
||||
@@ -345,4 +346,12 @@ $translations = array(
|
||||
'Type has been dropped.' => '已删除类型。',
|
||||
'Type has been created.' => '已创建类型。',
|
||||
'Alter type' => '修改类型',
|
||||
|
||||
'Columns' => null,
|
||||
'Nullable' => null,
|
||||
'Default' => null,
|
||||
'Yes' => null,
|
||||
'No' => null,
|
||||
'One Time Password' => null,
|
||||
'Invalid OTP code.' => null,
|
||||
);
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
function adminer_object() {
|
||||
// required to run any plugin
|
||||
include_once "../plugins/plugin.php";
|
||||
|
||||
|
||||
// autoloader
|
||||
foreach (glob("../plugins/*.php") as $filename) {
|
||||
include_once $filename;
|
||||
}
|
||||
|
||||
|
||||
// enable extra drivers just by including them
|
||||
//~ include "../plugins/drivers/simpledb.php";
|
||||
|
||||
|
||||
$plugins = array(
|
||||
// specify enabled plugins here
|
||||
new AdminerDatabaseHide(array('information_schema')),
|
||||
@@ -32,13 +32,13 @@ function adminer_object() {
|
||||
new AdminerTablesFilter,
|
||||
new AdminerEditForeign,
|
||||
);
|
||||
|
||||
|
||||
/* It is possible to combine customization and plugins:
|
||||
class AdminerCustomization extends AdminerPlugin {
|
||||
}
|
||||
return new AdminerCustomization($plugins);
|
||||
*/
|
||||
|
||||
|
||||
return new AdminerPlugin($plugins);
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,8 @@ if (!$row) {
|
||||
?>
|
||||
|
||||
<form action="" method="post">
|
||||
<p><input name="name" autofocus value="<?php echo h($row["name"]); ?>" autocapitalize="off">
|
||||
<p><input name="name" id="name" value="<?php echo h($row["name"]); ?>" autocapitalize="off">
|
||||
<?php echo script("focus(qs('#name'));"); ?>
|
||||
<input type="submit" value="<?php echo lang('Save'); ?>">
|
||||
<?php
|
||||
if ($_GET["ns"] != "") {
|
||||
|
||||
@@ -9,6 +9,8 @@ parse_str($_COOKIE["adminer_import"], $adminer_import);
|
||||
|
||||
$rights = array(); // privilege => 0
|
||||
$columns = array(); // selectable columns
|
||||
$search_columns = array(); // searchable columns
|
||||
$order_columns = array(); // searchable columns
|
||||
$text_length = null;
|
||||
foreach ($fields as $key => $field) {
|
||||
$name = $adminer->fieldName($field);
|
||||
@@ -18,6 +20,12 @@ foreach ($fields as $key => $field) {
|
||||
$text_length = $adminer->selectLengthProcess();
|
||||
}
|
||||
}
|
||||
if (isset($field["privileges"]["where"]) && $name != "") {
|
||||
$search_columns[$key] = html_entity_decode(strip_tags($name), ENT_QUOTES);
|
||||
}
|
||||
if (isset($field["privileges"]["order"]) && $name != "") {
|
||||
$order_columns[$key] = html_entity_decode(strip_tags($name), ENT_QUOTES);
|
||||
}
|
||||
$rights += $field["privileges"];
|
||||
}
|
||||
|
||||
@@ -224,16 +232,14 @@ if (is_ajax()) {
|
||||
|
||||
$set = null;
|
||||
if (isset($rights["insert"]) || !support("table")) {
|
||||
$params = array();
|
||||
$set = "";
|
||||
foreach ((array) $_GET["where"] as $val) {
|
||||
if (isset($foreign_keys[$val["col"]]) && count($foreign_keys[$val["col"]]) == 1
|
||||
&& ($val["op"] == "=" || (!$val["op"] && (is_array($val["val"]) || !preg_match('~[_%]~', $val["val"]))) // LIKE in Editor
|
||||
if ($foreign_keys[$val["col"]] && count($foreign_keys[$val["col"]]) == 1 && ($val["op"] == "="
|
||||
|| (!$val["op"] && !preg_match('~[_%]~', $val["val"])) // LIKE in Editor
|
||||
)) {
|
||||
$params["set" . "[" . bracket_escape($val["col"]) . "]"] = $val["val"];
|
||||
$set .= "&set" . urlencode("[" . bracket_escape($val["col"]) . "]") . "=" . urlencode($val["val"]);
|
||||
}
|
||||
}
|
||||
|
||||
$set = $params ? "&" . http_build_query($params) : "";
|
||||
}
|
||||
$adminer->selectLinks($table_status, $set);
|
||||
|
||||
@@ -247,8 +253,8 @@ if (!$columns && support("table")) {
|
||||
echo '<input type="hidden" name="select" value="' . h($TABLE) . '">';
|
||||
echo "</div>\n";
|
||||
$adminer->selectColumnsPrint($select, $columns);
|
||||
$adminer->selectSearchPrint($where, $columns, $indexes);
|
||||
$adminer->selectOrderPrint($order, $columns, $indexes);
|
||||
$adminer->selectSearchPrint($where, $search_columns, $indexes);
|
||||
$adminer->selectOrderPrint($order, $order_columns, $indexes);
|
||||
$adminer->selectLimitPrint($limit);
|
||||
$adminer->selectLengthPrint($text_length);
|
||||
$adminer->selectActionPrint($indexes);
|
||||
@@ -326,19 +332,27 @@ if (!$columns && support("table")) {
|
||||
if (!isset($unselected[$key])) {
|
||||
$val = $_GET["columns"][key($select)];
|
||||
$field = $fields[$select ? ($val ? $val["col"] : current($select)) : $key];
|
||||
$name = ($field ? $adminer->fieldName($field, $rank) : ($val["fun"] ? "*" : h($key)));
|
||||
$name = ($field ? $adminer->fieldName($field, $rank) : ($val["fun"] ? "*" : $key));
|
||||
if ($name != "") {
|
||||
$rank++;
|
||||
$names[$key] = $name;
|
||||
$column = idf_escape($key);
|
||||
$href = remove_from_uri('(order|desc)[^=]*|page') . '&order%5B0%5D=' . urlencode($key);
|
||||
$desc = "&desc%5B0%5D=1";
|
||||
$sortable = isset($field["privileges"]["order"]);
|
||||
echo "<th id='th[" . h(bracket_escape($key)) . "]'>" . script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});", "");
|
||||
echo '<a href="' . h($href . ($order[0] == $column || $order[0] == $key || (!$order && $is_group && $group[0] == $column) ? $desc : '')) . '">'; // $order[0] == $key - COUNT(*)
|
||||
echo apply_sql_function($val["fun"], $name) . "</a>"; //! columns looking like functions
|
||||
if ($sortable) {
|
||||
echo '<a href="' . h($href . ($order[0] == $column || $order[0] == $key || (!$order && $is_group && $group[0] == $column) ? $desc : '')) . '">'; // $order[0] == $key - COUNT(*)
|
||||
}
|
||||
echo apply_sql_function($val["fun"], $name); //! columns looking like functions
|
||||
if ($sortable) {
|
||||
echo "</a>";
|
||||
}
|
||||
echo "<span class='column hidden'>";
|
||||
echo "<a href='" . h($href . $desc) . "' title='" . lang('descending') . "' class='text'> ↓</a>";
|
||||
if (!$val["fun"]) {
|
||||
if ($sortable) {
|
||||
echo "<a href='" . h($href . $desc) . "' title='" . lang('descending') . "' class='text'> ↓</a>";
|
||||
}
|
||||
if (!$val["fun"] && isset($field["privileges"]["where"])) {
|
||||
echo '<a href="#fieldset-search" title="' . lang('Search') . '" class="text jsonly"> =</a>';
|
||||
echo script("qsl('a').onclick = partial(selectSearch, '" . js_escape($key) . "');");
|
||||
}
|
||||
@@ -432,7 +446,7 @@ if (!$columns && support("table")) {
|
||||
$link .= where_link($i++, $k, $v);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$val = select_value($val, $link, $field, $text_length);
|
||||
$id = h("val[$unique_idf][" . bracket_escape($key) . "]");
|
||||
$value = $_POST["val"][$unique_idf][bracket_escape($key)];
|
||||
@@ -493,7 +507,7 @@ if (!$columns && support("table")) {
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo "<div class='footer'><div>\n";
|
||||
if ($rows || $page) {
|
||||
if ($pagination) {
|
||||
@@ -525,7 +539,7 @@ if (!$columns && support("table")) {
|
||||
}
|
||||
echo "</fieldset>\n";
|
||||
}
|
||||
|
||||
|
||||
echo "<fieldset>";
|
||||
echo "<legend>" . lang('Whole result') . "</legend>";
|
||||
$display_rows = ($exact_count ? "" : "~ ") . $found_rows;
|
||||
@@ -554,9 +568,9 @@ if (!$columns && support("table")) {
|
||||
}
|
||||
if ($format) {
|
||||
print_fieldset("export", lang('Export') . " <span id='selected2'></span>");
|
||||
$output = $adminer->dumpOutput();
|
||||
echo ($output ? html_select("output", $output, $adminer_import["output"]) . " " : "");
|
||||
echo html_select("format", $format, $adminer_import["format"]);
|
||||
$output = $adminer->dumpOutput();
|
||||
echo ($output ? " " . html_select("output", $output, $adminer_import["output"]) : "");
|
||||
echo " <input type='submit' name='export' value='" . lang('Export') . "'>\n";
|
||||
echo "</div></fieldset>\n";
|
||||
}
|
||||
@@ -572,7 +586,7 @@ if (!$columns && support("table")) {
|
||||
echo script("qsl('a').onclick = partial(toggle, 'import');", "");
|
||||
echo "<span id='import' class='hidden'>: ";
|
||||
echo "<input type='file' name='csv_file'> ";
|
||||
echo html_select("separator", array("csv" => "CSV,", "csv;" => "CSV;", "tsv" => "TSV"), $adminer_import["format"], 1); // 1 - select
|
||||
echo html_select("separator", array("csv" => "CSV,", "csv;" => "CSV;", "tsv" => "TSV"), $adminer_import["format"]);
|
||||
echo " <input type='submit' name='import' value='" . lang('Import') . "'>";
|
||||
echo "</span>";
|
||||
echo "</div>";
|
||||
|
||||
@@ -32,8 +32,8 @@ if (!$error && $_POST) {
|
||||
}
|
||||
|
||||
if (is_string($query)) { // get_file() returns error as number, fread() as false
|
||||
if (function_exists('memory_get_usage') && ($memory_limit = ini_bytes("memory_limit")) != "-1") {
|
||||
@ini_set("memory_limit", max($memory_limit, 2 * strlen($query) + memory_get_usage() + 8e6)); // @ - may be disabled, 2 - substr and trim, 8e6 - other variables
|
||||
if (function_exists('memory_get_usage')) {
|
||||
@ini_set("memory_limit", max(ini_bytes("memory_limit"), 2 * strlen($query) + memory_get_usage() + 8e6)); // @ - may be disabled, 2 - substr and trim, 8e6 - other variables
|
||||
}
|
||||
|
||||
if ($query != "" && strlen($query) < 1e6) { // don't add big queries
|
||||
@@ -81,21 +81,13 @@ if (!$error && $_POST) {
|
||||
$offset = $pos + strlen($found);
|
||||
|
||||
if ($found && rtrim($found) != $delimiter) { // find matching quote or comment end
|
||||
$c_style_escapes = is_c_style_escapes() || ($jush == "pgsql" && ($pos > 0 && strtolower($query[$pos - 1]) == "e"));
|
||||
|
||||
$pattern = ($found == '/*' ? '\*/'
|
||||
: ($found == '[' ? ']'
|
||||
: (preg_match('~^-- |^#~', $found) ? "\n"
|
||||
: preg_quote($found) . ($c_style_escapes ? "|\\\\." : "")
|
||||
)));
|
||||
|
||||
while (preg_match("($pattern|\$)s", $query, $match, PREG_OFFSET_CAPTURE, $offset)) {
|
||||
while (preg_match('(' . ($found == '/*' ? '\*/' : ($found == '[' ? ']' : (preg_match('~^-- |^#~', $found) ? "\n" : preg_quote($found) . "|\\\\."))) . '|$)s', $query, $match, PREG_OFFSET_CAPTURE, $offset)) { //! respect sql_mode NO_BACKSLASH_ESCAPES
|
||||
$s = $match[0][0];
|
||||
if (!$s && $fp && !feof($fp)) {
|
||||
$query .= fread($fp, 1e5);
|
||||
} else {
|
||||
$offset = $match[0][1] + strlen($s);
|
||||
if (!$s || $s[0] != "\\") {
|
||||
if (!isset($s[0]) || $s[0] != "\\") {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -131,7 +123,7 @@ if (!$error && $_POST) {
|
||||
|
||||
if ($connection->error) {
|
||||
echo ($_POST["only_errors"] ? $print : "");
|
||||
echo "<p class='error'>" . lang('Error in query') . ($connection->errno ? " ($connection->errno)" : "") . ": " . error() . "\n";
|
||||
echo "<p class='error'>" . lang('Error in query') . (!empty($connection->errno) ? " ($connection->errno)" : "") . ": " . error() . "\n";
|
||||
$errors[] = " <a href='#sql-$commands'>$commands</a>";
|
||||
if ($_POST["error_stops"]) {
|
||||
break 2;
|
||||
@@ -141,7 +133,7 @@ if (!$error && $_POST) {
|
||||
$time = " <span class='time'>(" . format_time($start) . ")</span>"
|
||||
. (strlen($q) < 1000 ? " <a href='" . h(ME) . "sql=" . urlencode(trim($q)) . "'>" . lang('Edit') . "</a>" : "") // 1000 - maximum length of encoded URL in IE is 2083 characters
|
||||
;
|
||||
$affected = $connection->affected_rows; // getting warnings overwrites this
|
||||
$affected = $connection->affected_rows; // getting warnigns overwrites this
|
||||
$warnings = ($_POST["only_errors"] ? "" : $driver->warnings());
|
||||
$warnings_id = "warnings-$commands";
|
||||
if ($warnings) {
|
||||
@@ -182,7 +174,7 @@ if (!$error && $_POST) {
|
||||
}
|
||||
echo ($warnings ? "<div id='$warnings_id' class='hidden'>\n$warnings</div>\n" : "");
|
||||
if ($explain) {
|
||||
echo "<div id='$explain_id' class='hidden explain'>\n";
|
||||
echo "<div id='$explain_id' class='hidden'>\n";
|
||||
select($explain, $connection2, $orgtables);
|
||||
echo "</div>\n";
|
||||
}
|
||||
@@ -233,7 +225,7 @@ if (!isset($_GET["import"])) {
|
||||
echo script(($_POST ? "" : "qs('textarea').focus();\n") . "qs('#form').onsubmit = partial(sqlSubmit, qs('#form'), '" . js_escape(remove_from_uri("sql|limit|error_stops|only_errors|history")) . "');");
|
||||
echo "<p>$execute\n";
|
||||
echo lang('Limit rows') . ": <input type='number' name='limit' class='size' value='" . h($_POST ? $_POST["limit"] : $_GET["limit"]) . "'>\n";
|
||||
|
||||
|
||||
} else {
|
||||
echo "<fieldset><legend>" . lang('File upload') . "</legend><div>";
|
||||
$gz = (extension_loaded("zlib") ? "[.gz]" : "");
|
||||
|
||||
@@ -23,15 +23,13 @@ code { background: #eee; }
|
||||
tbody tr:hover td, tbody tr:hover th { background: #eee; }
|
||||
pre { margin: 1em 0 0; }
|
||||
pre, textarea { font: 100%/1.25 monospace; }
|
||||
pre.jush { background: #fff; }
|
||||
input, textarea { box-sizing: border-box; }
|
||||
input, select { vertical-align: middle; }
|
||||
input.default { box-shadow: 1px 1px 1px #777; }
|
||||
input.required { box-shadow: 1px 1px 1px red; }
|
||||
input.maxlength { box-shadow: 1px 1px 1px red; }
|
||||
input.wayoff { left: -1000px; position: absolute; }
|
||||
.block { display: block; }
|
||||
.version { color: #777; font-size: 62%; }
|
||||
.version { color: #777; font-size: 67%; }
|
||||
.js .hidden, .nojs .jsonly { display: none; }
|
||||
.js .column { position: absolute; background: #ddf; padding: .27em 1ex .3em 0; margin-top: -.27em; }
|
||||
.nowrap td, .nowrap th, td.nowrap, p.nowrap { white-space: pre; }
|
||||
@@ -56,7 +54,6 @@ input.wayoff { left: -1000px; position: absolute; }
|
||||
.view { font-style: italic; }
|
||||
.active { font-weight: bold; }
|
||||
.sqlarea { width: 98%; }
|
||||
.explain { white-space: pre; }
|
||||
.icon { width: 18px; height: 18px; background-color: navy; }
|
||||
.icon:hover { background-color: red; }
|
||||
.size { width: 6ex; }
|
||||
@@ -78,7 +75,7 @@ input.wayoff { left: -1000px; position: absolute; }
|
||||
#lang { position: absolute; top: 0; left: 0; line-height: 1.8em; padding: .3em 1em; }
|
||||
#breadcrumb { white-space: nowrap; position: absolute; top: 0; left: 21em; background: #eee; height: 2em; line-height: 1.8em; padding: 0 1em; margin: 0 0 0 -18px; }
|
||||
#h1 { color: #777; text-decoration: none; font-style: italic; }
|
||||
#version { color: red; }
|
||||
#version { font-size: 67%; color: red; }
|
||||
#schema { margin-left: 60px; position: relative; -moz-user-select: none; -webkit-user-select: none; }
|
||||
#schema .table { border: 1px solid silver; padding: 0 2px; cursor: move; position: absolute; }
|
||||
#schema .references { position: absolute; }
|
||||
@@ -92,7 +89,6 @@ input.wayoff { left: -1000px; position: absolute; }
|
||||
.rtl .pages { left: auto; right: 21em; }
|
||||
.rtl input.wayoff { left: auto; right: -1000px; }
|
||||
.rtl #lang, .rtl #menu { left: auto; right: 0; }
|
||||
.rtl pre, .rtl code { direction: ltr; }
|
||||
|
||||
@media all and (max-width: 880px) {
|
||||
.pages { left: auto; }
|
||||
|
||||
@@ -16,22 +16,17 @@ function bodyLoad(version, maria) {
|
||||
if (maria) {
|
||||
for (var i = 1; i < obj.length; i++) {
|
||||
obj[i] = obj[i]
|
||||
.replace('.html', '/')
|
||||
.replace('-type-syntax', '-data-types')
|
||||
.replace(/\.html/, '/')
|
||||
.replace(/-type-syntax/, '-data-types')
|
||||
.replace(/numeric-(data-types)/, '$1-$&')
|
||||
.replace(/replication-options-(master|binary-log)\//, 'replication-and-binary-log-system-variables/')
|
||||
.replace('server-options/', 'server-system-variables/')
|
||||
.replace('innodb-parameters/', 'innodb-system-variables/')
|
||||
.replace(/#(statvar|sysvar|option_mysqld)_(.*)/, '#$2')
|
||||
.replace(/#sysvar_(.*)/, '#$1')
|
||||
.replace(/#statvar_.*/, '#$$1')
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
obj[key] = (maria ? obj[key].replace('dev.mysql.com/doc/mysql/en/', 'mariadb.com/kb/en/') : obj[key]) // MariaDB
|
||||
.replace('/doc/mysql/', '/doc/refman/' + version + '/') // MySQL
|
||||
.replace('/docs/current/', '/docs/' + version) // PostgreSQL
|
||||
obj[key] = (maria ? obj[key].replace(/dev\.mysql\.com\/doc\/mysql\/en\//, 'mariadb.com/kb/en/library/') : obj[key]) // MariaDB
|
||||
.replace(/\/doc\/mysql/, '/doc/refman/' + version) // MySQL
|
||||
.replace(/\/docs\/current/, '/docs/' + version) // PostgreSQL
|
||||
;
|
||||
}
|
||||
}
|
||||
@@ -59,7 +54,7 @@ function bodyLoad(version, maria) {
|
||||
function formField(form, name) {
|
||||
// required in IE < 8, form.elements[name] doesn't work
|
||||
for (var i=0; i < form.length; i++) {
|
||||
if (form[i].name == name) {
|
||||
if (form[i].name === name) {
|
||||
return form[i];
|
||||
}
|
||||
}
|
||||
@@ -108,15 +103,8 @@ var dbPrevious = {};
|
||||
* @this HTMLSelectElement
|
||||
*/
|
||||
function dbMouseDown(event) {
|
||||
// Firefox: mouse-down event does not contain pressed key information for OPTION.
|
||||
// Chrome: mouse-down event has inherited key information from SELECT.
|
||||
// So we ignore the event for OPTION to work Ctrl+click correctly everywhere.
|
||||
if (event.target.tagName == "OPTION") {
|
||||
return;
|
||||
}
|
||||
|
||||
dbCtrl = isCtrl(event);
|
||||
if (dbPrevious[this.name] == undefined) {
|
||||
if (dbPrevious[this.name] === undefined) {
|
||||
dbPrevious[this.name] = this.value;
|
||||
}
|
||||
}
|
||||
@@ -130,7 +118,7 @@ function dbChange() {
|
||||
}
|
||||
this.form.submit();
|
||||
this.form.target = '';
|
||||
if (dbCtrl && dbPrevious[this.name] != undefined) {
|
||||
if (dbCtrl && dbPrevious[this.name] !== undefined) {
|
||||
this.value = dbPrevious[this.name];
|
||||
dbPrevious[this.name] = undefined;
|
||||
}
|
||||
@@ -161,7 +149,7 @@ function selectFieldChange() {
|
||||
if (match) {
|
||||
var op = selectValue(form[match[1] + 'op]']);
|
||||
var val = form[match[1] + 'val]'].value;
|
||||
if (col in indexColumns && (!/LIKE|REGEXP/.test(op) || (op == 'LIKE' && val.charAt(0) != '%'))) {
|
||||
if (col in indexColumns && (!/LIKE|REGEXP/.test(op) || (op === 'LIKE' && val.charAt(0) !== '%'))) {
|
||||
return true;
|
||||
} else if (col || val) {
|
||||
ok = false;
|
||||
@@ -173,7 +161,7 @@ function selectFieldChange() {
|
||||
}
|
||||
var val = selectValue(form[match[1] + 'col]']);
|
||||
if (val) {
|
||||
columns[col && col != 'count' ? '' : val] = 1;
|
||||
columns[col && col !== 'count' ? '' : val] = 1;
|
||||
}
|
||||
}
|
||||
if (col && /^order/.test(select.name)) {
|
||||
@@ -206,7 +194,7 @@ var added = '.', rowCount;
|
||||
* @return boolean
|
||||
*/
|
||||
function delimiterEqual(val, a, b) {
|
||||
return (val == a + '_' + b || val == a + b || val == a + b.charAt(0).toUpperCase() + b.substr(1));
|
||||
return (val === a + '_' + b || val === a + b || val === a + b.charAt(0).toUpperCase() + b.substr(1));
|
||||
}
|
||||
|
||||
/** Escape string to use as identifier
|
||||
@@ -267,7 +255,7 @@ function editingClick(event) {
|
||||
} else if (/^drop_col\[/.test(name)) {
|
||||
editingRemoveRow.call(el, 'fields\$1[field]');
|
||||
} else {
|
||||
if (name == 'auto_increment_col') {
|
||||
if (name === 'auto_increment_col') {
|
||||
var field = el.form['fields[' + el.value + '][field]'];
|
||||
if (!field.value) {
|
||||
field.value = 'id';
|
||||
@@ -302,7 +290,7 @@ function editingNameChange() {
|
||||
for (var i = opts.length; i--; ) {
|
||||
var match = /(.+)`(.+)/.exec(opts[i].value);
|
||||
if (!match) { // common type
|
||||
if (candidate && i == opts.length - 2 && val == opts[candidate].value.replace(/.+`/, '') && name == 'fields[1]') { // single target table, link to column, first field - probably `id`
|
||||
if (candidate && i === opts.length - 2 && val === opts[candidate].value.replace(/.+`/, '') && name === 'fields[1]') { // single target table, link to column, first field - probably `id`
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@@ -312,7 +300,7 @@ function editingNameChange() {
|
||||
var tables = [ table, table.replace(/s$/, ''), table.replace(/es$/, '') ];
|
||||
for (var j=0; j < tables.length; j++) {
|
||||
table = tables[j];
|
||||
if (val == column || val == table || delimiterEqual(val, table, column) || delimiterEqual(val, column, table)) {
|
||||
if (val === column || val === table || delimiterEqual(val, table, column) || delimiterEqual(val, column, table)) {
|
||||
if (candidate) {
|
||||
return;
|
||||
}
|
||||
@@ -347,7 +335,7 @@ function editingAddRow(focus) {
|
||||
tags2 = qsa('input', row2);
|
||||
var input = tags2[0]; // IE loose tags2 after insertBefore()
|
||||
for (var i=0; i < tags.length; i++) {
|
||||
if (tags[i].name == 'auto_increment_col') {
|
||||
if (tags[i].name === 'auto_increment_col') {
|
||||
tags2[i].value = x;
|
||||
tags2[i].checked = false;
|
||||
}
|
||||
@@ -409,7 +397,7 @@ function editingTypeChange() {
|
||||
var text = selectValue(type);
|
||||
for (var i=0; i < type.form.elements.length; i++) {
|
||||
var el = type.form.elements[i];
|
||||
if (el.name == name + '[length]') {
|
||||
if (el.name === name + '[length]') {
|
||||
if (!(
|
||||
(/(char|binary)$/.test(lastType) && /(char|binary)$/.test(text))
|
||||
|| (/(enum|set)$/.test(lastType) && /(enum|set)$/.test(text))
|
||||
@@ -418,19 +406,19 @@ function editingTypeChange() {
|
||||
}
|
||||
el.oninput.apply(el);
|
||||
}
|
||||
if (lastType == 'timestamp' && el.name == name + '[has_default]' && /timestamp/i.test(formField(type.form, name + '[default]').value)) {
|
||||
if (lastType === 'timestamp' && el.name == name + '[has_default]' && /timestamp/i.test(formField(type.form, name + '[default]').value)) {
|
||||
el.checked = false;
|
||||
}
|
||||
if (el.name == name + '[collation]') {
|
||||
if (el.name === name + '[collation]') {
|
||||
alterClass(el, 'hidden', !/(char|text|enum|set)$/.test(text));
|
||||
}
|
||||
if (el.name == name + '[unsigned]') {
|
||||
if (el.name === name + '[unsigned]') {
|
||||
alterClass(el, 'hidden', !/(^|[^o])int(?!er)|numeric|real|float|double|decimal|money/.test(text));
|
||||
}
|
||||
if (el.name == name + '[on_update]') {
|
||||
if (el.name === name + '[on_update]') {
|
||||
alterClass(el, 'hidden', !/timestamp|datetime/.test(text)); // MySQL supports datetime since 5.6.5
|
||||
}
|
||||
if (el.name == name + '[on_delete]') {
|
||||
if (el.name === name + '[on_delete]') {
|
||||
alterClass(el, 'hidden', !/`/.test(text));
|
||||
}
|
||||
}
|
||||
@@ -469,13 +457,13 @@ function enumValues(s) {
|
||||
var offset = 0;
|
||||
var match;
|
||||
while (match = re.exec(s)) {
|
||||
if (offset != match.index) {
|
||||
if (offset !== match.index) {
|
||||
break;
|
||||
}
|
||||
result.push(match[2].replace(/'(')|\\(.)/g, '$1$2'));
|
||||
offset += match[0].length;
|
||||
}
|
||||
return (offset == s.length ? result.join('\n') : s);
|
||||
return (offset === s.length ? result.join('\n') : s);
|
||||
}
|
||||
|
||||
/** Finish editing of enum or set
|
||||
@@ -561,7 +549,7 @@ function foreignAddRow() {
|
||||
this.onchange = function () { };
|
||||
var selects = qsa('select', row);
|
||||
for (var i=0; i < selects.length; i++) {
|
||||
selects[i].name = selects[i].name.replace(/\d+]/, '1$&');
|
||||
selects[i].name = selects[i].name.replace(']', '1]');
|
||||
selects[i].selectedIndex = 0;
|
||||
}
|
||||
parentTag(this, 'table').appendChild(row);
|
||||
@@ -616,7 +604,7 @@ function indexesAddColumn(prefix) {
|
||||
var field = this;
|
||||
var select = field.form[field.name.replace(/].*/, '][type]')];
|
||||
if (!select.selectedIndex) {
|
||||
while (selectValue(select) != "INDEX" && select.selectedIndex < select.options.length) {
|
||||
while (selectValue(select) !== "INDEX" && select.selectedIndex < select.options.length) {
|
||||
select.selectedIndex++;
|
||||
}
|
||||
select.onchange();
|
||||
@@ -633,7 +621,7 @@ function indexesAddColumn(prefix) {
|
||||
for (var i = 0; i < inputs.length; i++) {
|
||||
var input = inputs[i];
|
||||
input.name = input.name.replace(/]\[\d+/, '$&1');
|
||||
if (input.type != 'checkbox') {
|
||||
if (input.type !== 'checkbox') {
|
||||
input.value = '';
|
||||
}
|
||||
}
|
||||
@@ -682,7 +670,7 @@ var that, x, y; // em and tablePos defined in schema.inc.php
|
||||
* @this HTMLElement
|
||||
*/
|
||||
function schemaMousedown(event) {
|
||||
if ((event.which ? event.which : event.button) == 1) {
|
||||
if ((event.which ? event.which : event.button) === 1) {
|
||||
that = this;
|
||||
x = event.clientX - this.offsetLeft;
|
||||
y = event.clientY - this.offsetTop;
|
||||
@@ -699,12 +687,12 @@ function schemaMousemove(event) {
|
||||
var divs = qsa('div', that);
|
||||
var lineSet = { };
|
||||
for (var i=0; i < divs.length; i++) {
|
||||
if (divs[i].className == 'references') {
|
||||
if (divs[i].className === 'references') {
|
||||
var div2 = qs('[id="' + (/^refs/.test(divs[i].id) ? 'refd' : 'refs') + divs[i].id.substr(4) + '"]');
|
||||
var ref = (tablePos[divs[i].title] ? tablePos[divs[i].title] : [ div2.parentNode.offsetTop / em, 0 ]);
|
||||
var left1 = -1;
|
||||
var id = divs[i].id.replace(/^ref.(.+)-.+/, '$1');
|
||||
if (divs[i].parentNode != div2.parentNode) {
|
||||
if (divs[i].parentNode !== div2.parentNode) {
|
||||
left1 = Math.min(0, ref[1] - left) - 1;
|
||||
divs[i].style.left = left1 + 'em';
|
||||
divs[i].querySelector('div').style.width = -left1 + 'em';
|
||||
@@ -716,7 +704,7 @@ function schemaMousemove(event) {
|
||||
var line = qs('[id="' + divs[i].id.replace(/^....(.+)-.+$/, 'refl$1') + '"]');
|
||||
var top1 = top + divs[i].offsetTop / em;
|
||||
var top2 = top + div2.offsetTop / em;
|
||||
if (divs[i].parentNode != div2.parentNode) {
|
||||
if (divs[i].parentNode !== div2.parentNode) {
|
||||
top2 += ref[0] - top;
|
||||
line.querySelector('div').style.height = Math.abs(top1 - top2) + 'em';
|
||||
}
|
||||
@@ -764,7 +752,7 @@ function helpMouseover(event, text, side) {
|
||||
var target = getTarget(event);
|
||||
if (!text) {
|
||||
helpClose();
|
||||
} else if (window.jush && (!helpIgnore || this != target)) {
|
||||
} else if (window.jush && (!helpIgnore || this !== target)) {
|
||||
helpOpen = 1;
|
||||
var help = qs('#help');
|
||||
help.innerHTML = text;
|
||||
@@ -783,7 +771,7 @@ function helpMouseover(event, text, side) {
|
||||
*/
|
||||
function helpMouseout(event) {
|
||||
helpOpen = 0;
|
||||
helpIgnore = (this != getTarget(event));
|
||||
helpIgnore = (this !== getTarget(event));
|
||||
setTimeout(function () {
|
||||
if (!helpOpen) {
|
||||
helpClose();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @param [HTMLElement] defaults to document
|
||||
* @return HTMLElement
|
||||
*/
|
||||
function qs(selector, context) {
|
||||
function qs(selector, context = null) {
|
||||
return (context || document).querySelector(selector);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ function qs(selector, context) {
|
||||
* @param [HTMLElement] defaults to document
|
||||
* @return HTMLElement
|
||||
*/
|
||||
function qsl(selector, context) {
|
||||
function qsl(selector, context = null) {
|
||||
var els = qsa(selector, context);
|
||||
return els[els.length - 1];
|
||||
}
|
||||
@@ -23,7 +23,7 @@ function qsl(selector, context) {
|
||||
* @param [HTMLElement] defaults to document
|
||||
* @return NodeList
|
||||
*/
|
||||
function qsa(selector, context) {
|
||||
function qsa(selector, context = null) {
|
||||
return (context || document).querySelectorAll(selector);
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ function alterClass(el, className, enable) {
|
||||
*/
|
||||
function toggle(id) {
|
||||
var el = qs('#' + id);
|
||||
el.className = (el.className == 'hidden' ? '' : 'hidden');
|
||||
el.className = (el.className === 'hidden' ? '' : 'hidden');
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -111,7 +111,7 @@ function verifyVersion(current, url, token) {
|
||||
if (window.postMessage && window.addEventListener) {
|
||||
iframe.style.display = 'none';
|
||||
addEventListener('message', function (event) {
|
||||
if (event.origin == 'https://www.adminer.org') {
|
||||
if (event.origin === 'https://www.adminer.org') {
|
||||
var match = /version=(.+)/.exec(event.data);
|
||||
if (match) {
|
||||
cookie('adminer_version=' + match[1], 1);
|
||||
@@ -181,8 +181,8 @@ function selectCount(id, count) {
|
||||
var inputs = qsa('input', el.parentNode.parentNode);
|
||||
for (var i = 0; i < inputs.length; i++) {
|
||||
var input = inputs[i];
|
||||
if (input.type == 'submit') {
|
||||
input.disabled = (count == '0');
|
||||
if (input.type === 'submit') {
|
||||
input.disabled = (count === '0');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -252,7 +252,7 @@ function tableClick(event, click) {
|
||||
var el = getTarget(event);
|
||||
while (!isTag(el, 'tr')) {
|
||||
if (isTag(el, 'table|a|input|textarea')) {
|
||||
if (el.type != 'checkbox') {
|
||||
if (el.type !== 'checkbox') {
|
||||
return;
|
||||
}
|
||||
checkboxClick.call(el, event);
|
||||
@@ -268,7 +268,7 @@ function tableClick(event, click) {
|
||||
el.checked = !el.checked;
|
||||
el.onclick && el.onclick();
|
||||
}
|
||||
if (el.name == 'check[]') {
|
||||
if (el.name === 'check[]') {
|
||||
el.form['all'].checked = false;
|
||||
formUncheck('all-page');
|
||||
}
|
||||
@@ -288,7 +288,7 @@ function checkboxClick(event) {
|
||||
if (!this.name) {
|
||||
return;
|
||||
}
|
||||
if (event.shiftKey && (!lastChecked || lastChecked.name == this.name)) {
|
||||
if (event.shiftKey && (!lastChecked || lastChecked.name === this.name)) {
|
||||
var checked = (lastChecked ? lastChecked.checked : true);
|
||||
var inputs = qsa('input', parentTag(this, 'table'));
|
||||
var checking = !lastChecked;
|
||||
@@ -345,7 +345,7 @@ function nodePosition(el) {
|
||||
*/
|
||||
function pageClick(href, page) {
|
||||
if (!isNaN(page) && page) {
|
||||
location.href = href + (page != 1 ? '&page=' + (page - 1) : '');
|
||||
location.href = href + (page !== 1 ? '&page=' + (page - 1) : '');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,7 +388,7 @@ function selectAddRow() {
|
||||
for (var i=0; i < inputs.length; i++) {
|
||||
inputs[i].name = inputs[i].name.replace(/[a-z]\[\d+/, '$&1');
|
||||
inputs[i].className = '';
|
||||
if (inputs[i].type == 'checkbox') {
|
||||
if (inputs[i].type === 'checkbox') {
|
||||
inputs[i].checked = false;
|
||||
} else {
|
||||
inputs[i].value = '';
|
||||
@@ -402,7 +402,7 @@ function selectAddRow() {
|
||||
* @this HTMLInputElement
|
||||
*/
|
||||
function selectSearchKeydown(event) {
|
||||
if (event.keyCode == 13 || event.keyCode == 10) {
|
||||
if (event.keyCode === 13 || event.keyCode === 10) {
|
||||
this.onsearch = function () {
|
||||
};
|
||||
}
|
||||
@@ -445,11 +445,11 @@ function selectSearch(name) {
|
||||
for (var i=0; i < divs.length; i++) {
|
||||
var div = divs[i];
|
||||
var el = qs('[name$="[col]"]', div);
|
||||
if (el && selectValue(el) == name) {
|
||||
if (el && selectValue(el) === name) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == divs.length) {
|
||||
if (i === divs.length) {
|
||||
div.firstChild.value = name;
|
||||
div.firstChild.onchange();
|
||||
}
|
||||
@@ -487,7 +487,7 @@ function bodyKeydown(event, button) {
|
||||
if (target.jushTextarea) {
|
||||
target = target.jushTextarea;
|
||||
}
|
||||
if (isCtrl(event) && (event.keyCode == 13 || event.keyCode == 10) && isTag(target, 'select|textarea|input')) { // 13|10 - Enter
|
||||
if (isCtrl(event) && (event.keyCode === 13 || event.keyCode === 10) && isTag(target, 'select|textarea|input')) { // 13|10 - Enter
|
||||
target.blur();
|
||||
if (button) {
|
||||
target.form[button].click();
|
||||
@@ -508,7 +508,7 @@ function bodyKeydown(event, button) {
|
||||
*/
|
||||
function bodyClick(event) {
|
||||
var target = getTarget(event);
|
||||
if ((isCtrl(event) || event.shiftKey) && target.type == 'submit' && isTag(target, 'input')) {
|
||||
if ((isCtrl(event) || event.shiftKey) && target.type === 'submit' && isTag(target, 'input')) {
|
||||
target.form.target = '_blank';
|
||||
setTimeout(function () {
|
||||
// if (isCtrl(event)) { focus(); } doesn't work
|
||||
@@ -524,9 +524,9 @@ function bodyClick(event) {
|
||||
* @return boolean
|
||||
*/
|
||||
function editingKeydown(event) {
|
||||
if ((event.keyCode == 40 || event.keyCode == 38) && isCtrl(event)) { // 40 - Down, 38 - Up
|
||||
if ((event.keyCode === 40 || event.keyCode === 38) && isCtrl(event)) { // 40 - Down, 38 - Up
|
||||
var target = getTarget(event);
|
||||
var sibling = (event.keyCode == 40 ? 'nextSibling' : 'previousSibling');
|
||||
var sibling = (event.keyCode === 40 ? 'nextSibling' : 'previousSibling');
|
||||
var el = target.parentNode.parentNode[sibling];
|
||||
if (el && (isTag(el, 'tr') || (el = el[sibling])) && isTag(el, 'tr') && (el = el.childNodes[nodePosition(target.parentNode)]) && (el = el.childNodes[nodePosition(target)])) {
|
||||
el.focus();
|
||||
@@ -614,7 +614,7 @@ function ajax(url, callback, data, message) {
|
||||
}
|
||||
request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
||||
request.onreadystatechange = function () {
|
||||
if (request.readyState == 4) {
|
||||
if (request.readyState === 4) {
|
||||
if (/^2/.test(request.status)) {
|
||||
callback(request);
|
||||
} else {
|
||||
@@ -656,7 +656,7 @@ function ajaxForm(form, message, button) {
|
||||
if (/^file$/i.test(el.type) && el.value) {
|
||||
return false;
|
||||
}
|
||||
if (!/^(checkbox|radio|submit|file)$/i.test(el.type) || el.checked || el == button) {
|
||||
if (!/^(checkbox|radio|submit|file)$/i.test(el.type) || el.checked || el === button) {
|
||||
data.push(encodeURIComponent(el.name) + '=' + encodeURIComponent(isTag(el, 'select') ? selectValue(el) : el.value));
|
||||
}
|
||||
}
|
||||
@@ -703,18 +703,14 @@ function selectClick(event, text, warning) {
|
||||
if (!event) {
|
||||
event = window.event;
|
||||
}
|
||||
if (event.keyCode == 27 && !event.shiftKey && !event.altKey && !isCtrl(event)) { // 27 - Esc
|
||||
if (event.keyCode === 27 && !event.shiftKey && !event.altKey && !isCtrl(event)) { // 27 - Esc
|
||||
inputBlur.apply(input);
|
||||
td.innerHTML = original;
|
||||
}
|
||||
};
|
||||
|
||||
let pos = event.rangeOffset;
|
||||
let value = (td.firstChild && td.firstChild.alt) || td.textContent || td.innerText;
|
||||
const tdStyle = window.getComputedStyle(td, null);
|
||||
|
||||
input.style.width = Math.max(td.clientWidth - parseFloat(tdStyle.paddingLeft) - parseFloat(tdStyle.paddingRight), 20) + 'px';
|
||||
|
||||
var pos = event.rangeOffset;
|
||||
var value = (td.firstChild && td.firstChild.alt) || td.textContent || td.innerText;
|
||||
input.style.width = Math.max(td.clientWidth - 14, 20) + 'px'; // 14 = 2 * (td.border + td.padding + input.border)
|
||||
if (text) {
|
||||
var rows = 1;
|
||||
value.replace(/\n/g, function () {
|
||||
@@ -737,7 +733,7 @@ function selectClick(event, text, warning) {
|
||||
td.appendChild(input);
|
||||
setupSubmitHighlight(td);
|
||||
input.focus();
|
||||
if (text == 2) { // long text
|
||||
if (text === 2) { // long text
|
||||
return ajax(location.href + '&' + encodeURIComponent(td.id) + '=', function (request) {
|
||||
if (request.responseText) {
|
||||
input.value = request.responseText;
|
||||
@@ -859,7 +855,7 @@ function findDefaultSubmit(el) {
|
||||
var inputs = qsa('input', el.form);
|
||||
for (var i = 0; i < inputs.length; i++) {
|
||||
var input = inputs[i];
|
||||
if (input.type == 'submit' && !input.style.zIndex) {
|
||||
if (input.type === 'submit' && !input.style.zIndex) {
|
||||
return input;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,7 @@ $name = $adminer->tableName($table_status);
|
||||
|
||||
page_header(($fields && is_view($table_status) ? $table_status['Engine'] == 'materialized view' ? lang('Materialized view') : lang('View') : lang('Table')) . ": " . ($name != "" ? $name : h($TABLE)), $error);
|
||||
|
||||
$rights = array();
|
||||
foreach ($fields as $key => $field) {
|
||||
$rights += $field["privileges"];
|
||||
}
|
||||
$adminer->selectLinks($table_status, (isset($rights["insert"]) || !support("table") ? "" : null));
|
||||
|
||||
$adminer->selectLinks($table_status);
|
||||
$comment = $table_status["Comment"];
|
||||
if ($comment != "") {
|
||||
echo "<p class='nowrap'>" . lang('Comment') . ": " . h($comment) . "\n";
|
||||
@@ -33,7 +28,7 @@ if (!is_view($table_status)) {
|
||||
}
|
||||
echo '<p class="links"><a href="' . h(ME) . 'indexes=' . urlencode($TABLE) . '">' . lang('Alter indexes') . "</a>\n";
|
||||
}
|
||||
|
||||
|
||||
if (fk_support($table_status)) {
|
||||
echo "<h3 id='foreign-keys'>" . lang('Foreign keys') . "</h3>\n";
|
||||
$foreign_keys = foreign_keys($TABLE);
|
||||
|
||||
24
bin/export.sh
Normal file
24
bin/export.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# Root directory.
|
||||
BASEDIR=$( cd `dirname $0`/.. ; pwd )
|
||||
cd "$BASEDIR"
|
||||
|
||||
php compile.php
|
||||
php compile.php en
|
||||
php compile.php de
|
||||
php compile.php cs
|
||||
php compile.php sk
|
||||
|
||||
php compile.php mysql
|
||||
php compile.php mysql en
|
||||
php compile.php mysql de
|
||||
php compile.php mysql cs
|
||||
php compile.php mysql sk
|
||||
|
||||
php compile.php editor
|
||||
php compile.php editor en
|
||||
php compile.php editor mysql
|
||||
php compile.php editor mysql en
|
||||
109
changes.txt
109
changes.txt
@@ -1,74 +1,53 @@
|
||||
Adminer 4.16.0 (released 2025-02-20):
|
||||
MySQL: Fix saving bit(64) values (bug #839)
|
||||
PostgreSQL: Preserve whitespace in EXPLAIN (bug #827)
|
||||
PostgreSQL: Support SSL
|
||||
PostgreSQL: Support altering auto_increment (bug #761)
|
||||
SQLite: Fix altering forign keys (bug #841)
|
||||
SQLite: Fix expressions in default values (bug #860)
|
||||
MS SQL: Foreign keys in non-default schema (bug #833)
|
||||
Oracle: Include tables granted by other user
|
||||
MongoDB: Execute commands against the selected DB
|
||||
Adminer 4.9.2 (released 2024-09-18):
|
||||
- Fix textarea height for single-line inputs (used typically for SQLite text field).
|
||||
- Fix undefined property in error message if driver does not support error number (e.g. PostgreSQL).
|
||||
- PostgreSQL: Fix search fields configuration (regression from 4.9).
|
||||
- PostgreSQL: Fix search condition for network address types, add macaddr8 type.
|
||||
- PostgreSQL: Fix exporting CREATE TABLE query with GENERATED default values.
|
||||
- PostgreSQL: Fix exporting CREATE TABLE query with sequence default value.
|
||||
- PostgreSQL: Allow to set connection's sslmode with AdminerLoginSsl plugin.
|
||||
- MySQL: Do not show 'empty' enum value in strict mode.
|
||||
- Editor: Fix searching in tables.
|
||||
- Function to retrieve driver name that can be used in plugins.
|
||||
|
||||
Adminer 4.15.0:
|
||||
Escape unknown field in select
|
||||
HTTP drivers: Don't allow path in server name
|
||||
HTTP drivers: Hide connection error message
|
||||
SimpleDB: Disable XML entity loader
|
||||
Adminer 4.9.1 (released 2024-09-09):
|
||||
- Compatibility with PHP 8.3.
|
||||
- Fix compiling jush external files.
|
||||
- Improved displaying of long table names in menu.
|
||||
- Replace deprecated <acronym> with <abbr>.
|
||||
- Add support for translations in plugins.
|
||||
- Add .editorconfig file.
|
||||
- MySQL: Add unix_timestamp to functions.
|
||||
- PostgreSQL: Show only accessible databases.
|
||||
- PostgreSQL: Make data length calculation more accurate.
|
||||
- PostgreSQL: Fix documentation link for SERIAL type.
|
||||
- PostgreSQL: Fix undefined properties on PHP 8.
|
||||
- Elasticsearch: Fix field selection.
|
||||
- AdminerEditForeign: Refactor and fix the plugin.
|
||||
- AdminerLoginOtp: Autocomplete hints for OTP input field, code refactoring.
|
||||
|
||||
Adminer 4.14.0:
|
||||
Use autofocus HTML attribute
|
||||
PostgreSQL: Fix initial value of exported autoincrement
|
||||
PostgreSQL: Fix renaming a database
|
||||
Adminer 4.9 (released 2024-08-19):
|
||||
- Validate server input in login form.
|
||||
- Validate connection to server in HTTP based drivers.
|
||||
- Move dependencies from submodules to Composer.
|
||||
- Update hydra and pepa-lintha-dark themes.
|
||||
- Elasticsearch 5: Make unusable driver usable again, move it to plugins.
|
||||
- Add new Elasticsearch 7 driver.
|
||||
- Set saving to file as a default export option.
|
||||
- Improve URL and email detection.
|
||||
- Fix AdminerVersionNoverify plugin blocking other plugins to modify HTML head.
|
||||
- Fix several bugs and security issues in AdminerFileUpload plugin.
|
||||
- Skip dump of generated columns.
|
||||
- Update composer.json.
|
||||
- Add script for exporting compiled adminer variants.
|
||||
|
||||
Adminer 4.12.0:
|
||||
Fix SQL query code direction if RTL language is used
|
||||
MariaDB: Add support for UUID data type
|
||||
MS SQL, MongoDB: Connect to localhost with default port if server is not specified
|
||||
MongoDB: Fix parsing WHERE condition from SQL query
|
||||
|
||||
Adminer 4.11.0:
|
||||
MySQL: Fix highlighting current table in menu on macOS
|
||||
MariaDB: Fix several links to documentation pages
|
||||
MS SQL: Prefix Unicode strings with 'N' so they are treated correctly
|
||||
|
||||
Adminer 4.10.0:
|
||||
Print username next to the logout button
|
||||
Do not display empty action links in main menu
|
||||
|
||||
Adminer 4.9.4:
|
||||
Unify displaying of 'New item' action based on privileges
|
||||
Firefox: Fix opening a database to the new browser's tab with Ctrl+click
|
||||
Editor: Fix array conversion to string (issue adminerneo#3).
|
||||
Editor: Fix building links with array parameters
|
||||
|
||||
Adminer 4.9.3:
|
||||
MySQL, PostgreSQL: Fix queries splitting and string constants
|
||||
MySQL: Fix where clause for JSON column
|
||||
MySQL: Do not include unchanged PARTITION BY definition into ALTER TABLE query
|
||||
MariaDB: Support current_timestamp()
|
||||
PostgreSQL: Fix editing record that contains a field with GENERATED ALWAYS default value
|
||||
|
||||
Adminer 4.9.2:
|
||||
PostgreSQL: Fix search fields configuration (regression from 4.9.0)
|
||||
PostgreSQL: Fix exporting CREATE TABLE query with GENERATED default values
|
||||
PostgreSQL: Fix exporting CREATE TABLE with sequence default value
|
||||
PostgreSQL: Fix search condition for network address types, add macaddr8 type
|
||||
|
||||
Adminer 4.9.1:
|
||||
Support PHP 8.3
|
||||
PostgreSQL: Show only accessible databases
|
||||
|
||||
Adminer 4.9.0:
|
||||
Validate connection to server in HTTP based drivers
|
||||
Elasticsearch 5: Make unusable driver usable again, move it to plugins
|
||||
Add new Elasticsearch 7 driver
|
||||
MySQL: Skip dump of generated columns
|
||||
|
||||
Adminer 4.8.2:
|
||||
Adminer 4.8.2 (released 2024-03-16):
|
||||
Support multi-line table comments
|
||||
MySQL: Use ST_SRID() instead of SRID() for MySQL 8 (PR #418)
|
||||
PostgreSQL: Don't reset table comments (regression from 4.2.0)
|
||||
PostgreSQL PDO: Allow editing rows identified by boolean column (PR #380)
|
||||
Update several translations: lv, bn, fr, it, nl, ru, cs, sk
|
||||
Allow responsive styles on larger devices
|
||||
|
||||
Adminer 4.8.1 (released 2021-05-14):
|
||||
Internet Explorer or PDO in Adminer 4.7.8-4.8.0: Fix XSS in doc_link (bug #797)
|
||||
@@ -493,7 +472,7 @@ Allow exporting views dependent on each other (bug #214)
|
||||
Fix resetting search (bug #318)
|
||||
Don't use LIMIT 1 if updating unique row (bug #320)
|
||||
Restrict editing rows without unique identifier to search results
|
||||
Display navigation below main content on mobile browsers
|
||||
Display navigation bellow main content on mobile browsers
|
||||
Get number of rows on export page asynchronously
|
||||
Respect 'whole result' even if some rows are checked (bug #339 since Adminer 3.7.0)
|
||||
MySQL: Optimize create table page and Editor navigation
|
||||
|
||||
34
compile.php
34
compile.php
@@ -1,8 +1,13 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
function adminer_errors($errno, $errstr) {
|
||||
return !!preg_match('~^(Trying to access array offset on value of type null|Undefined array key)~', $errstr);
|
||||
}
|
||||
|
||||
error_reporting(6135); // errors and warnings
|
||||
set_error_handler('adminer_errors', E_WARNING);
|
||||
include dirname(__FILE__) . "/adminer/include/version.inc.php";
|
||||
include dirname(__FILE__) . "/adminer/include/errors.inc.php";
|
||||
include dirname(__FILE__) . "/externals/JsShrink/jsShrink.php";
|
||||
include dirname(__FILE__) . "/vendor/vrana/jsshrink/jsShrink.php";
|
||||
|
||||
function add_apo_slashes($s) {
|
||||
return addcslashes($s, "\\'");
|
||||
@@ -191,7 +196,7 @@ function php_shrink($input) {
|
||||
$short_variables = array();
|
||||
$shortening = true;
|
||||
$tokens = token_get_all($input);
|
||||
|
||||
|
||||
// remove unnecessary { }
|
||||
//! change also `while () { if () {;} }` to `while () if () ;` but be careful about `if () { if () { } } else { }
|
||||
$shorten = 0;
|
||||
@@ -218,13 +223,13 @@ function php_shrink($input) {
|
||||
}
|
||||
}
|
||||
$tokens = array_values($tokens);
|
||||
|
||||
|
||||
foreach ($tokens as $i => $token) {
|
||||
if ($token[0] === T_VARIABLE && !isset($special_variables[$token[1]])) {
|
||||
$short_variables[$token[1]]++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
arsort($short_variables);
|
||||
$chars = implode(range('a', 'z')) . '_' . implode(range('A', 'Z'));
|
||||
// preserve variable names between versions if possible
|
||||
@@ -235,7 +240,7 @@ function php_shrink($input) {
|
||||
foreach (array_keys($short_variables) as $number => $key) {
|
||||
$short_variables[$key] = short_identifier($number, $chars); // could use also numbers and \x7f-\xff
|
||||
}
|
||||
|
||||
|
||||
$set = array_flip(preg_split('//', '!"#$%&\'()*+,-./:;<=>?@[]^`{|}'));
|
||||
$space = '';
|
||||
$output = '';
|
||||
@@ -413,7 +418,7 @@ if ($driver) {
|
||||
if (count($drivers) == 1) {
|
||||
$file = str_replace('<?php echo html_select("auth[driver]", $drivers, DRIVER) . "\n"; ?>', "<input type='hidden' name='auth[driver]' value='" . ($driver == "mysql" ? "server" : $driver) . "'>" . reset($drivers), $file);
|
||||
}
|
||||
$file = preg_replace('(;../externals/jush/modules/jush-(?!textarea\.|txt\.|js\.|' . preg_quote($driver == "mysql" ? "sql" : $driver) . '\.)[^.]+.js)', '', $file);
|
||||
$file = preg_replace('(;\.\./vendor/vrana/jush/modules/jush-(?!textarea\.|txt\.|js\.|' . preg_quote($driver == "mysql" ? "sql" : $driver) . '\.)[^.]+.js)', '', $file);
|
||||
$file = preg_replace_callback('~doc_link\(array\((.*)\)\)~sU', function ($match) use ($driver) {
|
||||
list(, $links) = $match;
|
||||
$links = preg_replace("~'(?!(" . ($driver == "mysql" ? "sql|mariadb" : $driver) . ")')[^']*' => [^,]*,?~", '', $links);
|
||||
@@ -422,8 +427,8 @@ if ($driver) {
|
||||
//! strip doc_link() definition
|
||||
}
|
||||
if ($project == "editor") {
|
||||
$file = preg_replace('~;.\.\/externals/jush/jush\.css~', '', $file);
|
||||
$file = preg_replace('~compile_file\(\'\.\./(externals/jush/modules/jush\.js|adminer/static/[^.]+\.gif)[^)]+\)~', "''", $file);
|
||||
$file = preg_replace('~;\.\./vendor/vrana/jush/jush\.css~', '', $file);
|
||||
$file = preg_replace('~compile_file\(\'\.\./(vendor/vrana/jush/modules/jush\.js|adminer/static/[^.]+\.gif)[^)]+\)~', "''", $file);
|
||||
}
|
||||
$file = preg_replace_callback("~lang\\('((?:[^\\\\']+|\\\\.)*)'([,)])~s", 'lang_ids', $file);
|
||||
$file = preg_replace_callback('~\b(include|require) "([^"]*\$LANG.inc.php)";~', 'put_file_lang', $file);
|
||||
@@ -435,17 +440,18 @@ if ($_SESSION["lang"]) {
|
||||
$file = str_replace('<?php echo $LANG; ?>', $_SESSION["lang"], $file);
|
||||
}
|
||||
$file = str_replace('<?php echo script_src("static/editing.js"); ?>' . "\n", "", $file);
|
||||
$file = preg_replace('~\s+echo script_src\("\.\./externals/jush/modules/jush-(textarea|txt|js|\$jush)\.js"\);~', '', $file);
|
||||
$file = str_replace('<link rel="stylesheet" type="text/css" href="../externals/jush/jush.css">' . "\n", "", $file);
|
||||
$file = preg_replace('~\s+echo script_src\("\.\./vendor/vrana/jush/modules/jush-(textarea|txt|js|\$jush)\.js"\);~', '', $file);
|
||||
$file = str_replace('<link rel="stylesheet" type="text/css" href="../vendor/vrana/jush/jush.css">' . "\n", "", $file);
|
||||
$file = preg_replace_callback("~compile_file\\('([^']+)'(?:, '([^']*)')?\\)~", 'compile_file', $file); // integrate static files
|
||||
$replace = 'preg_replace("~\\\\\\\\?.*~", "", ME) . "?file=\1&version=' . $VERSION . '"';
|
||||
$replace = 'preg_replace("~\\\\\\\\?.*~", "", ME) . "?file=\1&version=' . substr(md5(microtime()), 0, 8) . '"';
|
||||
$file = preg_replace('~\.\./adminer/static/(default\.css|favicon\.ico)~', '<?php echo h(' . $replace . '); ?>', $file);
|
||||
$file = preg_replace('~"\.\./adminer/static/(functions\.js)"~', $replace, $file);
|
||||
$file = preg_replace('~\.\./adminer/static/([^\'"]*)~', '" . h(' . $replace . ') . "', $file);
|
||||
$file = preg_replace('~"\.\./externals/jush/modules/(jush\.js)"~', $replace, $file);
|
||||
$file = preg_replace('~"\.\./vendor/vrana/jush/modules/(jush\.js)"~', $replace, $file);
|
||||
$file = preg_replace("~<\\?php\\s*\\?>\n?|\\?>\n?<\\?php~", '', $file);
|
||||
$file = php_shrink($file);
|
||||
|
||||
$filename = $project . (preg_match('~-dev$~', $VERSION) ? "" : "-$VERSION") . ($driver ? "-$driver" : "") . ($_SESSION["lang"] ? "-$_SESSION[lang]" : "") . ".php";
|
||||
@mkdir("temp/export", 0777, true);
|
||||
$filename = "temp/export/$project" . (preg_match('~-dev$~', $VERSION) ? "" : "-$VERSION") . ($driver ? "-$driver" : "") . ($_SESSION["lang"] ? "-$_SESSION[lang]" : "") . ".php";
|
||||
file_put_contents($filename, $file);
|
||||
echo "$filename created (" . strlen($file) . " B).\n";
|
||||
|
||||
@@ -25,7 +25,43 @@
|
||||
"Apache-2.0",
|
||||
"GPL-2.0-only"
|
||||
],
|
||||
"require": {
|
||||
"php": "5.6 - 8.3",
|
||||
"ext-pdo": "*",
|
||||
"ext-json": "*",
|
||||
"vrana/jush": "@dev",
|
||||
"vrana/jsshrink": "@dev"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-zlib": "*",
|
||||
"ext-suhosin": "*",
|
||||
"ext-mysqli": "*",
|
||||
"ext-mysql": "*",
|
||||
"ext-pgsql": "*",
|
||||
"ext-mongo": "*",
|
||||
"ext-sqlsrv": "*",
|
||||
"ext-mssql": "*",
|
||||
"ext-oci8": "*",
|
||||
"ext-interbase": "*",
|
||||
"ext-pdo_pgsql": "*",
|
||||
"ext-pdo_dblib": "*",
|
||||
"ext-pdo_sqlite": "*",
|
||||
"ext-pdo_oci": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-xdebug": "*"
|
||||
},
|
||||
"scripts": {
|
||||
"compile": "php compile.php"
|
||||
}
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/vrana/jush.git"
|
||||
},
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/vrana/jsshrink.git"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,8 +2,8 @@
|
||||
*{margin:0;padding:0}
|
||||
body{font:13px/18px Helvetica,Arial,sans-serif;background:#fff;color:#333}
|
||||
/* generic */
|
||||
a{color:#06c;text-decoration:none;border-bottom:1px dotted}
|
||||
a:hover,a:link:hover{border-bottom:1px solid #06c;background:#06c;color:#fff}
|
||||
a,a:visited{color:#06c;text-decoration:none;border-bottom:1px dotted}
|
||||
a:hover{border-bottom:1px solid #06c;background:#06c;color:#fff}
|
||||
p{padding-bottom:4px;margin-bottom:4px}
|
||||
h1{font-size:18px;font-weight:bold;padding-bottom:0px;height:40px;padding:0 0 8px 0;color:#666;border:0}
|
||||
h2{font:32px Georgia,serif;padding:10px 0 8px;margin:0;background:transparent;border:0;color:#333}
|
||||
@@ -31,7 +31,6 @@ thead th,thead td{white-space:nowrap;font-weight:bold;background:#ddd;border-col
|
||||
th:first-child,td:first-child{border-color:transparent;white-space:nowrap}
|
||||
td[align=right]{text-align:right}
|
||||
table code{font-size:13px;line-height:18px}
|
||||
.footer fieldset{float:none;}
|
||||
.hidden{display:none}
|
||||
.error,.message{padding:0;background:transparent;font-weight:bold}
|
||||
.error{color:#c00}
|
||||
@@ -47,12 +46,11 @@ border:5px solid #ccc;margin:0}
|
||||
#menu a:hover{background:#333;color:#fff;border-color:#333}
|
||||
#menu a.h1,#menu a.h1:hover{display:block;height:0;width:175px;padding:40px 0 0 0;overflow:hidden;float:left;border:0;margin:0;
|
||||
outline:0;background:url(//www.bradezone.com/random/adminer_logo.gif) no-repeat;line-height:32px}
|
||||
#menu p,#logins,#tables{border:0;padding:0 0 4px 0;margin:0 0 4px 0}
|
||||
#menu p,#logins,#tables{white-space:nowrap;border:0;padding:0 0 4px 0;margin:0 0 4px 0}
|
||||
#breadcrumb{background:#333;color:#fff;position:fixed;top:0;left:320px;line-height:40px;padding:0;z-index:1;margin:0}
|
||||
#breadcrumb a{color:#ff9}
|
||||
#breadcrumb a:hover{background:transparent;color:#ff9;border-color:#ff9}
|
||||
#schema .table{padding:4px 8px;background:#f3f3f3}
|
||||
.tables-filter{padding:0;margin:10px 0;}
|
||||
/* IE hacks */
|
||||
*+html th:first-child,*+html td:first-child{border-color:inherit;white-space:inherit}
|
||||
* html #lang,* html #menu,* html #breadcrumb{position:absolute}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/**
|
||||
* Alternative style for Adminer by Frank Bültge
|
||||
*
|
||||
*
|
||||
* @link http://bueltge.de/
|
||||
* @version 02/18/2014
|
||||
*/
|
||||
@@ -31,14 +31,14 @@ p {
|
||||
margin: 0.8em 20px 0 5px
|
||||
}
|
||||
|
||||
a {
|
||||
a {
|
||||
color: #21759B;
|
||||
background: none !important;
|
||||
}
|
||||
a:visited {
|
||||
a:visited {
|
||||
color: #21759B;
|
||||
}
|
||||
a:hover, a:hover {
|
||||
a:hover, a:hover {
|
||||
text-decoration: none;
|
||||
color: #d54e21;
|
||||
}
|
||||
@@ -55,9 +55,7 @@ a.active, a.active + a {
|
||||
text-decoration: none;
|
||||
font-weight: 700;
|
||||
}
|
||||
.icon {
|
||||
background-color: #21759B;
|
||||
}
|
||||
|
||||
form {
|
||||
margin: 0;
|
||||
padding: 0 0 0 5px;
|
||||
@@ -104,7 +102,7 @@ display: table-header-group;
|
||||
vertical-align: middle;
|
||||
border-color: inherit;
|
||||
}
|
||||
thead td, thead th {
|
||||
thead td, thead th {
|
||||
background-color: #DFDFDF;
|
||||
border: none;
|
||||
border-bottom: 1px #BBB solid;
|
||||
@@ -119,18 +117,12 @@ tr:hover td, tr:hover th {
|
||||
background-color: #BCD;
|
||||
}
|
||||
|
||||
.footer {
|
||||
border-image:linear-gradient(rgba(249, 249, 249, .2), #F9F9F9) 100% 0;
|
||||
}
|
||||
.footer > div {
|
||||
background-color: #F9F9F9;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
display: inline;
|
||||
vertical-align: top;
|
||||
padding: 2px 12px;
|
||||
margin: 25px 12px 12px 0;
|
||||
fieldset {
|
||||
display: inline;
|
||||
vertical-align: top;
|
||||
padding: 2px 12px;
|
||||
margin: 25px 12px 12px 0;
|
||||
border: none;
|
||||
background-color: #F1F1F1;
|
||||
border: 1px solid #E3E3E3;
|
||||
@@ -144,7 +136,7 @@ fieldset {
|
||||
padding-top: 14px;
|
||||
}
|
||||
legend {
|
||||
font-weight: 900;
|
||||
font-weight: 900;
|
||||
color: #000;
|
||||
top: -1.666em;
|
||||
left: -1em;
|
||||
@@ -154,7 +146,7 @@ input {
|
||||
padding: 2px 5px 1px 5px;
|
||||
}
|
||||
input[name='limit'], input[name='length'] {
|
||||
width: 3em;
|
||||
width: 3em;
|
||||
text-align: right;
|
||||
}
|
||||
input[name='text_length'] {
|
||||
@@ -211,7 +203,7 @@ input[type=button], input[type=submit] {
|
||||
background-image: -o-linear-gradient(top, #fff, #eee);
|
||||
background-image: linear-gradient(to bottom, #fff, #eee);
|
||||
border-color: #ccc;
|
||||
-webkit-box-shadow: inset 0 0 1px 1px rgba(255,255,255, 0.9);
|
||||
-webkit-box-shadow: inset 0 0 1px 1px rgba(255,255,255, 0.9);
|
||||
box-shadow: inset 0 0 1px 1px rgba(255,255,255, 0.9);
|
||||
color: #464646;
|
||||
text-shadow: 1px 1px 0 #fff;
|
||||
@@ -225,7 +217,7 @@ input[type=button]:focus, input[type=submit]:focus {
|
||||
background-image: -o-linear-gradient(top, #fff, #eee);
|
||||
background-image: linear-gradient(to bottom, #fff, #eee);
|
||||
border-color: #bbb;
|
||||
-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,.1);
|
||||
-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,.1);
|
||||
box-shadow: 0px 1px 1px rgba(0,0,0,.1);
|
||||
color: #000;
|
||||
}
|
||||
@@ -238,7 +230,7 @@ input[type=button]:active, input[type=submit]:active {
|
||||
background-image: linear-gradient(to bottom, #eee, #f9f9f9);
|
||||
border-color: #999 #ddd #ddd #999;
|
||||
color: #555;
|
||||
-webkit-box-shadow: inset 1px 1px 0 rgba(50,50,50,0.1);
|
||||
-webkit-box-shadow: inset 1px 1px 0 rgba(50,50,50,0.1);
|
||||
box-shadow: inset 1px 1px 0 rgba(50,50,50,0.1);
|
||||
}
|
||||
input[type=button]:focus, input[type=submit]:focus {
|
||||
@@ -263,9 +255,9 @@ input[name='Auto_increment'] { /* !!! */
|
||||
width: 6em;
|
||||
}
|
||||
|
||||
img {
|
||||
vertical-align: middle;
|
||||
margin: 0;
|
||||
img {
|
||||
vertical-align: middle;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.js .column {
|
||||
@@ -273,25 +265,25 @@ position: relative;
|
||||
background: none;
|
||||
padding: 0;
|
||||
}
|
||||
.error {
|
||||
padding: 8px;
|
||||
color: red;
|
||||
.error {
|
||||
padding: 8px;
|
||||
color: red;
|
||||
background-color: #FEE;
|
||||
}
|
||||
.message {
|
||||
padding: 8px;
|
||||
.message {
|
||||
padding: 8px;
|
||||
background-color: #DDD;
|
||||
}
|
||||
.char {
|
||||
.char {
|
||||
color: #070;
|
||||
}
|
||||
.date {
|
||||
.date {
|
||||
color: #707;
|
||||
}
|
||||
.enum {
|
||||
.enum {
|
||||
color: #077;
|
||||
}
|
||||
.binary {
|
||||
.binary {
|
||||
color: red;
|
||||
}
|
||||
.jush-sql {
|
||||
@@ -303,20 +295,20 @@ font-size: 11px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 2px 0 0 270px;
|
||||
#content {
|
||||
margin: 2px 0 0 270px;
|
||||
padding: 10px 20px 20px 0;
|
||||
}
|
||||
#lang {
|
||||
font-size:10px;
|
||||
height: 23px;
|
||||
width: 255px;
|
||||
display: block;
|
||||
padding: 1px 0;
|
||||
position: absolute;
|
||||
display: block;
|
||||
padding: 1px 0;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
background-color: #f1f1f1;
|
||||
border: 1px solid #E3E3E3;
|
||||
line-height: 1.25em;
|
||||
@@ -324,43 +316,43 @@ line-height: 1.25em;
|
||||
#lang select {
|
||||
font-size: 10px;
|
||||
}
|
||||
#breadcrumb {
|
||||
margin: 0;
|
||||
#breadcrumb {
|
||||
margin: 0;
|
||||
height: 21px;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 270px;
|
||||
background-color: #f1f1f1;
|
||||
border: 1px solid #E3E3E3;
|
||||
padding: 2px 12px;
|
||||
line-height: 1.25em }
|
||||
#menu {
|
||||
position: absolute;
|
||||
#menu {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
top: 28px;
|
||||
left: 0;
|
||||
width: 255px;
|
||||
top: 28px;
|
||||
left: 0;
|
||||
width: 255px;
|
||||
background-color: #f1f1f1;
|
||||
border: 1px solid #E3E3E3;
|
||||
}
|
||||
#menu form {
|
||||
#menu form {
|
||||
margin: 0;
|
||||
}
|
||||
#menu p, #logins, #tables, .tables-filter {
|
||||
#menu p, #logins, #tables {
|
||||
padding-left: 8px;
|
||||
border-bottom: none;
|
||||
}
|
||||
#dbs {
|
||||
padding: 0 !important;
|
||||
}
|
||||
#menu form p {
|
||||
padding-left: 0;
|
||||
text-align: left;
|
||||
}
|
||||
#dbs {
|
||||
border-bottom: none !important;
|
||||
padding-left: 3px !important;
|
||||
}
|
||||
h1 .h1:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
h1, h2 {
|
||||
font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
|
||||
margin: 0;
|
||||
@@ -379,18 +371,18 @@ h3 {
|
||||
font: normal normal normal 18px/22px Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
|
||||
margin: 20px 0 0 5px;
|
||||
}
|
||||
#schema {
|
||||
#schema {
|
||||
margin: 1.5em 0 0 220px;
|
||||
position: relative;
|
||||
}
|
||||
#schema .table {
|
||||
#schema .table {
|
||||
border: 1px solid #E3E3E3;
|
||||
background-color: #F1F1F1;
|
||||
padding: 0 2px;
|
||||
cursor: move;
|
||||
padding: 0 2px;
|
||||
cursor: move;
|
||||
position: absolute;
|
||||
}
|
||||
#schema .references {
|
||||
#schema .references {
|
||||
position: absolute;
|
||||
}
|
||||
.js .hidden {
|
||||
@@ -433,4 +425,4 @@ border-bottom-left-radius: 3px;
|
||||
-khtml-border-top-right-radius: 3px;
|
||||
-webkit-border-top-right-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
}
|
||||
}
|
||||
272
designs/cvicebni-ubor/adminer.css
Normal file
272
designs/cvicebni-ubor/adminer.css
Normal file
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
* Theme by Douglas Damasio [http://github.com/douglasdamasio]
|
||||
* Based on Pepa Linha
|
||||
* Color syntax inspired by Dracula Theme [https://draculatheme.com/]
|
||||
@@ -28,7 +28,7 @@
|
||||
height: 100%;
|
||||
background: var(--color-darkBackground);
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
font-family: 'Source Sans Pro', sans-serif;
|
||||
}
|
||||
@@ -36,14 +36,14 @@
|
||||
div {
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: none;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
|
||||
h2 {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -57,12 +57,12 @@
|
||||
padding-bottom: 6px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
|
||||
.rtl h2 {
|
||||
margin: 0;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
|
||||
h3 {
|
||||
font-size: 22px;
|
||||
margin: 0 0 10px;
|
||||
@@ -72,70 +72,66 @@
|
||||
color: var(--color-darkGreen);
|
||||
|
||||
}
|
||||
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
margin-bottom: 15px;
|
||||
align-items: center;
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
color:var(--color-darkPink);
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
|
||||
a:visited {
|
||||
color: var(--color-darkPurple);
|
||||
}
|
||||
|
||||
|
||||
a:link:hover,
|
||||
a:visited:hover {
|
||||
color: var(--color-darkPink);
|
||||
text-decoration:underline;
|
||||
text-decoration:underline;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
a[href*=charsets] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
table {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
|
||||
th, td {
|
||||
border: 0;
|
||||
padding: 6px;
|
||||
color: var(--color-darkOrange);
|
||||
}
|
||||
|
||||
|
||||
th {
|
||||
background: none;
|
||||
color: var(--color-darkCyan);
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
|
||||
tbody tr:hover td,
|
||||
tbody tr:hover th {
|
||||
background: var(--color-darkCurrentLine);
|
||||
}
|
||||
|
||||
|
||||
table:not(.checkable) th {
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
#edit-fields th {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
|
||||
thead td,
|
||||
thead th {
|
||||
background: var(--color-darkComment);
|
||||
}
|
||||
|
||||
|
||||
thead td,
|
||||
thead td a,
|
||||
thead td a:link:hover,
|
||||
@@ -148,38 +144,37 @@
|
||||
thead th a:visited:hover {
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
table.checkable,
|
||||
p.links + table,
|
||||
pre + table,
|
||||
#edit-fields,
|
||||
p + table,
|
||||
h3 + table,
|
||||
.scrollable table{
|
||||
h3 + table {
|
||||
border: 1px solid var(--color-darkCurrentLine);
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
|
||||
table.checkable tbody tr:hover td,
|
||||
table.checkable tbody tr:hover th {
|
||||
background: var(--color-darkCurrentLine);
|
||||
}
|
||||
|
||||
|
||||
.js .checkable .checked td,
|
||||
.js .checkable .checked th {
|
||||
background: var(--color-darkDraculaSite);
|
||||
}
|
||||
|
||||
|
||||
.js .checkable thead .checked td,
|
||||
.js .checkable thead .checked th {
|
||||
background: var(--color-darkPurple);
|
||||
}
|
||||
|
||||
|
||||
.odd th,
|
||||
.odd td {
|
||||
background: var(--color-darkDraculaVSCode);
|
||||
}
|
||||
|
||||
|
||||
fieldset {
|
||||
display: inline-block;
|
||||
padding: 15px;
|
||||
@@ -188,21 +183,21 @@
|
||||
border: 0;
|
||||
background: var(--color-darkBackground);
|
||||
}
|
||||
|
||||
|
||||
fieldset select {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
|
||||
fieldset input[type=button],
|
||||
fieldset input[type=submit],
|
||||
fieldset p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
|
||||
fieldset div p {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
|
||||
legend {
|
||||
display: inline-block;
|
||||
padding: 6px 15px;
|
||||
@@ -211,17 +206,17 @@
|
||||
font-family: 'Source Sans Pro', sans-serif;
|
||||
color: var(--color-darkOrange);
|
||||
}
|
||||
|
||||
|
||||
legend a,
|
||||
legend a:link:hover {
|
||||
color: var(--color-darkOrange);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
code {
|
||||
background: none;
|
||||
}
|
||||
|
||||
|
||||
p code,
|
||||
pre code,
|
||||
pre[contenteditable=true] {
|
||||
@@ -230,7 +225,7 @@
|
||||
font-size: 17px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
|
||||
p code + a,
|
||||
p code + a:link:hover,
|
||||
p code + a:visited:hover {
|
||||
@@ -242,7 +237,7 @@
|
||||
text-decoration: underline;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
|
||||
#content {
|
||||
margin: 0;
|
||||
margin-left: 400px;
|
||||
@@ -250,12 +245,12 @@
|
||||
padding: 0;
|
||||
padding-top: 50px;
|
||||
}
|
||||
|
||||
|
||||
#content > p {
|
||||
margin-bottom: 15px;
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
.rtl #content {
|
||||
margin: 0;
|
||||
margin-left: 54px;
|
||||
@@ -263,7 +258,7 @@
|
||||
padding: 0;
|
||||
padding-top: 50px;
|
||||
}
|
||||
|
||||
|
||||
#menu {
|
||||
width: 347px;
|
||||
border-right: 1px solid var(--color-darkBackground);
|
||||
@@ -277,44 +272,51 @@
|
||||
padding: 0 15px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
#menu h1 {
|
||||
background: none left top no-repeat;
|
||||
/* background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAAyCAIAAABgVkRrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTA0RDI5NkM5QkRGMTFFMzg4ODNEQjEzNjY5NzJEMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTA0RDI5NkQ5QkRGMTFFMzg4ODNEQjEzNjY5NzJEMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDREMjk2QTlCREYxMUUzODg4M0RCMTM2Njk3MkQwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDREMjk2QjlCREYxMUUzODg4M0RCMTM2Njk3MkQwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnG4emkAAASXSURBVHja7Fk9aNtAFL6EDKKUoqGDySRKB1FC8dDBdCgeOmQoIUMG0yGE0EFT8dDBUwidPJQQQgcNpYROGjKI0sFDB9GhaMhgSgcPpWgqHjqYYsINJfQ7PfV0tmX9JI4Sgx+HI8f26bt3733fe6elIf/LbqwdHbJWS1wYBrMstrXJVg36ZJnNhQWBWMB9k+215gq3tDeHBH3pRseJtC8ee2ezEzd62+ncDH/DhS+ttC88qbMPDntaj952uyvXD3q7ETvyyE77pq5HFz9614r7V8C2GnBezBgp9tGNl3ffzIjvwZ9B//dA7Mz3YPLTyl29UhE+MI0KW9YKh2yjwQZichEAjsNu6WlUqNqkvwHUO+0BJeD2gn4hJFXTwAIw6jUzYxlwHkCTvWqy1+0Ct7FtsPh/3Ofc9brOJ5+8ezHr9gKMcGpWf2SK8bhKk48sA1kIOiODmzc2c8U0DLrzwhI5ypjA3fsZtNrOgPP4y5pmGJXamqHd1kQMTIkENYpwEfQHEW7GsGkYZse393ewb+Y9IwE0PJcOejQ2pFgK3Li3BI14hZM269XKaiXPVPodHUOs6l48o/+t5wO038OcQGztHzd31uPfUEgQdCQi3JkfumLLHa9LoK2tunPQtJ6v5wQ9zWoPzebupms34QKxmZNJAugIDzJE+V4rbTrDSMYtr3AD+H5WFIfZ0lIFPu50otiF7zfW2dlgquKccTFWRxYQ8wlFJOVTdc2gAChq/V99vxdgD7O5CIBO/Yi/P3vsUY2dOOxBdSrzIBm2dxJwq+hlaiId9dua5OlEv/IhH0vKvAYXfvUjvUTFB2STeinJu91Oxo3Eh58onwRXcB7zWkGj/Maa9203+9soPIyWEKBEkQdc8veo+sS4wQkYzV1Bi+A1Ee5DnhO33BxsSw1/wszGPHkXmqI7yIQzPvnvhPqEFjAWtSq7j7n2YplwSctVV8F/FXazbN76nQXu68btfe3Odmqwahl5Ca6tel0UVdnVc6pRBX/JkrgYn0RCY0cdAMhYvGYxHbEklbJ++FoqD8LTUiwTlZLEha55WKOmSybWTCXD1eJG8dnc4XAYqmdgmoRFyp/ZqqHbgMiD8qGXZeAOs1RD9YyhBgBVTgL3cMTHwKd2xyUL50qmTI5p/oK/F7jnEjeycLZTFz02SrKlaSPGbe0fOx+9mbTGcMHhe/fwuFMGn4Dy7BMPA3oBGkZrbIDgcp9JgK37YYtZjmSuqApH9yPRcTp+TM939THOpkaYroMguRuSE14tbuegif11vS58poYm7i1vn6fdxF6hMoNk4leIvTJ0B1FhPQ/PxM45eZ2HGjkY8jHXqptghGJJqqmKVHn1oCr4k93xgr8XuOcZ9zmf7dQym68Et6QFcFaBk7EsQ5fdfuteHW7xPM3asyVh05EkxFJITMHuGDUCukxwvOz3YI31mtWoX7TRXkrDjQhBLeFOHBtQQ6n/f8TDlAd/6mNBP7xO7Ecbz2qNjfrl6qoU3Mr5Qa4j9yyLHqZd7jwjL241QQFdPiJTdT7RsBuapslzi5mqVSHcKXYetcZlSelU3P8EGADW25uhkIE0mQAAAABJRU5ErkJggg==); */
|
||||
background-image: url();
|
||||
line-height: 50px;
|
||||
margin: 10px 0;
|
||||
padding-left: 50px;
|
||||
padding-top: 9px;
|
||||
/* text-transform: lowercase; */
|
||||
margin: 25px 0 10px 16px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#menu h1 a {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
|
||||
#menu h1 .version {
|
||||
color: var(--color-darkPurple);
|
||||
}
|
||||
|
||||
|
||||
#menu a {
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
#menu p, #tables {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
#menu #dbs {
|
||||
background: var(--color-darkDraculaVSCode);
|
||||
padding: 10px 15px 15px;
|
||||
padding: 0 15px 15px;
|
||||
border: 1px solid var(--color-darkForeground);
|
||||
border-bottom: 0;
|
||||
box-sizing: border-box;
|
||||
color: var(--color-darkCyan);
|
||||
}
|
||||
|
||||
|
||||
#menu #dbs select {
|
||||
outline: 0;
|
||||
border-color: var(--color-darkComment);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
#menu p.links {
|
||||
margin: 0 0 15px;
|
||||
border: 1px solid var(--color-darkForeground);
|
||||
@@ -324,55 +326,50 @@
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
|
||||
#menu p.links a {
|
||||
padding: 8px;
|
||||
margin: 0;
|
||||
display: table-cell;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
|
||||
#menu p.links a:hover {
|
||||
color: var(--color-darkPink);
|
||||
}
|
||||
|
||||
|
||||
#menu p.links a.active {
|
||||
font-weight: normal;
|
||||
background: var(--color-darkCurrentLine);
|
||||
color: var(--color-darkYellow);
|
||||
}
|
||||
|
||||
.tables-filter {
|
||||
margin-top: 32px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
#content p.links {
|
||||
margin: -10px 0 15px;
|
||||
}
|
||||
|
||||
|
||||
#content p.links a {
|
||||
padding: 8px;
|
||||
margin: 0;
|
||||
display: table-cell;
|
||||
border: 1px solid var(--color-darkBackground);
|
||||
}
|
||||
|
||||
|
||||
#content p.links a,
|
||||
#content p.links a:visited,
|
||||
#content p.links a:hover {
|
||||
color: var(--color-darkCyan);
|
||||
}
|
||||
|
||||
|
||||
#content p.links a.active {
|
||||
font-weight: normal;
|
||||
border: 1px solid var(--color-darkTitleSite);
|
||||
background: var(--color-darkCurrentLine);
|
||||
}
|
||||
|
||||
|
||||
#tables {
|
||||
max-height: 100%;
|
||||
margin: 15px -15px 32px !important;
|
||||
margin: 32px -15px !important;
|
||||
position: absolute;
|
||||
left: 15px;
|
||||
right: 15px;
|
||||
@@ -381,33 +378,33 @@
|
||||
overflow: hidden !important;
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
|
||||
|
||||
.rtl #tables {
|
||||
overflow: hidden !important;
|
||||
overflow-y: auto !important;
|
||||
}
|
||||
|
||||
|
||||
#tables a {
|
||||
float: right;
|
||||
padding: 6px 15px;
|
||||
}
|
||||
|
||||
|
||||
.rtl #tables a {
|
||||
float: none;
|
||||
}
|
||||
|
||||
|
||||
#tables .structure, #tables .view {
|
||||
float: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.rtl #tables a:first-child,
|
||||
.rtl #tables br + a {
|
||||
float: left;
|
||||
display: block;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
|
||||
#tables a:hover,
|
||||
#tables a:hover + a,
|
||||
#tables a.active,
|
||||
@@ -419,15 +416,15 @@
|
||||
#tables br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.js .column {
|
||||
background: var(--color-darkDraculaVSCode);
|
||||
}
|
||||
|
||||
|
||||
.js .checked .column {
|
||||
background: var(--color-darkDraculaVSCode);
|
||||
}
|
||||
|
||||
|
||||
.pages {
|
||||
left: 400px;
|
||||
background: var(--color-darkCyan);
|
||||
@@ -437,7 +434,7 @@
|
||||
display: inline-block;
|
||||
position: static;
|
||||
}
|
||||
|
||||
|
||||
.pages a,
|
||||
.pages a:link,
|
||||
.pages a:link:hover,
|
||||
@@ -446,7 +443,7 @@
|
||||
color: var(--color-darkBackground);
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
|
||||
#breadcrumb {
|
||||
margin: 0;
|
||||
left: 400px;
|
||||
@@ -455,40 +452,36 @@
|
||||
padding-top: 25px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
|
||||
#breadcrumb a {
|
||||
color: var(--color-darkForeground);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
#breadcrumb,
|
||||
#breadcrumb a:hover {
|
||||
color: var(--color-darkTitleSite);
|
||||
}
|
||||
|
||||
|
||||
.rtl #breadcrumb {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-top: 25px;
|
||||
right: 400px;
|
||||
}
|
||||
|
||||
|
||||
.logout,
|
||||
.rtl .logout {
|
||||
top: 20px;
|
||||
top: 30px;
|
||||
right: 54px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
.rtl .logout {
|
||||
right: auto;
|
||||
left: 54px;
|
||||
}
|
||||
|
||||
#logout {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
|
||||
input:not([type]),
|
||||
input[type="color"],
|
||||
input[type="email"],
|
||||
@@ -505,11 +498,7 @@
|
||||
box-sizing: border-box;
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
input::placeholder {
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
table:not(#table) input:not([type]),
|
||||
table:not(#table) input[type="color"],
|
||||
table:not(#table) input[type="email"],
|
||||
@@ -521,7 +510,7 @@ input::placeholder {
|
||||
table:not(#table) input[type="search"] {
|
||||
min-width: 280px;
|
||||
}
|
||||
|
||||
|
||||
input[type=submit],
|
||||
input[type=button] {
|
||||
border: 0;
|
||||
@@ -537,14 +526,14 @@ input::placeholder {
|
||||
border-radius: 5px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
|
||||
input[type=submit][disabled],
|
||||
input[type=button][disabled] {
|
||||
background: var(--color-darkTitleSite) !important;
|
||||
color: var(--color-darkBackground);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
|
||||
input[type=submit]:hover,
|
||||
input[type=button]:hover,
|
||||
input[type=submit]:focus,
|
||||
@@ -552,17 +541,17 @@ input::placeholder {
|
||||
background: var(--color-darkGreen);
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
|
||||
.logout input[type=submit] {
|
||||
background: var(--color-darkRed);
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
.logout input[type=submit]:hover {
|
||||
background: var(--color-darkRed);
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
|
||||
input.default,
|
||||
input.default {
|
||||
box-shadow: none;
|
||||
@@ -570,22 +559,22 @@ input::placeholder {
|
||||
color: var(--color-darkDraculaVSCode);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
select {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 6px;
|
||||
padding: 6px 0;
|
||||
border: 1px solid var(--color-darkCurrentLine);
|
||||
background-color: var(--color-darkBackground);
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
margin: 18px;
|
||||
color: var(--color-darkOrange);
|
||||
}
|
||||
|
||||
|
||||
.error,
|
||||
.message {
|
||||
margin: 0;
|
||||
@@ -593,23 +582,23 @@ input::placeholder {
|
||||
background: var(--color-darkCurrentLine);
|
||||
color: var(--color-darkRed);
|
||||
}
|
||||
|
||||
|
||||
#logins a,
|
||||
#tables a,
|
||||
#tables span {
|
||||
background: none;
|
||||
}
|
||||
|
||||
|
||||
#form > p {
|
||||
margin-bottom: 15px;
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#schema .table {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
|
||||
#schema .table a {
|
||||
display: block;
|
||||
margin: -6px;
|
||||
@@ -618,20 +607,20 @@ input::placeholder {
|
||||
color: var(--color-darkBackground);
|
||||
background: var(--color-darkPurple);
|
||||
}
|
||||
|
||||
|
||||
#schema .table br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
#schema .table span {
|
||||
display: block;
|
||||
margin-bottom: 1px solid var(--color-darkDraculaVSCode);
|
||||
}
|
||||
|
||||
|
||||
#lang {
|
||||
position: fixed;
|
||||
top: 30px;
|
||||
right: calc(100% + 8px);
|
||||
top: 55px;
|
||||
right: 100%;
|
||||
z-index: 10;
|
||||
margin-right: -340px;
|
||||
line-height: normal;
|
||||
@@ -639,7 +628,7 @@ input::placeholder {
|
||||
left: auto;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
|
||||
#lang select {
|
||||
font-size: 12px;
|
||||
padding: 0;
|
||||
@@ -652,26 +641,26 @@ input::placeholder {
|
||||
cursor: pointer;
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
|
||||
#lang select option {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
|
||||
.rtl #lang {
|
||||
margin-right: 0;
|
||||
left: 100%;
|
||||
margin-left: -261px;
|
||||
right: auto;
|
||||
}
|
||||
|
||||
|
||||
.jush {
|
||||
color: var(--color-darkForeground);
|
||||
}
|
||||
|
||||
|
||||
.jush a {
|
||||
color: var(--color-darkPurple);
|
||||
}
|
||||
|
||||
|
||||
.jush-sql a,
|
||||
.jush-sql_code a,
|
||||
.jush-sqlite a,
|
||||
@@ -681,7 +670,7 @@ input::placeholder {
|
||||
.jush-simpledb a {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
|
||||
.jush-bac,
|
||||
.jush-php_bac,
|
||||
.jush-bra,
|
||||
@@ -689,7 +678,7 @@ input::placeholder {
|
||||
.jush-sqlite_quo {
|
||||
color: var(--color-darkYellow);
|
||||
}
|
||||
|
||||
|
||||
.jush-php_quo,
|
||||
.jush-quo,
|
||||
.jush-quo_one,
|
||||
@@ -701,21 +690,21 @@ input::placeholder {
|
||||
.jush-sql_eot {
|
||||
color: var(--color-darkOrange);
|
||||
}
|
||||
|
||||
|
||||
.jush-num,
|
||||
.jush-clr {
|
||||
color: var(--color-darkPurple);
|
||||
}
|
||||
|
||||
|
||||
@media print {
|
||||
.logout {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
#breadcrumb {
|
||||
position: static;
|
||||
}
|
||||
|
||||
|
||||
#content {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@@ -225,8 +225,8 @@ h1{
|
||||
}
|
||||
|
||||
h2{
|
||||
font-size: 24px;
|
||||
margin: 0;
|
||||
font-size: 24px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-left: 50px;
|
||||
border-bottom: 1px solid #333;
|
||||
@@ -442,13 +442,6 @@ td textarea
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
th input::placeholder,
|
||||
td input::placeholder
|
||||
{
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
th input:hover,
|
||||
th select:hover,
|
||||
td input:hover,
|
||||
@@ -509,7 +502,7 @@ input[type='radio']{
|
||||
height: 18px;
|
||||
vertical-align: middle;
|
||||
margin-left: 8px;
|
||||
margin-right: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* checkbox */
|
||||
@@ -664,14 +657,6 @@ legend{
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.footer {
|
||||
border-image: linear-gradient(rgba(0, 0, 0, .2), #000) 100% 0;
|
||||
}
|
||||
|
||||
.footer > div{
|
||||
background: #000;
|
||||
}
|
||||
|
||||
/* menu
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
@@ -707,6 +692,12 @@ legend{
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
/* db select */
|
||||
#dbs select{
|
||||
width: 228px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
/* links */
|
||||
#menu .links{
|
||||
padding-top: 0;
|
||||
@@ -994,11 +985,6 @@ code.jush-sql ~ a:first-of-type::before{
|
||||
/* logout form
|
||||
----------------------------------------------------------------------- */
|
||||
|
||||
.logout {
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
#logout {
|
||||
margin-right: 0;
|
||||
margin-left: 10px;
|
||||
body > form{
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
@@ -196,7 +196,7 @@ html>/**/body #content table a[id|="Rows"] { /* Select data (Rows) */
|
||||
margin-right: 5px;
|
||||
}
|
||||
/* Edit,modify row (pen icon) */
|
||||
html>/**/body #content form table thead>tr>td a[href$="&modify=1"],
|
||||
html>/**/body #content form table thead>tr>td a[href$="&modify=1"],
|
||||
html>/**/body #content form table a[href*="&edit="][href*="&where"] {
|
||||
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2lpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wUmlnaHRzPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvcmlnaHRzLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcFJpZ2h0czpNYXJrZWQ9IkZhbHNlIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwNEVCNDY0MDM4NzExRTFBREUyQ0JDMzAwQUI1NjI2IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwNEVCNDYzMDM4NzExRTFBREUyQ0JDMzAwQUI1NjI2IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzMgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ1dWlkOkFDMUYyRTgzMzI0QURGMTFBQUI4QzUzOTBEODVCNUIzIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOkM5RDM0OTY2NEEzQ0REMTFCMDhBQkJCQ0ZGMTcyMTU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+MT7FiQAAAiZJREFUeNqMk1FIU1EYx/9nO3e+NranKIw2ErM9SQQXxCKMRdFDCWEaNIuIetseQiIKG/jQQ4H0kkQxdLRaYiijtdWwljjKjQlNRQPHEhWUjca9eb3bPd2tFTdrrgMf53x8/98533e+cwhqDFsDQccpILHYXvbv+f1NBcD5DfB8BcZpLfDAvp9+YrE81c+azc6jLlf3RE/PLgWgtBaoGVZZltv4dLpbcjph6+w8Fhgc3CD/AQIMhzOr5osOV7orlUrBaDTC29gY2L25eZPurwfOtAIHW6rUosKyjOtXr7ns4bEW7G1+Bp7n3Tv1eq+V42bojfMAIdvDpzv67MWiDIvFguFHTS8FgfrnCJmZ4zhUvUQtLEkiVlYWEJ98MW7dg35F0SV/yWgtWBByyGaXEH379L16oFtPyRutlG4H53KrEIQsXo0ORQ0c7qg9C2+V02rw2loakvQdwz7PhMGAXkYR0krVlpaN/gteXp6HohQw9MQzqcK3GSO/Yd8YgyiKf2bAGBrEPC6fdfTZM5nPqq/g8YA3pqZ9S42V4ZEww0iI/VUxFSUYCkW0nbsSOT415YbJZMbDB76PtARTvA5GgWBUqdosmhdJs413tBOdbofR1CXev+uI19Ux94ckCb77xGr9NdD1PE4eOnKhdfR5/3Qk5I99WUIgkkBcLcykxhWNFbf4pd2V0htkl06QgdkMYskFTOdFtlERF0qXXZm1a7kSL9sPAQYA2Q4Ie25SbgYAAAAASUVORK5CYII=") no-repeat 3px 3px;
|
||||
}
|
||||
@@ -485,10 +485,9 @@ fieldset {
|
||||
/*** Others ***/
|
||||
#lang {
|
||||
background: transparent;
|
||||
font-size: .9em;
|
||||
font-size: .9em;
|
||||
left: auto;
|
||||
right: 120px;
|
||||
top: 3px;
|
||||
position:fixed;
|
||||
z-index: 10;
|
||||
padding-top: 2px;
|
||||
|
||||
1
designs/hydra
Submodule
1
designs/hydra
Submodule
Submodule designs/hydra added at f8aa49777e
29
designs/jukin/adminer.css
Normal file
29
designs/jukin/adminer.css
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Redesigned by Janamou - September 2008 */
|
||||
|
||||
body { color: #000; background-color: #fff; line-height: 1.25em; font-family: Verdana, Arial, Helvetica, sans-serif; margin: 0; font-size: 90%; }
|
||||
a { color: black; }
|
||||
a:visited { color: black; }
|
||||
a:hover { color: #626262; text-decoration: none; }
|
||||
h1 { margin: 0; padding: 5px; }
|
||||
h2 { margin: 0; padding: 7px 0px 7px 10px; border: 1px solid #a3a3a3; font-weight: normal; background: #FCE28E url('data:image/gif;base64,R0lGODlhEAAiAIMAAP/nnf/nn//nof/kk//llP/ab//Zav/aa/7aagAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAEAAiAAMERBDISSsIOOvNu/9gKI5k6VnoJKxs6wpmmsayZQ54jhN8zxfAoHBYMBiPyKTyeGg6m4iodEpFLK/YrHbL7Xq/4LB4LI4AADs=') top left repeat-x; margin-bottom: 20px; }
|
||||
h3 { font-weight: normal; font-size: 130%; margin: .8em 0; }
|
||||
table { margin: 0 20px .8em 0; border: 0; border-top: 1px solid #999; border-left: 1px solid #999; font-size: 90%; }
|
||||
td, th { margin-bottom: 1em; border: 0; border-right: 1px solid #999; border-bottom: 1px solid #999; padding: .2em .3em; }
|
||||
th { background: black; color: white; }
|
||||
th a, th a:visited { color: white; text-decoration: none; }
|
||||
th a:hover { color: #626262; }
|
||||
fieldset { display: inline; vertical-align: top; padding: .5em .8em; margin: 0 .5em .5em 0; border: 1px solid #999; }
|
||||
img { vertical-align: middle; margin: 0; padding: 0; }
|
||||
.error { color: red; background: #fee; padding: .5em .8em; border: 1px solid red; }
|
||||
.message { color: black; background: #dedede; padding: .5em .8em; border: 1px solid black; }
|
||||
#menu { overflow: scroll; position: absolute; top: 0; left: 0; width: 270px; white-space: nowrap; background: #FFE594 url('data:image/gif;base64,R0lGODlhXgEBAIIAAPzabPzijvzihPzefvzmnPzedPzmlPzadCwAAAAAXgEBAAIDYEi63P5wGTXJvNZew7sJBNiBwWeWaPoFbNq+cCzPs8DaeJDvuGAPOh9wIBgWAwMjMblsOpnQqHRKrRaY1+sguz1sB4esN0wulM+HtNqMZqsBafgBTp/PAfQ8fs/v+/8ACQA7') top left repeat-y; height: 100%; _height: 650px; border: 1px solid #a3a3a3; }
|
||||
#menu form { margin: 0; }
|
||||
#menu p, #logins li, #tables li { text-align: center; font-size: 11px; }
|
||||
#menu p a, #logins li a, #tables li a { color: black; }
|
||||
#menu p a:hover, #logins li a:hover, #tables li a:hover { color: #626262; text-decoration: none; }
|
||||
#logins a, #tables a, #tables span { background: #FFE594; }
|
||||
#content { margin: 1.5em 0 0 293px; padding: 10px 20px 20px 0; }
|
||||
#lang { margin: 0; padding: 0; text-align: center; font-size: 10px; width: 270px; background-color: #d9dadb; border-bottom: 1px solid black; }
|
||||
#lang a { color: black; font-weight: bold; }
|
||||
#breadcrumb { position: absolute; top: 0; left: 293px; background: #d9dadb; font-size: 10px; margin: 0; padding: 2px 5px 2px 5px; }
|
||||
#breadcrumb a { color: black; }
|
||||
290
designs/kahi/adminer.css
Normal file
290
designs/kahi/adminer.css
Normal file
@@ -0,0 +1,290 @@
|
||||
/*
|
||||
Ok, it's a mess. You don't have to read it!
|
||||
*/
|
||||
|
||||
body {
|
||||
font-family: "Segoe UI", Tahoma, sans-serif;
|
||||
}
|
||||
|
||||
body a[href^="#"] {
|
||||
color:#000; text-decoration: none; border-bottom: 1px dotted #999;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
.jush-bac {
|
||||
color:#22c !important;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color:#000; text-decoration: none;
|
||||
}
|
||||
|
||||
/*
|
||||
@group Headers (visually)
|
||||
*/
|
||||
|
||||
#menu .logout {
|
||||
border-bottom:0; height:auto; padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@end
|
||||
*/
|
||||
|
||||
/*
|
||||
@group Sidebar (visually)
|
||||
*/
|
||||
|
||||
#menu {
|
||||
margin:0; padding:0;
|
||||
position:static; float:left; margin-left:-100%;
|
||||
width:25%; padding-top:80px;
|
||||
line-height:1.4;
|
||||
}
|
||||
|
||||
/* header "adminer 2.3.2" */
|
||||
h1 {
|
||||
margin:0; padding:0;
|
||||
position: fixed; left:0; top:0;
|
||||
width:25%; height:60px;
|
||||
border-bottom: 1px solid #bbb;
|
||||
background-color:#efefef; background-color:rgba(240,240,240,0.9);
|
||||
line-height:60px; text-indent:20px;
|
||||
}
|
||||
|
||||
#h1 {
|
||||
font-weight:bold; color:#666; font-style:normal;
|
||||
}
|
||||
|
||||
#menu a {
|
||||
padding:1px; margin-right:4px;
|
||||
color:#000; font-size:small; text-decoration: none;
|
||||
}
|
||||
|
||||
#menu a:hover {
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
#menu #tables + p a {
|
||||
color:green;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
#menu form+form, #menu #tables {
|
||||
position: fixed; left:0; top:100px; width:25%;
|
||||
}
|
||||
|
||||
#menu #tables {
|
||||
max-height:100%; padding-top:130px; overflow-y:auto;
|
||||
}
|
||||
*/
|
||||
/* @todo ev. position fixed for whole sidebar (not simple) */
|
||||
|
||||
/*
|
||||
@end
|
||||
*/
|
||||
|
||||
/*
|
||||
@group Sidebar (based on HTML position, not visual)
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/* languages */
|
||||
#lang {
|
||||
position: absolute; left:auto; left:120px; top:0px; z-index:3;
|
||||
font-size:11px; line-height:60px; text-decoration: underline; text-transform:lowercase;
|
||||
opacity:0.5;
|
||||
}
|
||||
|
||||
#lang:hover {
|
||||
opacity:1;
|
||||
}
|
||||
|
||||
#lang select {
|
||||
display:none;
|
||||
}
|
||||
|
||||
#lang:hover select {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* logout */
|
||||
input[name="logout"] {
|
||||
position:fixed; right:15px; top:22px;
|
||||
}
|
||||
|
||||
/*
|
||||
@end
|
||||
*/
|
||||
|
||||
/*
|
||||
@group Content: main
|
||||
*/
|
||||
|
||||
|
||||
#content {
|
||||
margin:0; padding:155px 0 50px 0;
|
||||
position: static; float:left; margin-left:25%;
|
||||
width:75%;
|
||||
}
|
||||
|
||||
#content > * {
|
||||
margin-left:20px; margin-right:20px;
|
||||
}
|
||||
|
||||
|
||||
#content h2 {
|
||||
margin:0; padding:0;
|
||||
position:fixed; left:25%; top:0; margin-left:-1px;
|
||||
width:75%;
|
||||
border-bottom: 1px solid #bbb;
|
||||
background-color:#efefef; background-color:rgba(240,240,240,0.9);
|
||||
font-weight:bold; line-height:60px; text-indent:20px;
|
||||
}
|
||||
|
||||
/* breadcrumbs */
|
||||
#breadcrumb {
|
||||
margin:0; padding:0;
|
||||
position:absolute; top:75px; left:25%;
|
||||
background:url() no-repeat;
|
||||
text-indent: 20px;
|
||||
}
|
||||
|
||||
/* Dump link */
|
||||
#menu .logout a {
|
||||
margin:0; padding:2px 4px;
|
||||
position:absolute; left:25%; top:110px;
|
||||
border-radius:3px;
|
||||
background-color:#053AC0; color:#fff; margin-left:120px; text-transform: uppercase; font-size:11px; text-decoration: none;
|
||||
}
|
||||
|
||||
/* SQL command link */
|
||||
body #menu .logout a[href$="sql="] {
|
||||
margin-left: 20px;
|
||||
background-color:green;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@end
|
||||
*/
|
||||
|
||||
/*
|
||||
@group Content: details
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#content p > a {
|
||||
margin-right:1ex;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#content p > a[href$="&database="],
|
||||
#content p > a[href*="&edit="] {
|
||||
color:green !important;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
@group Messages
|
||||
*/
|
||||
|
||||
.message {
|
||||
background-color:#D0EE76;
|
||||
color:#000;
|
||||
}
|
||||
|
||||
.error {
|
||||
background-color:#fbb;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.message a,
|
||||
.error a {
|
||||
margin-left:1em;
|
||||
color:#000; opacity:0.5; font-size:smaller;
|
||||
}
|
||||
|
||||
/*
|
||||
@end
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#menu p {
|
||||
padding:20px; /* wtf? */
|
||||
}
|
||||
|
||||
#menu form + form p:before {
|
||||
content:'DB:'; font-size:11px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@group Tables
|
||||
*/
|
||||
|
||||
table {
|
||||
border:1px solid #ccc;
|
||||
}
|
||||
|
||||
table thead tr > * {
|
||||
padding:5px;
|
||||
border-color:#ccc;
|
||||
border-bottom:2px solid #ccc;
|
||||
background-color:#f2f2f2;
|
||||
text-align: left; font-weight:bold;
|
||||
}
|
||||
|
||||
thead a {
|
||||
color:#333; text-decoration: none;
|
||||
}
|
||||
|
||||
body thead tr:hover > * {
|
||||
background-color:#f2f2f2;
|
||||
}
|
||||
|
||||
body tbody tr:hover > * {
|
||||
background-color:#f2f7ff;
|
||||
}
|
||||
|
||||
/*
|
||||
@end
|
||||
*/
|
||||
|
||||
/*
|
||||
@group Pagination
|
||||
*/
|
||||
|
||||
#content .pages {
|
||||
margin:1em 0 2em;
|
||||
}
|
||||
|
||||
#content .pages a {
|
||||
padding:3px 5px; margin:0 1px;
|
||||
border:1px solid #eee;
|
||||
text-decoration:none; color: #000;
|
||||
}
|
||||
|
||||
#content .pages a:hover {
|
||||
background-color:#eee;
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@end
|
||||
*/
|
||||
/*
|
||||
@end
|
||||
*/
|
||||
@@ -2,11 +2,11 @@
|
||||
/* So I merged them into one file, fixed a couple of problems, added some paddings here and there, voila!
|
||||
|
||||
/* Redesigned (iconized) by Hever [hev.cz] - June 2009, ver 0.1.3 */
|
||||
/**
|
||||
/**
|
||||
* Alternative style for Adminer by Frank Bueltge
|
||||
* @link http://bueltge.de/
|
||||
*/
|
||||
|
||||
|
||||
/* Added icons */
|
||||
/* IE doesn't support inline images - using some hack that eliminate IE*/
|
||||
html/*\*/>/*/*/body .error {background:#FFEEEE url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLpVNLSJQBEP7+h6uu62vLVAJDW1KQTMrINQ1vPQzq1GOpa9EppGOHLh0kCEKL7JBEhVCHihAsESyJiE4FWShGRmauu7KYiv6Pma+DGoFrBQ7MzGFmPr5vmDFIYj1mr1WYfrHPovA9VVOqbC7e/1rS9ZlrAVDYHig5WB0oPtBI0TNrUiC5yhP9jeF4X8NPcWfopoY48XT39PjjXeF0vWkZqOjd7LJYrmGasHPCCJbHwhS9/F8M4s8baid764Xi0Ilfp5voorpJfn2wwx/r3l77TwZUvR+qajXVn8PnvocYfXYH6k2ioOaCpaIdf11ivDcayyiMVudsOYqFb60gARJYHG9DbqQFmSVNjaO3K2NpAeK90ZCqtgcrjkP9aUCXp0moetDFEeRXnYCKXhm+uTW0CkBFu4JlxzZkFlbASz4CQGQVBFeEwZm8geyiMuRVntzsL3oXV+YMkvjRsydC1U+lhwZsWXgHb+oWVAEzIwvzyVlk5igsi7DymmHlHsFQR50rjl+981Jy1Fw6Gu0ObTtnU+cgs28AKgDiy+Awpj5OACBAhZ/qh2HOo6i+NeA73jUAML4/qWux8mt6NjW1w599CS9xb0mSEqQBEDAtwqALUmBaG5FV3oYPnTHMjAwetlWksyByaukxQg2wQ9FlccaK/OXA3/uAEUDp3rNIDQ1ctSk6kHh1/jRFoaL4M4snEMeD73gQx4M4PsT1IZ5AfYH68tZY7zv/ApRMY9mnuVMvAAAAAElFTkSuQmCC") no-repeat scroll 0.8em center; padding-left:38px;}
|
||||
@@ -74,9 +74,10 @@ thead td, thead th {background-color: #DFDFDF; border: none; border-bottom: 1px
|
||||
thead tr:hover td, thead tr:hover th {background-color: #DDD !important;}
|
||||
tr:nth-child(2n) td, tr:nth-child(2n) th, .odd td, .odd th, tr.odd {background-color: #F1F1F1;}
|
||||
tr:hover td, tr:hover th {background-color: #BCD;}
|
||||
fieldset {display: inline; vertical-align: top; padding: 2px 12px; margin: 25px 12px 12px 0; border: none; background-color: #F1F1F1; border: 1px solid #E3E3E3; position: relative;}
|
||||
fieldset {display: inline; vertical-align: top; padding: 2px 12px; margin: 25px 12px 12px 0; border: none; background-color: #F1F1F1; border: 1px solid #E3E3E3; position: relative; padding-top: 14px;}
|
||||
fieldset, x:-moz-any-link {padding-top: 4px;}
|
||||
legend {font-weight: 900; color: #000; position: relative; top: -0.8em; left: -1em; padding: 0 4px;}
|
||||
fieldset {%padding-top: 14px;}
|
||||
legend {font-weight: 900; color: #000; position: absolute; top: -1.666em; left: -1em; padding: 0 4px;}
|
||||
input[name='limit'], input[name*='length'] {width: 3em; xtext-align: right;}
|
||||
input[name='text_length'] {width: 5em;}
|
||||
select + input, select + select {margin-left: 2px;}
|
||||
@@ -92,8 +93,6 @@ fieldset div {margin-bottom: 2px;}
|
||||
input[name='Comment'] { /* !!! */ width: 24em;}
|
||||
input[name='Auto_increment'] { /* !!! */width: 6em;}
|
||||
img {vertical-align: middle; margin: 0; padding: 0;}
|
||||
.footer{border-image: linear-gradient(rgba(249, 249, 249, .2), #F9F9F9) 100% 0}
|
||||
.footer > div {background-color: #F9F9F9;}
|
||||
.error {padding: 8px; color: red; background-color: #FEE;}
|
||||
.message {padding: 8px; background-color: #DDD;}
|
||||
.char {color: #070;}
|
||||
@@ -109,8 +108,7 @@ img {vertical-align: middle; margin: 0; padding: 0;}
|
||||
#menu form {margin: 0;}
|
||||
#menu p, #logins, #tables {padding-left: 8px; font-size: 10pt; border-bottom: none;}
|
||||
#menu form p {padding-left: 0; text-align: left;}
|
||||
#dbs, .tables-filter {padding-left:8px !important;}
|
||||
h1 .h1:hover {text-decoration: underline;}
|
||||
h1 .h1:hover {text-decoration: underline;}
|
||||
h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 14px 15px 3px 10px; line-height: 35px; text-shadow: rgba(255,255,255,1) 0 1px 0px; background: none;}
|
||||
h1 {font-size: 12px;}
|
||||
h1 .h1 {font-size: 12px;}
|
||||
@@ -119,6 +117,8 @@ h3 {margin: 40px 0 0; font-weight: 400; font-size: 130%;}
|
||||
#schema {margin: 1.5em 0 0 220px; position: relative;}
|
||||
#schema .table {border: 1px solid #E3E3E3; background-color: #F1F1F1; padding: 0 2px; cursor: move; position: absolute;}
|
||||
#schema .references {position: absolute;}
|
||||
.js .hidden {display: inline;}
|
||||
.js td.hidden, .js input.hidden {display: none;}
|
||||
legend a {color: #333; text-decoration: none; cursor: default;}
|
||||
legend a:hover {color: #333;}
|
||||
code {background: transparent;}
|
||||
@@ -126,4 +126,4 @@ fieldset, legend, h2, table, .error, .message {-moz-border-radius: 5px; -khtml-b
|
||||
#breadcrumb, #lang, #menu {-moz-border-radius-bottomright: 5px; -khtml-border-bottom-right-radius: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px;}
|
||||
#breadcrumb {-moz-border-radius-bottomleft: 5px; -khtml-border-bottom-left-radius: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px;}
|
||||
#menu {-moz-border-radius-topright: 5px; -khtml-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; border-bottom-top-radius: 5px;}
|
||||
#loader {margin-left: 35px;}
|
||||
#loader {margin-left: 35px;}
|
||||
@@ -473,6 +473,26 @@ h1 {
|
||||
#h1 {
|
||||
font-style: normal;
|
||||
}
|
||||
#dbs {
|
||||
color: transparent;
|
||||
}
|
||||
#dbs:before {
|
||||
content: " ";
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
height: 1em;
|
||||
width: 1em;
|
||||
margin-right: -0.5em;
|
||||
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' viewBox='0 0 58.201 58.201' enable-background='new 0 0 58.201 58.201' xml:space='preserve' width='512px' height='512px'%3E%3Cg%3E%3Cpath d='M31.707,33.07c-0.87,0.027-1.74,0.042-2.606,0.042c-0.869,0-1.742-0.014-2.614-0.042 c-7.341-0.201-13.191-1.238-17.403-2.717C7.104,29.685,5.409,28.899,4.1,28v7.111v0.5v0.5V37.4c2.846,2.971,12.394,5.711,25,5.711 s22.154-2.74,25-5.711v-1.289v-0.5v-0.5V28c-1.318,0.905-3.028,1.697-5.025,2.367C44.865,31.839,39.027,32.87,31.707,33.07z' fill='%23FFFFFF'/%3E%3Cpath d='M4.1,14.889V22v0.5V23v1.289c2.638,2.754,11.033,5.31,22.286,5.668c0.115,0.004,0.233,0.005,0.349,0.008 c0.326,0.009,0.651,0.018,0.982,0.023C28.174,29.996,28.635,30,29.1,30s0.926-0.004,1.383-0.011 c0.33-0.005,0.656-0.014,0.982-0.023c0.116-0.003,0.234-0.005,0.349-0.008c11.253-0.359,19.648-2.915,22.286-5.668V23v-0.5V22 v-7.111C49.233,18.232,38.944,20,29.1,20S8.968,18.232,4.1,14.889z' fill='%23FFFFFF'/%3E%3Cpath d='M53.965,8.542C52.843,4.241,44.215,0,29.1,0C14.023,0,5.404,4.22,4.247,8.51C4.162,8.657,4.1,8.818,4.1,9v0.5v1.806 C6.937,14.267,16.417,17,29.1,17s22.164-2.733,25-5.694V9.5V9C54.1,8.832,54.044,8.681,53.965,8.542z' fill='%23FFFFFF'/%3E%3Cpath d='M4.1,41v8.201c0,0.162,0.043,0.315,0.117,0.451c1.181,4.895,11.747,8.549,24.883,8.549c13.106,0,23.655-3.639,24.875-8.516 c0.08-0.144,0.125-0.309,0.125-0.484v-8.199c-4.135,2.911-12.655,5.199-25,5.199C16.754,46.201,8.234,43.911,4.1,41z' fill='%23FFFFFF'/%3E%3C/g%3E%3C/svg%3E") center no-repeat;
|
||||
background-size: auto 100%;
|
||||
}
|
||||
.rtl #dbs:before {
|
||||
margin-right: 0;
|
||||
margin-left: -0.5em;
|
||||
}
|
||||
#dbs span {
|
||||
display: none;
|
||||
}
|
||||
#menu p {
|
||||
margin: 1.5em 0 0;
|
||||
}
|
||||
@@ -486,10 +506,6 @@ h1 {
|
||||
#menu .error {
|
||||
padding: 0.2em 0.4em;
|
||||
}
|
||||
.tables-filter {
|
||||
padding: 0;
|
||||
margin-top: 1.2em;
|
||||
}
|
||||
input[type="submit"],
|
||||
input[type="reset"],
|
||||
input[type="button"],
|
||||
@@ -535,7 +551,7 @@ input[type="file"]::-ms-browse {
|
||||
background: #4c3957;
|
||||
color: #fff;
|
||||
padding: 0.5em 0.8em 0.6em;
|
||||
margin: 0 0.5em;
|
||||
margin: 0;
|
||||
border-style: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -557,7 +573,7 @@ input[type="file"]::-webkit-file-upload-button {
|
||||
background: #4c3957;
|
||||
color: #fff;
|
||||
padding: 0.5em 0.8em 0.6em;
|
||||
margin: 0 0.5em;
|
||||
margin: 0;
|
||||
border-style: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
@@ -571,24 +587,24 @@ input[type="file"]:disabled::-webkit-file-upload-button {
|
||||
background-color: rgba(76, 57, 87, 0.35);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
input[type="file"]::file-selector-button {
|
||||
input[type="file"]::-moz-file-upload-button {
|
||||
display: inline-block;
|
||||
font-size: 85%;
|
||||
text-align: center;
|
||||
background: #4c3957;
|
||||
color: #fff;
|
||||
padding: 0.5em 0.8em 0.6em;
|
||||
margin: 0 0.5em;
|
||||
margin: 0;
|
||||
border-style: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
input[type="file"]:hover::file-selector-button,
|
||||
input[type="file"]:focus::file-selector-button {
|
||||
input[type="file"]:hover::-moz-file-upload-button,
|
||||
input[type="file"]:focus::-moz-file-upload-button {
|
||||
color: #fff;
|
||||
background: #ec5f12;
|
||||
text-decoration: none;
|
||||
}
|
||||
input[type="file"]:disabled::file-selector-button {
|
||||
input[type="file"]:disabled::-moz-file-upload-button {
|
||||
background-color: rgba(76, 57, 87, 0.35);
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
202
designs/mancave-hever/adminer.css
Normal file
202
designs/mancave-hever/adminer.css
Normal file
@@ -0,0 +1,202 @@
|
||||
/*
|
||||
VERSION: mancave-hever1-27.1.alpha
|
||||
*/
|
||||
|
||||
/* Merged and fixed version of Hever's and Frank Bueltge's skins by Oguz KONYA. I liked Bueltge's skin but I wanted the icons, too.
|
||||
So I merged them into one file, fixed a couple of problems, added some paddings here and there, voila! */
|
||||
|
||||
/* Redesigned (iconized) by Hever [hev.cz] - June 2009, ver 0.1.3 */
|
||||
/**
|
||||
* * Alternative style for Adminer by Frank Bueltge
|
||||
* * @link http://bueltge.de/
|
||||
* */
|
||||
|
||||
/* Added icons */
|
||||
/* IE doesn't support inline images - using some hack that eliminate IE*/
|
||||
|
||||
html/*\*/>/*/*/body .error {background:#FFEEEE url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIsSURBVDjLpVNLSJQBEP7+h6uu62vLVAJDW1KQTMrINQ1vPQzq1GOpa9EppGOHLh0kCEKL7JBEhVCHihAsESyJiE4FWShGRmauu7KYiv6Pma+DGoFrBQ7MzGFmPr5vmDFIYj1mr1WYfrHPovA9VVOqbC7e/1rS9ZlrAVDYHig5WB0oPtBI0TNrUiC5yhP9jeF4X8NPcWfopoY48XT39PjjXeF0vWkZqOjd7LJYrmGasHPCCJbHwhS9/F8M4s8baid764Xi0Ilfp5voorpJfn2wwx/r3l77TwZUvR+qajXVn8PnvocYfXYH6k2ioOaCpaIdf11ivDcayyiMVudsOYqFb60gARJYHG9DbqQFmSVNjaO3K2NpAeK90ZCqtgcrjkP9aUCXp0moetDFEeRXnYCKXhm+uTW0CkBFu4JlxzZkFlbASz4CQGQVBFeEwZm8geyiMuRVntzsL3oXV+YMkvjRsydC1U+lhwZsWXgHb+oWVAEzIwvzyVlk5igsi7DymmHlHsFQR50rjl+981Jy1Fw6Gu0ObTtnU+cgs28AKgDiy+Awpj5OACBAhZ/qh2HOo6i+NeA73jUAML4/qWux8mt6NjW1w599CS9xb0mSEqQBEDAtwqALUmBaG5FV3oYPnTHMjAwetlWksyByaukxQg2wQ9FlccaK/OXA3/uAEUDp3rNIDQ1ctSk6kHh1/jRFoaL4M4snEMeD73gQx4M4PsT1IZ5AfYH68tZY7zv/ApRMY9mnuVMvAAAAAElFTkSuQmCC") no-repeat scroll 0.8em center; padding-left:38px;}
|
||||
html/*\*/>/*/*/body .message, #menu p.message {background:#49526D url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKfSURBVDjLpZPrS1NhHMf9O3bOdmwDCWREIYKEUHsVJBI7mg3FvCxL09290jZj2EyLMnJexkgpLbPUanNOberU5taUMnHZUULMvelCtWF0sW/n7MVMEiN64AsPD8/n83uucQDi/id/DBT4Dolypw/qsz0pTMbj/WHpiDgsdSUyUmeiPt2+V7SrIM+bSss8ySGdR4abQQv6lrui6VxsRonrGCS9VEjSQ9E7CtiqdOZ4UuTqnBHO1X7YXl6Daa4yGq7vWO1D40wVDtj4kWQbn94myPGkCDPdSesczE2sCZShwl8CzcwZ6NiUs6n2nYX99T1cnKqA2EKui6+TwphA5k4yqMayopU5mANV3lNQTBdCMVUA9VQh3GuDMHiVcLCS3J4jSLhCGmKCjBEx0xlshjXYhApfMZRP5CyYD+UkG08+xt+4wLVQZA1tzxthm2tEfD3JxARH7QkbD1ZuozaggdZbxK5kAIsf5qGaKMTY2lAU/rH5HW3PLsEwUYy+YCcERmIjJpDcpzb6l7th9KtQ69fi09ePUej9l7cx2DJbD7UrG3r3afQHOyCo+V3QQzE35pvQvnAZukk5zL5qRL59jsKbPzdheXoBZc4saFhBS6AO7V4zqCpiawuptwQG+UAa7Ct3UT0hh9p9EnXT5Vh6t4C22QaUDh6HwnECOmcO7K+6kW49DKqS2DrEZCtfuI+9GrNHg4fMHVSO5kE7nAPVkAxKBxcOzsajpS4Yh4ohUPPWKTUh3PaQEptIOr6BiJjcZXCwktaAGfrRIpwblqOV3YKdhfXOIvBLeREWpnd8ynsaSJoyESFphwTtfjN6X1jRO2+FxWtCWksqBApeiFIR9K6fiTpPiigDoadqCEag5YUFKl6Yrciw0VOlhOivv/Ff8wtn0KzlebrUYwAAAABJRU5ErkJggg==") no-repeat scroll 0.8em center; padding-left:38px;}
|
||||
|
||||
html/*\*/>/*/*/body a[href$="sql="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHGSURBVHjaxFPNLkNREP5aB6WhaKLSVtKFiIUqK1sLT2DhTXgDL2FlxSOw8FOLRiyQWhDRiKSEhKQJou49P9fMnFsLsevCJCcz594z3/m+mTmJKIrQjSXRpXUNoGqbm39qcMbAkbyIvbVwYQhD3tIeWsOQ1+QVH86Xyz+JXJPIOb9iAI4ZpOMd/yN/vb/vAdiC93cP0El2dNA6z4RjYyW2MaPU0BB0u+0BOGGsVML49LSA3J+cYDCblb0l6jeHBwg/26isrOB0a8uzYBlBgKShgD8M53J4aTTQqFaRSCYl+WxnG83zcxTmKpKg+vtFu9W8NDQDMCXW+VivYyAzjKmlJahUSpiYUKPVbCKTz0sCGzOyOpBLzdcXlCMdDDIxO4vboyoyhQIKlYocLi0uIjczIyBcA98dYqx9NywxUEyDi/P29IyF1VU5dFeroS+dRnF+Xvajk5N0ayjx8tq6+FuSyiwUF4LRHi/reLg4o9ijs6xG9RjWGowUi/h4fcXexoa0L4oc0mNZuVgFzID09VKBnFXoUb7Pnb5zQrvVovpkZC4QzwfiN6QM1eBqdxcmnq6IAA395Mlz8eTxTZwg/pcl/v01fgswAESqYZbsIsnLAAAAAElFTkSuQmCC") no-repeat scroll left bottom; padding-left:22px;}
|
||||
html/*\*/>/*/*/body a[href*="dump="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJrSURBVHjajFPPaxNREP72V8ymTbGQbRB/IT0otdV6CcWTgqCoUFQQEXoSEQ/+AypK755E1KsULIpGgw1F9KC22lgstFgQLdoWhSab2PRHTNrs7nvObGhSsRa/ZXjv7c6b+eabWUVKiX9AJQuRRci2k+260N91VwgJIQSEV1mVnjf5axTjvCfFFn7hCcBlBzJNVRA0gAZTQ1ODgXC4gDtjV9AW2QNFUTA0/Q66kPLSqVg4shYF8vEdKQ7mln+i+/VVRM0oFpbmETLq/SS6J4R/OfHtHmV24XouHFo94REDAyE9hMZgBMkvT2GZFqxQE6by0/g4P74SoKLB2ZZzWA8ffqRQLBcxNTuFjRTwxpmbfad7Oo/rHhdN6B20/6JvaKyBCnODhqNbL+PRxHXUGXWINV5kl9TDrkQct/pnZKHkyPsDGcl4MJiWq5Ecsf84LxTL8nbyK2+Pke3XHWJAQkLXgMdDNjRNRTxlQ6UmakRD0vN8NEd7EBsFO6Impu1fzGCCrOSXwCro5HEiZiExnEVnrKlaypNhG4fba02aTC8ik1/ibZrM9RlIkkGnjH0jWWJQWRn8TpLI8fcZ6MSA1WrZFERx2eHPTEPqjksBqASDLh7ZZ+HlWA6H9tYyvhjNomNnI8Km7p8/f5+HGdB46/lJeOoYPHV8mbGy8gA59HngU74asNkKYKVzlQCuW9GA6B5si+DVeA4HWmsM4qksTnZY1TMz0NRauysaUAmt2+oxM1tCM6k8mS74WXjIdm8O+JdWg36oKgXqgnzb3TvRXvZEneN6YPNIFw7MY70W5haXnlUHbp3f+b/wW4ABAAtWTLcKdqLcAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
html/*\*/>/*/*/body a[href$="dump="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHzSURBVHjajJPPS+NQEMcnaaxpdWsp6Q8vtWtdkIo9+B948SjIgruCUg8F/wGP/glePe5JcBehwl4qePGm0J6KQj30UBHEzaFLUromTfPizJMnrxhhB4bJvDfzme97SZQgCOB/be98J2AsAMYYMP81KjKg0WhMYljHtS30RSz4gjkGdot559F7OLt8vvi1bJRBURS4vr8CTTQ3m80SFv1MpVJlwzBA13XuNGUwGKyY1p+Vk9aPzWw8C7ZjQXximu+9ATA5KhQK5Uwmw+nCIpEIJBIJOLjah3Q8w7379x5urFsOUEUhTl/C6R+ef35mARzPhW6vC+q/iHvyvaYwXwIQje6j1+tBv98H13VhNBpxxyPA5tw2TI50MPQsrMbXbOo53fmtaJIC7iSZAMPhkOe+73MA5Ruz3yCfz9NlvykLBUSjUR41TQPP8zhE7JNSyj8E0CbJpkiXKRoIRFABeQcQd0DFwlVV5evUTFBZRSiATEwnp4lCAa0LI2AoQC4WimRl4qgyYOw12rYNyWSSX6L4mKiBnukDK5VKYJrmmBpZwW6r1TotFotTuVyOQwQgnU7zV9npdKDdbj+hgnXRN/Yz1ev1zwg6QP+KU2disRiXblkWOI7zhJOPce+wWq2aoQDZarXaJ2xYQGfod5VKxQ2rexFgAI4OiAKxKkWeAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
|
||||
html/*\*/>/*/*/body select[name="db"] {background:white url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEYSURBVBgZBcHPio5hGAfg6/2+R980k6wmJgsJ5U/ZOAqbSc2GnXOwUg7BESgLUeIQ1GSjLFnMwsKGGg1qxJRmPM97/1zXFAAAAEADdlfZzr26miup2svnelq7d2aYgt3rebl585wN6+K3I1/9fJe7O/uIePP2SypJkiRJ0vMhr55FLCA3zgIAOK9uQ4MS361ZOSX+OrTvkgINSjS/HIvhjxNNFGgQsbSmabohKDNoUGLohsls6BaiQIMSs2FYmnXdUsygQYmumy3Nhi6igwalDEOJEjPKP7CA2aFNK8Bkyy3fdNCg7r9/fW3jgpVJbDmy5+PB2IYp4MXFelQ7izPrhkPHB+P5/PjhD5gCgCenx+VR/dODEwD+A3T7nqbxwf1HAAAAAElFTkSuQmCC") no-repeat scroll left bottom; padding-left:16px; background: #49526D;}
|
||||
html/*\*/>/*/*/body select[name="db"] option {padding-left:18px;}
|
||||
|
||||
html/*\*/>/*/*/body #menu li a[href*="&select="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHISURBVDjLpVPNK0RRFP+9D98syMwUspHkm9I0YkFZWBFKkZ0s7a3Ewh+ilChK7FgoZCJFKYlYKB8zk2+Z5t0P577He29kQU7dd+6575zf+d1zztWklPiPmOozt/U4SThjXIoyIQS4AJjSXO0lGGlvcXAm6Vzsz4xUhm0AIeX4QLig+C+ZpxbOG1wGhGYHr1zMUmZGWRgs0ha3PE1nX/8mWmdgWTzLB+DUYbhm9FfZ35IEyrhXA3VXJfPbsV8B9LQUIeUHYJ8ASobag1jcucNgW8g9W4reYSDi2YnnZDoDiwCokDANct6NwTB0LEdj0HRA/wxa2SN25JNBEdWluUhZ366gqmAaGvrCAXKOozccTGPgt8+vn8GYSGcgyTYp3dpBnBg42nbQPRBTo5bTvqYkmxL6AQhNTWQGBXY3B7BxlEBXozcW64dxRKoKUZBju+P06gl5WaaviMJBM3TNDlbypemIZgHYOnlwASsCmW7nHADGnBoQ3c76YmweJ9BR5zFYjsbRHwm4tmJg6PhWA7pCXXk+bu7fURHKweXtq/sWaksz7SC/CCGFrwtyZ3r+rCnFRZ7qr1qc6mLZj4f9OEyPL8lVpbX/PucPv5QPKHB1TdEAAAAASUVORK5CYII=") no-repeat scroll left bottom; clear:left; display:block; float:left; height:16px; margin-right:8px; padding-top:1px; overflow:hidden; padding-left:16px; width:0; text-decoration:none;}
|
||||
|
||||
html/*\*/>/*/*/body #menu li a[href*="&table="], html/*\*/>/*/*/body #menu li a[href*="&view="] {clear:right; margin-left:24px; display:block; height:17px; padding-bottom:1px; text-decoration:none;}
|
||||
|
||||
html/*\*/>/*/*/body #menu p#tables br {display:none;}
|
||||
|
||||
html/*\*/>/*/*/body a[href*="&create="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ6SURBVDjLpZNZSNRRGMV//2XGsjFrMg2z0so2K21xIFpepYUiAsGIICLffI8eWiBBeg3qQV+KwBYKLB8qpHUmrahcKLc0QsxldNSxdPz/79LD1ChBUXTh8sG93POdc75zDa01/7NsgGvPR09rzQmpVZZSCqlAKIWUCqk0QqoZWyKFRir1uvxIbsAGUFqXHQqkpP1L57M3Pm5MMJBKpQHUdF9BKIGQAlcJXOlOVykSdye3leO6MmkGQNyHw+uO/1X3bzGBK+S0B1IqAKqDg3986HeCZPffwvJtoNT7lOZLvUdtAPEDAKBkRzo3QwMUb89InN1uGGD3spdE214xe8MRUnM2MfppNW0Pqy7YAK5UKK2xLbhdP4hlmdxpGMQwwQT8ziNiI534c7cT6WrFazikzF2Eb8HS1IQEDdiWwcHAQmpehTkQSAcgNvSMiYFW5uUUMdV3HW+ywefGNqITJsbUUL75k4FWYJtQ+yaMZcXrk1ANk/33mbdiD7EvlRieETy+FJLkMFcjRRSW3emIAwiF1hqPBfu2LGSWbbA1uZ41SfWkrtxPrPcypsfFiWYzFGzGKTjFV28WEJeIUHETLdOgrmkI1VdHpCdEet5enP4qLK9mKrqMgedv6cyrAP+qxOTiUxAi7oEJi8frELoFoTLpa7nI/HQvscgSRt+0kV1SSW7qYtp7xrBMphm4Mi5h/VIfTcEq1u0oJaknSEdNiMYHET7UvcMpPEN31Ed7zxgASmk1I0g6dK66s8CRak5mVxjnfS05+TsZCw/T9baTx1nnGb47DrQksjE6HrsHYPz6nYt3+Sc3L8+wA2tz0J6pF5OD4WP7Kpq7f5fO79DfSxjdtCtDAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
html/*\*/>/*/*/body a[href$="&create="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIpSURBVDjLpZNPSFRRFMZ/749/Kt3IqFTSRoSMmrGIYTTbpEJtjBCCok1Em9JVG1dRC8FFEES5aGFEgRRZWq1iLKKxBiNqLDcltQgmHR9hY6LOu+feFm+YGVsZXbh8nHO53/nud8+xjDH8z3IB7r5avGgMZ8XoBq01okFpjYhGtEGJLtmCKINo/XbgVFPUBdDG9PVEq0P/UvnSvdlwQYFoHQIY/3obpRVKFL5W+OIXUVThrL91AN+XihKCwIeTu85sqPryqsJXUvRARAMwkshsiKB7fw25UgKVJwA40V7H/cl5jh+oL+RGk/P0xIqxl11dr8AXjTYG14HRNxkcx+ZhMoNlg52/ND6VAWMoc6F5+2Zy/l9PMIDrWByL1jI+tcDRaN06BaXxbDqLUnq9AqPBteHpuwUcJ0AIcgBXH93h+/wEyyuLrPk5cmv7gNY8gdIYYyhz4PDeWuIpj85IsS2ujQ2zJAk6DkZpqGnixcwYyU+PifUOX7Eh6DoAx7aIpzwA4imPeMrj+bTH+88PaNkZQWwhsrULsXxie9oAzgcESgUe2NAZCeE6AXZGQhwKh/Cyc5RZVXQ39wFwoeMmjXVhgMqiB8awe0cVP36u0Fi/iW9zvwuzkF3+xUz6Nal0gv6uWww+O02lUwGwmv8FM3l55EtLTvQWXwm+EkRpfNEoUZRXHCE5PUFbuJ0nH4cot1wSH14C3LA2Os6x3m2DwDmgGlgChpLX0/1/AIu8MA7WsWBMAAAAAElFTkSuQmCC") no-repeat scroll left bottom; padding-left:22px;}
|
||||
|
||||
html/*\*/>/*/*/body #content p a {padding-left:2px;}
|
||||
html/*\*/>/*/*/body #content p a[href*="&create="] {padding-left:22px;}
|
||||
html/*\*/>/*/*/body #content p a[href*="&select="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHISURBVDjLpVPNK0RRFP+9D98syMwUspHkm9I0YkFZWBFKkZ0s7a3Ewh+ilChK7FgoZCJFKYlYKB8zk2+Z5t0P577He29kQU7dd+6575zf+d1zztWklPiPmOozt/U4SThjXIoyIQS4AJjSXO0lGGlvcXAm6Vzsz4xUhm0AIeX4QLig+C+ZpxbOG1wGhGYHr1zMUmZGWRgs0ha3PE1nX/8mWmdgWTzLB+DUYbhm9FfZ35IEyrhXA3VXJfPbsV8B9LQUIeUHYJ8ASobag1jcucNgW8g9W4reYSDi2YnnZDoDiwCokDANct6NwTB0LEdj0HRA/wxa2SN25JNBEdWluUhZ366gqmAaGvrCAXKOozccTGPgt8+vn8GYSGcgyTYp3dpBnBg42nbQPRBTo5bTvqYkmxL6AQhNTWQGBXY3B7BxlEBXozcW64dxRKoKUZBju+P06gl5WaaviMJBM3TNDlbypemIZgHYOnlwASsCmW7nHADGnBoQ3c76YmweJ9BR5zFYjsbRHwm4tmJg6PhWA7pCXXk+bu7fURHKweXtq/sWaksz7SC/CCGFrwtyZ3r+rCnFRZ7qr1qc6mLZj4f9OEyPL8lVpbX/PucPv5QPKHB1TdEAAAAASUVORK5CYII=") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
html/*\*/>/*/*/body #content p a[href*="&page="] {background-image:none; padding-left:0;}
|
||||
html/*\*/>/*/*/body #content p a[href$="?database="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIkSURBVDjLpVNNiFJRFP7eU1E0KSLTMpAwYSxyaidDtChm0WYQ3NSutv2s2kwwm2igNgMtooUQEQhhA9GqhSDTQsZZFDbNDBgVg5bSw9J8rzFF33udc+HGg0ladOHj3nPe+b7zc99VbNvG/yy30yiVSl4SnCNcsixrivYEgY7WJu0faX9EKGUyGVNyFFkBkY/T+WkoFEpFIhEEAgH4/X7w916vB8Mw0Gg00G63y+S7mM1mm4LIAYxisbhSr9c5nT1pjUYju1qt2oVC4YnkqbIUMk6Ew+F/9hyNRkFJLuyaATmFoqZp8Pl88Hq98Hg8wtfv99HpdNBsNhGPx0XsRAG3241ut4vBYCDs8XgMXdcxHA7FN/b9VUD25HK5RAUczKC+hYgcNpNN05xcAQdLkqIoIlj6VFWdXIEUkAQGV8M2k2vaG3z6sYGfVR39XzsHlm/dX3h5d31xlwAHM5goBd5+LuO75z3OnU3jyP4EVrZeKGub2p309cP7VKcAQ2Znoiz3deMVTk1Nw1RNTB+ahamMkD45w7RrfwSYwFdFf6K4Quf6pmvwKHswl7wh7Jvnc4gfTPHR52zhcqVSeZZMJgOxWEyI8BC5CmOnh63WKtZbZczPPsa94hX4XCLJQHG+xnw+f5SEFghZmvhefgvcTqn2HN3gBmZSZ5CInMaHr1Wsvivjy3ZvSZn0nHO5XJDIxwgWDbW2vL10m9xXCUGCQXi49qA1/xvyq6BCh7yZeQAAAABJRU5ErkJggg==") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
html/*\*/>/*/*/body #content p a[href*="&edit="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJvSURBVDjLpZPrS5NhGIf9W7YvBYOkhlkoqCklWChv2WyKik7blnNris72bi6dus0DLZ0TDxW1odtopDs4D8MDZuLU0kXq61CijSIIasOvv94VTUfLiB74fXngup7nvrnvJABJ/5PfLnTTdcwOj4RsdYmo5glBWP6iOtzwvIKSWstI0Wgx80SBblpKtE9KQs/We7EaWoT/8wbWP61gMmCH0lMDvokT4j25TiQU/ITFkek9Ow6+7WH2gwsmahCPdwyw75uw9HEO2gUZSkfyI9zBPCJOoJ2SMmg46N61YO/rNoa39Xi41oFuXysMfh36/Fp0b7bAfWAH6RGi0HglWNCbzYgJaFjRv6zGuy+b9It96N3SQvNKiV9HvSaDfFEIxXItnPs23BzJQd6DDEVM0OKsoVwBG/1VMzpXVWhbkUM2K4oJBDYuGmbKIJ0qxsAbHfRLzbjcnUbFBIpx/qH3vQv9b3U03IQ/HfFkERTzfFj8w8jSpR7GBE123uFEYAzaDRIqX/2JAtJbDat/COkd7CNBva2cMvq0MGxp0PRSCPF8BXjWG3FgNHc9XPT71Ojy3sMFdfJRCeKxEsVtKwFHwALZfCUk3tIfNR8XiJwc1LmL4dg141JPKtj3WUdNFJqLGFVPC4OkR4BxajTWsChY64wmCnMxsWPCHcutKBxMVp5mxA1S+aMComToaqTRUQknLTH62kHOVEE+VQnjahscNCy0cMBWsSI0TCQcZc5ALkEYckL5A5noWSBhfm2AecMAjbcRWV0pUTh0HE64TNf0mczcnnQyu/MilaFJCae1nw2fbz1DnVOxyGTlKeZft/Ff8x1BRssfACjTwQAAAABJRU5ErkJggg==") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
html/*\*/>/*/*/body #content p a[href*="&table="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJcSURBVDjLpZPtT5JhFMafrW997I9rscA+FFu2QRurtlw5cQ4InLpwBogIPNFSiNJ4C+JVkj0QTBHQKFPQlJfwlanY1tXz3ARkn2jd27Wz++yc33XOvd0UAOp/RNGR/X5zeH9rOlTDVKAK3fsqJrxlqN27GHPuYHh+G4rXRQzZNjEws47Hli/oo/PxNsAU3qvWT3/gX3TPuHrWBhiC30nSktXDtKLB1NI4NKkxqBMqjDByPFkcxNBCPwbCfXgUeEBq705m0AZM+qsk2e3hau88W+4ANOy+XPLFQrkrcbW31KkOYJx9rBaAOzPR0gVHW6x593q9cDgcqB6e4sZoogMYdXzD0ck5ZhfLsHGKVfAqVoadKcMdzcLr82PuwwZCoRACgQCWVzdhoK2gaVpDAMNzWzhkAXamQpze/I4t13w+j2AwiFwuh7W1NXg8HmQyGSgUCshkssuU3F7AQf0c84kK3n68KFc4hXQ6DavVCqlUCqVSSdaIx+NQq9UGMsHg7Ab2jxtwp5rOvqUqia3CUqnEObWn0mp1KBaLcLlckMvloPpfrhOAl230/SGLxQK3241CoQC9Xg9nskKk1emQzWZZkBZCoRBU3/NP2GMBgXTTObjSjI1GA8lkEgzDwO/3E4iObXY6nYhEIhCJRHoWcIW6b1pF7egMlYNT7NROUKzU8XX3GJ+3D2E0GgmAm4Zbh2s0mUyIRqMcAGKx+BIlMeSiYu1K/fbEMm4+TaFnJIHrSgZX5TFIZNPo7e1Fj9QOs9kMlUqFaw9pCASCnzwe7x15xG6/rUQiAZ/Px9/5XyhZOMVGKlOdAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
|
||||
html/*\*/>/*/*/body #content a[href*="&database="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKRSURBVDjLhVNLTBNRFD3TTju1FCcBaxuaQEr94ydiZIHGpcFISBOi0YREZWHCVoyRxKUxxq0LXcACQyLsjO6KjSEiDfHDz0S0CLSxlFKd2g7MTDudGd+bMAQCxJucuXfuu+fcO/PeYwzDALVoNMqRuI3guq7rR4g/SEBC/Svxc8T3EUTD4bCGTcZQAUI+RvxLr9d70u/3o6KiAm63G3Qtn89DFEUkk0lks9lRkrvW3t6e2lCgRZFI5F0ikaDtjN1MVVVjYmLCGBoa6qccC7Z1kQafz4f/WSAQAGlyaXOOpQ+SNNUymQxcLhc4joPD4TBzkiRBEASkUimEQiGzdlcBlmWRy+WgKIr5Xi6XUSgUUCwWzTVN+IAzeOOde71orP0eAaOkbrDWf6Cw2+3mBLSYgny3KULXPOUY2BUB/hMd4IOn8XfhMGYjvU+2TECLLRLDMNA0zYw5JYa6Ghke/hyEn9/gZEqo3OuHp7qW3yJgESjoNPSdlb8gWCOCr29BMT0Ip5tBYnIWqlL6o8irzVsEaHcKSqQCen4cweok+FAblNRz2JxlODx1cEkzGWmVbTl7Z/jHhgCF1Z3GYjIKf+U8+ANhQn4Gm6OMUiGI9MhHg5Gl1sbu8UnKNc8B7Ui3ipxEcwvlpVFw6hz2N1xGabkXdqeBYqEOmfefEZWac4e6xz9Z22hbn+BmLBZbi8fjEBdG4NF/QdUDSM88hQ4FawKJR6cxLDZl86qzZdtdoDYwMBAkQg/2LL/ovNLVh++Dd7G0OAau9hTkrKgnnE39GW3f/Z6enpUdBSx7ePu4eq+zi4VNw+TbV0gsxFd5b9X5i4+mpnY63tsErl6okhvrfWzT0SAMR3FMXsnean08Pb/b/fgHqpjCspi90kkAAAAASUVORK5CYII=") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
html/*\*/>/*/*/body #content p a[href*="&schema="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFOSURBVDjLtVK7SgNRED0b9iuM2lr4QK1DQIyk0FZsJAj+gH+ilRZb2NjaRHTLmA9QFKz9huzm7t37Hu+u7IJgQjR6YLjDzOXMmcMERIR5EE5qXA4z4sqACYWEC5wfLQXf/WtMIuDSoL0A7DZDjBj/uYI0l8jzEEJYJMkvCEZM4PqZIxlzpGk+kSCY18TGtGYcx9Tv96dOqBUMBgNyzsFaC621312Ac+59yJFlGRhj5VvVoigKvniglEK32w1mkd3r9ejPPAjOhqdknYX18p1/rzo3pYqTh0OSRkJI5UMgPn4s61sX66SkhtEGcISGsQad5gH2FvehfV5BaIF2cwet5RZyKeu68pe5ubKG7dUNP5AQGltMN57Mosgr5EIiVQmYGvtc1PVicqHY+dXpk8Dg7v22XKFo1ARe9v1bDOlXKKKCs4Sn1xdU1v3vIc2CD3bN4xJjfJWvAAAAAElFTkSuQmCC") no-repeat scroll 2px bottom; padding-left:22px;}
|
||||
|
||||
html/*\*/>/*/*/body #content p a[href*="&sql="] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ5SURBVHjapFNLaxNRFP4mnZmQZtKYpJ2I8ZE0NSbSWKpgBYNUhIJQUDddCaILwb34C0RcCi60vpa14sZFoSjxUWxTFEubFkxf9kFS+7Jp0yQmM5mH905SF9pSwQt3vnPnnvPNd86cA13Xsds+23XKsdMdQx//s0z/6hi54he3e8/0d3ZuK0FTFGhUJkVVhSbLUAiq5IxSCQrBEkGWOu8Lh38HGrlpWnlXCKhNSbZQo3cEE9FomYAuKZstE2wFa8RR1cpKqK2o4JhxmLVJVAlh5Df6IFj5MgENcHq9EAMBg2RucBDVLpdxVon0iXdvIf8sQHRIsNReht3XjI3ZI8iuPAOrkDyorBq3G6vT08ikUuAsFiN46HkXXL56eI41QV1/BMF+GulvCfCMDFvNXtSIHrC0KDTPhXgc7lAQdQ2thk2XIpewnkzCJvTA4T8PabEbfDWD+ZFxyEUdX94sw6QVCkZlxWAQU+8/YGZgALV+v0HgbWmBNzQMR0M7it8fg+HWwQk2cLkkcvJh5NNFsCVJMgq1ubiE5o4OI5CS8FYrya8b9saLKC48gIlTIG/6sBaLw3PpHrTEMrSXr4kPIaAKFkbjSA0PEVuFlB+DO8Ah2HoB8tITVPE6iplDWOn7jLn0CSQevoDV6TI+zEpUASkkZzaTYrLIrH3C/qMCFEbE4th9OEQexfQBrPYP44d+DuY91eBp+1dGgFVIDb729kKpdJfQtIy2yFNMdN/E5McYzAebUEhOYjZuQXaj5+9W/nOYbl9vLN26doOFScVI9BXmZ6dy9jpnpO1O5dfsRtBxxlk4Xu9mT4Z80DkpVlhZvdp+d3RmpyH7JcAAnHiAVYWMsdkAAAAASUVORK5CYII=") no-repeat scroll 2px bottom; padding-left:24px;}
|
||||
|
||||
html/*\*/>/*/*/body table tbody input[name*="check"] {display:block; float:left;}
|
||||
|
||||
html/*\*/>/*/*/body table a[href*="&edit="][href*="&where"] {background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFUSURBVDjLrZM/SAJxGIZdWwuDlnCplkAEm1zkaIiGFFpyMIwGK5KGoK2lphDKkMDg3LLUSIJsSKhIi+684CokOtTiMizCGuzEU5K3vOEgKvtBDe/2Pc8H3x8NAM1fQlx4H9M3pcOWp6TXWmM8A7j0629v1nraiAVC0IrrwATKIgs5xyG5QiE+Z4iQdoeU2oAsnqCSO1NSTu+D9VhqRLD8nIB8F0Q2MgmJDyipCzjvYJkIfpN2UBLG8MpP4dxvQ3ZzGuyyBQ2H+AnOOCBd9aL6soh81A5hyYSGWyCFvxUcerqI4S+CvYVOFPMHxLAq8I3qdHVY5LbBhJzEsCrwutpRFBlUHy6wO2tEYtWAzLELPN2P03kjfj3luqDycV2F8AgefWbEnVqEHa2IznSD6BdsVDNStB0lfh0FPoQjdx8RrAqGzC0YprSgxzsUMOY2bf37N/6Ud1Vc9yYcH50CAAAAAElFTkSuQmCC") no-repeat scroll right bottom; padding-right:18px;}
|
||||
|
||||
html/*\*/>/*/*/body table input + a[href*="&edit="][href*="&where"] {width:0; float:left; display:block; height:16px; overflow:hidden; text-decoration:none; padding:0 0 0 18px; background-position:2px bottom; margin-left:5px;}
|
||||
html/*\*/>/*/*/body table tbody td:first-child {white-space:normal;}
|
||||
html/*\*/>/*/*/body table thead input {margin-right: 5px;}
|
||||
|
||||
html/*\*/>/*/*/body input[name="delete"], html/*\*/>/*/*/body input[name="drop"] {background:transparent url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHSSURBVHjapFM5bsJQEB2zSIDFJrHYpEtyAyoKJAp6CrqIkBPkNDlBAKXjBEgUpKOBCyQNijFiEZvZl8z7wsjESYpkpNFfPO/Nmz9j6Xg80n/M9fWi3W7fMOnd4XAo8qogAbvO5xKvL6lU6s0aL1kVMDjP5ye/36+Gw2FyOp3EQFqtVtTr9WixWHT5/JhOp6s2ghP4ORaLyaFQiGazGa3Xa0HgdrvJ6/WSpmk0Go0MjnvIZDLVM0Gr1brm/WskEkkA3O/3abvdQjq5XC6xgoiVka7rNB6PNT6ns9nsu+OkpODxeBLBYJAGgwHt9/uzQ8Vms6Hdbie+KYqC+ASTFrARBMx2HwgEaDKZiHqn0yktl0uxtzrMMAyKx+MCc+4Cs13hwQCC1GQy+W3Lms2mUIUygbEqEBLNun8z8zswVgUfLO0WD4Z6kekn8/l8okNM8GFVUMYDoVWQ6HA4bEAzoyzL1O12kbRsJajwhYZhiUajJEnShWSAQaqqKnU6HahEGysXg9RoNPJ8+cwZZLSKp47m8/k5Kxzg4XBocNxDLper2ka5Xq+LUeatilahJLN1mEJ+ZDHKJthGAKvVauJnYi9ysHIqQee1xOsLg3/+mf5inwIMAJMhb74NwG5wAAAAAElFTkSuQmCC") no-repeat scroll left center; padding:1px 5px 1px 18px; border:0; cursor:pointer; font-size:.9em;}
|
||||
html/*\*/>/*/*/body input[name="delete"]:hover, html/*\*/>/*/*/body input[name="drop"]:hover {color:red; background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJdSURBVDjLpZP7S1NhGMf9W7YfogSJboSEUVCY8zJ31trcps6zTI9bLGJpjp1hmkGNxVz4Q6ildtXKXzJNbJRaRmrXoeWx8tJOTWptnrNryre5YCYuI3rh+8vL+/m8PA/PkwIg5X+y5mJWrxfOUBXm91QZM6UluUmthntHqplxUml2lciF6wrmdHriI0Wx3xw2hAediLwZRWRkCPzdDswaSvGqkGCfq8VEUsEyPF1O8Qu3O7A09RbRvjuIttsRbT6HHzebsDjcB4/JgFFlNv9MnkmsEszodIIY7Oaut2OJcSF68Qx8dgv8tmqEL1gQaaARtp5A+N4NzB0lMXxon/uxbI8gIYjB9HytGYuusfiPIQcN71kjgnW6VeFOkgh3XcHLvAwMSDPohOADdYQJdF1FtLMZPmslvhZJk2ahkgRvq4HHUoWHRDqTEDDl2mDkfheiDgt8pw340/EocuClCuFvboQzb0cwIZgki4KhzlaE6w0InipbVzBfqoK/qRH94i0rgokSFeO11iBkp8EdV8cfJo0yD75aE2ZNRvSJ0lZKcBXLaUYmQrCzDT6tDN5SyRqYlWeDLZAg0H4JQ+Jt6M3atNLE10VSwQsN4Z6r0CBwqzXesHmV+BeoyAUri8EyMfi2FowXS5dhd7doo2DVII0V5BAjigP89GEVAtda8b2ehodU4rNaAW+dGfzlFkyo89GTlcrHYCLpKD+V7yeeHNzLjkp24Uu1Ed6G8/F8qjqGRzlbl2H2dzjpMg1KdwsHxOlmJ7GTeZC/nesXbeZ6c9OYnuxUc3fmBuFft/Ff8xMd0s65SXIb/gAAAABJRU5ErkJggg==")}
|
||||
|
||||
.logout {font-size: 8pt !important;}
|
||||
#logout{ height:17px; border: none; background: transparent url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJHSURBVDjLlZPNi81hFMc/z7137p1mTCFvNZfGSzLIWNjZKRvFRoqNhRCSYm8xS3+AxRRZ2JAFJWJHSQqTQkbEzYwIM+6Yid/znJfH4prLXShOnb6r8/nWOd8Tcs78bz0/f+KMu50y05nK/wy+uHDylbutqS5extvGcxaWqtoGDA8PZ3dnrs2srQc2Zko41UXLmLdyDW5OfvsUkUgbYGbU63UAQggdmvMzFmzZCgTi7CQmkZwdEaX0JwDgTnGbTCaE0G4zw80omhPI92lcEtkNkdgJCCHwJX7mZvNaB0A14SaYJlwTrpHsTkoFlV1nt2c3x5YYo1/vM9A/gKpxdfwyu/v3teCayKq4JEwT5EB2R6WgYmrs2bYbcUNNUVfEhIfFYy69uci+1fuRX84mkawFSxd/4nVWUopUVIykwlQxRTJBTIDA4Pp1jBZPuNW4wUAPmCqWIn29X1k4f5Ku8g9mpKCkakRLVEs1auVuauVuyqHMo8ejNCe+sWPVTkQKXCMmkeZUmUZjETF1tc6ooly+fgUVw9So1/tRN6YnZji46QghBFKKuAouERNhMlbAHZFE6e7pB+He8MMw+GGI4xtOMf1+lsl3TQ4NHf19BSlaO1DB9BfMHdX0O0iqSgiBbJkjm491hClJbA1LxCURgpPzXwAHhg63necAIi3XngXLcRU0fof8ETMljIyM5LGxMcbHxzvy/6fuXdWgt6+PWncv1e4euqo1ZmabvHs5+jn8yzufO7hiiZmuNpNBM13rbvVSpbrXJE7/BMkHtU9jFIC/AAAAAElFTkSuQmCC") no-repeat center left; overflow: hidden; text-indent: 18px; line-height: 0px; cursor:pointer; margin-left:6px; color: #21759B; text-decoration: underline;}
|
||||
#logout:hover {text-decoration: none; color: #D54E21;}
|
||||
#logins a, #tables a {background: none repeat scroll 0 0 transparent;}
|
||||
/*body {margin: 0; line-height: 1.25em; font-size: 13px; background: #F9F9F9;}*/
|
||||
body {margin: 0; line-height: 1.25em; font-size: 13px; background: #110236; color: #fff;}
|
||||
body, select, option, optgroup, button {font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;} /* IE6 */
|
||||
input[type='submit'], input[type='reset'], input[type='button'], input[type='file'] {font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;}
|
||||
input, textarea, pre, code, samp, kbd, var {font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; font-size: 12px;}
|
||||
/*a {color: #21759B;}
|
||||
a:visited {color: #21759B;}
|
||||
a:hover {text-decoration: none; color: #D54E21;}*/
|
||||
a {color: #F1E5B3;}
|
||||
a:visited {color: #F1E5B3;}
|
||||
a:hover {text-decoration: none; color: #D68D20;}
|
||||
form {margin: 0;}
|
||||
table {margin: 10px 12px 12px 0; border: 1px #BBB solid; font-size: 90%;}
|
||||
th {text-align: left;}
|
||||
/*td, th {background-color: #fff; padding: 4px 6px; border: 1px #DfDfDf solid; border-width: 1px 0 0 1px;}*/
|
||||
td, th {background-color: #1D294D; padding: 4px 6px; border: 1px #DfDfDf solid; border-width: 1px 0 0 1px;}
|
||||
tr:first-child td, tr:first-child th {border-top-width: 0;}
|
||||
tr:first-child th {padding-right: 30px;}
|
||||
td:first-child, th:first-child {border-left-width: 0;}
|
||||
/*thead td, thead th {background-color: #DFDFDF; border: none; border-bottom: 1px #BBB solid;}*/
|
||||
thead td, thead th {background-color: #110236; border: none; border-bottom: 1px #BBB solid;}
|
||||
thead tr:hover td, thead tr:hover th {background-color: #110236 !important;}
|
||||
/*tr:nth-child(2n) td, tr:nth-child(2n) th, .odd td, .odd th, tr.odd {background-color: #F1F1F1;}*/
|
||||
tr:nth-child(2n) td, tr:nth-child(2n) th, .odd td, .odd th, tr.odd {background-color: #49526D;}
|
||||
/*tr:hover td, tr:hover th {background-color: #BCD;}*/
|
||||
tr:hover td, tr:hover th {background-color: red; /* #3D4E80;*/}
|
||||
/*fieldset {display: inline; vertical-align: top; padding: 2px 12px; margin: 25px 12px 12px 0; border: none; background-color: #F1F1F1; border: 1px solid #E3E3E3; position: relative; padding-top: 14px;}*/
|
||||
fieldset {display: inline; vertical-align: top; padding: 2px 12px; margin: 25px 12px 12px 0; border: none; background-color: #1D294D; border: 1px solid #E3E3E3; position: relative; padding-top: 14px;}
|
||||
fieldset, x:-moz-any-link {padding-top: 4px;}
|
||||
fieldset {%padding-top: 14px;}
|
||||
legend {font-weight: 900; color: #fff; position: absolute; top: -1.666em; left: -1em; padding: 0 4px;}
|
||||
input[name='limit'], input[name*='length'] {width: 3em; xtext-align: right;}
|
||||
input[name='text_length'] {width: 5em;}
|
||||
select + input, select + select {margin-left: 2px;}
|
||||
/*textarea, input, select {border-width: 1px; border-style: solid; -moz-border-radius: 4px; -khtml-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border-color: #DFDFDF;}*/
|
||||
textarea, input, select {border-width: 1px; border-style: solid; -moz-border-radius: 4px; -khtml-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border-color: #5C5C5C; background-color: #49526D; color: #ccc}
|
||||
input[type="checkbox"], input[type="radio"], input[type="image"] {border: 0 none;}
|
||||
/*input[type=button], input[type=submit] {border-color: #bbb; color: #464646;}*/
|
||||
input[type=button], input[type=submit] {border-color: #999; color: #fff;}
|
||||
/*input[type=button]:hover, input[type=submit]:hover {color: #fff; border-color: #666;}*/
|
||||
input[type=button]:hover, input[type=submit]:hover {color: #fff; border-color: #fff; background-color:#49526D;}
|
||||
input[type=button], input[type=submit] {text-decoration: none; font-size: 11px !important; line-height: 14px; padding: 2px 8px; cursor: pointer; border-width: 1px; border-style: solid; -moz-border-radius: 11px; -khtml-border-radius: 11px; -webkit-border-radius: 11px; border-radius: 11px; -moz-box-sizing: content-box; -webkit-box-sizing: content-box; -khtml-box-sizing: content-box; box-sizing: content-box;background-color:#49526D;}
|
||||
input + label input, select + label input {margin-left: 4px;}
|
||||
td input[type='checkbox']:first-child, td input[type='radio']:first-child {margin-left: 2px;}
|
||||
label:hover {text-decoration: underline;}
|
||||
fieldset div {margin-bottom: 2px;}
|
||||
input[name='Comment'] { /* !!! */ width: 24em;}
|
||||
input[name='Auto_increment'] { /* !!! */width: 6em;}
|
||||
img {vertical-align: middle; margin: 0; padding: 0;}
|
||||
.error {padding: 8px; color: red; background-color: #FEE;}
|
||||
/*.message {padding: 8px; background-color: #DDD;}*/
|
||||
.message {padding: 8px; background-color: #49526D;}
|
||||
.char {color: #070;}
|
||||
.date {color: #707;}
|
||||
.enum {color: #077;}
|
||||
.binary {color: red;}
|
||||
/*.jush-sql {padding: 2px 4px; margin-right: 4px; outline: 1px #BBB dashed; font-size: 9pt;}*/
|
||||
.jush-sql {padding: 2px 4px; margin-right: 4px; font-size: 9pt;background-color:#49526D;}
|
||||
.jush a {
|
||||
color: #B4D5FF !important;
|
||||
}
|
||||
.jush, .jush-bac {
|
||||
color: #fff;
|
||||
}
|
||||
#content {margin: 2px 0 0 300px; padding: 10px 20px 20px 0;}
|
||||
#lang {height: 23px; width: 250px; display: block; padding: 1px 10px; position: absolute; top: 0; left: 0; text-align: center; background-color: #f1f1f1; border: 1px solid #E3E3E3; line-height: 1.25em;}
|
||||
#lang select {font-size: 8pt;}
|
||||
/*#breadcrumb {margin: 0; height: 21px; display: block; position: absolute; top: 0; left: 300px; background-color: #f1f1f1; border: 1px solid #E3E3E3; padding: 2px 12px; line-height: 1.25em }
|
||||
#menu {position: absolute; padding: 10px; margin: 0; top: 28px; left: 0; width: 250px; background-color: #f1f1f1; border: 1px solid #E3E3E3;}*/
|
||||
#breadcrumb {margin: 0; height: 21px; display: block; position: absolute; top: 0; left: 300px; background-color: #000; border: 1px solid #E3E3E3; padding: 2px 12px; line-height: 1.25em; color:#ccc; }
|
||||
#breadcrumb a {
|
||||
color:red;
|
||||
}
|
||||
#menu {position: absolute; padding: 10px; margin: 0; top: 28px; left: 0; width: 250px; background-color: #110236; border: 1px solid #E3E3E3;}
|
||||
#menu form {margin: 0;}
|
||||
#menu p {padding-left: 8px; font-size: 10pt; border-bottom: none;}
|
||||
#menu form p {padding-left: 0; text-align: left;}
|
||||
h1 .h1:hover {text-decoration: underline;}
|
||||
/*h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 14px 15px 3px 10px; line-height: 35px; text-shadow: rgba(255,255,255,1) 0 1px 0px; background: none;}*/
|
||||
h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 14px 15px 3px 10px; line-height: 35px; /*text-shadow: rgba(185,185,185,1) 0 1px 0px;*/ background: none;color:#A3A3A3}
|
||||
h1 {font-size: 12px;}
|
||||
h1 .h1 {font-size: 12px;}
|
||||
h2 {padding: 22px 0 0 10px;}
|
||||
h3 {margin: 40px 0 0; font-weight: 400; font-size: 130%;}
|
||||
#schema {margin: 1.5em 0 0 220px; position: relative;}
|
||||
/*#schema .table {border: 1px solid #E3E3E3; background-color: #F1F1F1; padding: 0 2px; cursor: move; position: absolute;}*/
|
||||
#schema .table {border: 1px solid #E3E3E3; background-color: #110236; padding: 0 2px; cursor: move; position: absolute;}
|
||||
#schema .references {position: absolute;}
|
||||
.js .hidden {display: inline;}
|
||||
.js td.hidden, .js input.hidden {display: none;}
|
||||
legend a {color: #F1E5B3; text-decoration: none; cursor: default;}
|
||||
legend a:hover {color: #333;}
|
||||
code {background: transparent;}
|
||||
fieldset, legend, h2, table, .error, .message {-moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px;border-radius: 5px;}
|
||||
#breadcrumb, #lang, #menu {-moz-border-radius-bottomright: 5px; -khtml-border-bottom-right-radius: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px;}
|
||||
#breadcrumb {-moz-border-radius-bottomleft: 5px; -khtml-border-bottom-left-radius: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px;}
|
||||
#menu {-moz-border-radius-topright: 5px; -khtml-border-top-right-radius: 5px; -webkit-border-top-right-radius: 5px; border-bottom-top-radius: 5px;}
|
||||
#loader {margin-left: 35px;}
|
||||
|
||||
/*custom*/
|
||||
.js .checked td,.js .checked th, .js .checkable .checked td, .js .checkable .checked th{
|
||||
background:#5A3901;
|
||||
}
|
||||
tbody tr:hover td,tbody tr:hover th{
|
||||
background:#333333;
|
||||
}
|
||||
.js .column {
|
||||
background: none repeat scroll 0 0 #110236;
|
||||
margin-top: -0.3em;
|
||||
padding: 0.3em 1ex 0.3em 0;
|
||||
position: absolute;
|
||||
}
|
||||
.js:hover .column:hover {
|
||||
background: none repeat scroll 0 0 #110236;
|
||||
}
|
||||
|
||||
#content pre {background-color:#49526D}
|
||||
|
||||
#lang{background:#110236;}
|
||||
|
||||
.pages {background:#43486F;}
|
||||
.pages {background:#999671;}
|
||||
.pages {background:#817F5A;}
|
||||
|
||||
#logins a:hover, #tables a[title]:hover, #tables a.active, #tables a.select:hover + a, #tables a.select.active + a {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.footer, .footer>div {
|
||||
background-color: #49526D;
|
||||
opacity: .9;
|
||||
}
|
||||
.footer {
|
||||
border-image: none;
|
||||
padding: 30px 12px 0px;
|
||||
border: 1px #BBB solid;
|
||||
margin: 12px -20px 12px -1px;
|
||||
margin-right: none;
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
/*
|
||||
|
||||
|
||||
VERSION: adminer-theme-mancave2-2.1.alpha
|
||||
|
||||
|
||||
AUTHORS: panreach@gmail.com, dev@monolithforge.com //NOTE: CREDITS below that we stole from ;-)
|
||||
|
||||
|
||||
LICENSE: www.adminer.org
|
||||
|
||||
NOTES:
|
||||
|
||||
NOTES:
|
||||
This (mancave-2.0-alpha) theme still needs some debugging! ;/
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
@@ -240,13 +240,17 @@ h1{
|
||||
padding: 0 18px;
|
||||
border-bottom: 1px solid #444;
|
||||
font-weight: bold;
|
||||
height: 70px;
|
||||
line-height: 70px;
|
||||
color: #555;
|
||||
background: none;
|
||||
position: relative;
|
||||
top: 12px;
|
||||
}
|
||||
|
||||
h2{
|
||||
font-size: 24px;
|
||||
margin: 0;
|
||||
font-size: 24px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-left: 50px;
|
||||
border-bottom: 1px solid #333;
|
||||
@@ -257,7 +261,7 @@ h2{
|
||||
line-height: 77px;
|
||||
}
|
||||
|
||||
h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 40px 15px 3px 10px; line-height: 35px; /*text-shadow: rgba(185,185,185,1) 0 1px 0px;*/ background: none;color:#A3A3A3}
|
||||
h1, h2 {font: italic normal normal 24px/29px Georgia, "Times New Roman", "Bitstream Charter", Times, serif; margin: 0; padding: 32px 15px 3px 10px; line-height: 35px; /*text-shadow: rgba(185,185,185,1) 0 1px 0px;*/ background: none;color:#A3A3A3}
|
||||
|
||||
h3{
|
||||
font-weight: bold;
|
||||
@@ -358,6 +362,7 @@ th{
|
||||
position: relative;
|
||||
background: #110236;
|
||||
font-weight: normal;
|
||||
width: 17%;
|
||||
border-left: 5px solid #777;
|
||||
border-bottom: 1px solid #777;
|
||||
color: #eee;
|
||||
@@ -451,13 +456,13 @@ textarea
|
||||
}
|
||||
|
||||
textarea, input, select {
|
||||
border-width: 1px;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border-color: #5C5C5C;
|
||||
background-color: #49526D;
|
||||
border-width: 1px;
|
||||
-moz-border-radius: 4px;
|
||||
-khtml-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
border-color: #5C5C5C;
|
||||
background-color: #49526D;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
@@ -542,7 +547,7 @@ input[type='radio']{
|
||||
height: 18px;
|
||||
vertical-align: middle;
|
||||
margin-left: 8px;
|
||||
margin-right: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* checkbox */
|
||||
@@ -629,7 +634,7 @@ label input {
|
||||
|
||||
/* submit */
|
||||
input[type='submit']{
|
||||
color: #999;
|
||||
color: #999;
|
||||
background-color: #110236;
|
||||
padding: 0 25px;
|
||||
margin-right: 20px;
|
||||
@@ -756,8 +761,9 @@ legend{
|
||||
}
|
||||
|
||||
/* db select */
|
||||
#dbs {
|
||||
padding-left: 18px !important;
|
||||
#dbs select{
|
||||
width: 228px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
/* links */
|
||||
@@ -863,17 +869,17 @@ legend{
|
||||
}
|
||||
|
||||
#breadcrumb {
|
||||
margin: 0;
|
||||
height: 21px;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
margin: 0;
|
||||
height: 21px;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 300px;
|
||||
background-color: #000;
|
||||
border: 1px dashed #ccc;
|
||||
background-color: #000;
|
||||
border: 1px dashed #ccc;
|
||||
border-top:0;
|
||||
padding: 2px 12px 24px 12px;
|
||||
line-height: 1.5em;
|
||||
padding: 2px 12px 24px 12px;
|
||||
line-height: 1.5em;
|
||||
color:#800000;
|
||||
z-index:5000;
|
||||
}
|
||||
@@ -1073,14 +1079,14 @@ body > form{
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
margin: 0;
|
||||
height: 21px;
|
||||
display: block;
|
||||
background-color: #110236;
|
||||
border: 1px dashed #ccc;
|
||||
margin: 0;
|
||||
height: 21px;
|
||||
display: block;
|
||||
background-color: #110236;
|
||||
border: 1px dashed #ccc;
|
||||
border-top:0;
|
||||
padding: 2px 12px 36px 12px;
|
||||
line-height: 1.5em;
|
||||
padding: 2px 12px 36px 12px;
|
||||
line-height: 1.5em;
|
||||
color:#ccc;
|
||||
z-index:5000;
|
||||
}
|
||||
@@ -1090,14 +1096,14 @@ body > form{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 140px;
|
||||
margin: 0;
|
||||
height: 21px;
|
||||
display: block;
|
||||
background-color: #110236;
|
||||
border: 1px dashed #ccc;
|
||||
margin: 0;
|
||||
height: 21px;
|
||||
display: block;
|
||||
background-color: #110236;
|
||||
border: 1px dashed #ccc;
|
||||
border-top:0;
|
||||
padding: 2px 12px 36px 12px;
|
||||
line-height: 1.5em;
|
||||
padding: 2px 12px 36px 12px;
|
||||
line-height: 1.5em;
|
||||
color:#ccc;
|
||||
z-index:5000;
|
||||
|
||||
@@ -1173,7 +1179,7 @@ p#tables a.select::before {
|
||||
/* edit row */
|
||||
html/*\*/>/*/*/body table input + a[href*="&edit="][href*="&where"] {
|
||||
content: '';
|
||||
width:18px;
|
||||
width:18px;
|
||||
vertical-align:middle;
|
||||
display:inline-block;
|
||||
overflow:hidden;
|
||||
|
||||
@@ -403,6 +403,14 @@ tr.odd td {
|
||||
color: #090;
|
||||
}
|
||||
|
||||
.js .hidden {
|
||||
display: initial;
|
||||
}
|
||||
|
||||
.js input.hidden, .js td.hidden {
|
||||
display: none
|
||||
}
|
||||
|
||||
.logout {
|
||||
top: 28px;
|
||||
}
|
||||
@@ -526,13 +534,13 @@ table tbody input ~ a[href*="&edit="][href*="&where"] {
|
||||
}
|
||||
|
||||
#lang {
|
||||
position: fixed;
|
||||
line-height: 1;
|
||||
font-size: 11px;
|
||||
left: auto;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: calc(100% - 20rem + 3px);
|
||||
color: #fff;
|
||||
right: 0;
|
||||
width: auto;
|
||||
line-height: 1;
|
||||
left: initial;
|
||||
font-size: 11px
|
||||
}
|
||||
|
||||
#lang select {
|
||||
@@ -589,6 +597,7 @@ table tbody input ~ a[href*="&edit="][href*="&where"] {
|
||||
background: inherit;
|
||||
color: #fff;
|
||||
padding: 3px;
|
||||
width: 15rem;
|
||||
}
|
||||
|
||||
#menu select option {
|
||||
@@ -605,32 +614,10 @@ table tbody input ~ a[href*="&edit="][href*="&where"] {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tables-filter {
|
||||
padding: .8em .5em;
|
||||
}
|
||||
|
||||
.tables-filter input {
|
||||
color: #fff;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.tables-filter input::placeholder {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#logins a, #tables a {
|
||||
background: 0 0
|
||||
}
|
||||
|
||||
.logout {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
z-index: 5;
|
||||
color: #fff;
|
||||
margin: 2px 8px;
|
||||
}
|
||||
|
||||
#logout {
|
||||
color: #fff;
|
||||
text-decoration: none
|
||||
|
||||
@@ -22,7 +22,7 @@ a, a:visited {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover, a:link:hover {
|
||||
a:hover {
|
||||
background-color: #006AEB !important;
|
||||
border-bottom: 1px solid #006AEB;
|
||||
color: #FFF;
|
||||
@@ -294,6 +294,7 @@ table code {
|
||||
border: none;
|
||||
margin: 0 0 4px;
|
||||
padding: 0 0 4px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#breadcrumb {
|
||||
@@ -382,7 +383,7 @@ a[href$="dump="] {
|
||||
}
|
||||
|
||||
select[name="db"] {
|
||||
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEYSURBVBgZBcHPio5hGAfg6/2+R980k6wmJgsJ5U/ZOAqbSc2GnXOwUg7BESgLUeIQ1GSjLFnMwsKGGg1qxJRmPM97/1zXFAAAAEADdlfZzr26miup2svnelq7d2aYgt3rebl585wN6+K3I1/9fJe7O/uIePP2SypJkiRJ0vMhr55FLCA3zgIAOK9uQ4MS361ZOSX+OrTvkgINSjS/HIvhjxNNFGgQsbSmabohKDNoUGLohsls6BaiQIMSs2FYmnXdUsygQYmumy3Nhi6igwalDEOJEjPKP7CA2aFNK8Bkyy3fdNCg7r9/fW3jgpVJbDmy5+PB2IYp4MXFelQ7izPrhkPHB+P5/PjhD5gCgCenx+VR/dODEwD+A3T7nqbxwf1HAAAAAElFTkSuQmCC") no-repeat scroll left center white;
|
||||
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEYSURBVBgZBcHPio5hGAfg6/2+R980k6wmJgsJ5U/ZOAqbSc2GnXOwUg7BESgLUeIQ1GSjLFnMwsKGGg1qxJRmPM97/1zXFAAAAEADdlfZzr26miup2svnelq7d2aYgt3rebl585wN6+K3I1/9fJe7O/uIePP2SypJkiRJ0vMhr55FLCA3zgIAOK9uQ4MS361ZOSX+OrTvkgINSjS/HIvhjxNNFGgQsbSmabohKDNoUGLohsls6BaiQIMSs2FYmnXdUsygQYmumy3Nhi6igwalDEOJEjPKP7CA2aFNK8Bkyy3fdNCg7r9/fW3jgpVJbDmy5+PB2IYp4MXFelQ7izPrhkPHB+P5/PjhD5gCgCenx+VR/dODEwD+A3T7nqbxwf1HAAAAAElFTkSuQmCC") no-repeat scroll 90% center white;
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
@@ -412,11 +413,6 @@ select[name="db"] option {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.tables-filter {
|
||||
padding: 0;
|
||||
margin: 8px 0;
|
||||
}
|
||||
|
||||
a[href*="&create="] {
|
||||
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ6SURBVDjLpZNZSNRRGMV//2XGsjFrMg2z0so2K21xIFpepYUiAsGIICLffI8eWiBBeg3qQV+KwBYKLB8qpHUmrahcKLc0QsxldNSxdPz/79LD1ChBUXTh8sG93POdc75zDa01/7NsgGvPR09rzQmpVZZSCqlAKIWUCqk0QqoZWyKFRir1uvxIbsAGUFqXHQqkpP1L57M3Pm5MMJBKpQHUdF9BKIGQAlcJXOlOVykSdye3leO6MmkGQNyHw+uO/1X3bzGBK+S0B1IqAKqDg3986HeCZPffwvJtoNT7lOZLvUdtAPEDAKBkRzo3QwMUb89InN1uGGD3spdE214xe8MRUnM2MfppNW0Pqy7YAK5UKK2xLbhdP4hlmdxpGMQwwQT8ziNiI534c7cT6WrFazikzF2Eb8HS1IQEDdiWwcHAQmpehTkQSAcgNvSMiYFW5uUUMdV3HW+ywefGNqITJsbUUL75k4FWYJtQ+yaMZcXrk1ANk/33mbdiD7EvlRieETy+FJLkMFcjRRSW3emIAwiF1hqPBfu2LGSWbbA1uZ41SfWkrtxPrPcypsfFiWYzFGzGKTjFV28WEJeIUHETLdOgrmkI1VdHpCdEet5enP4qLK9mKrqMgedv6cyrAP+qxOTiUxAi7oEJi8frELoFoTLpa7nI/HQvscgSRt+0kV1SSW7qYtp7xrBMphm4Mi5h/VIfTcEq1u0oJaknSEdNiMYHET7UvcMpPEN31Ed7zxgASmk1I0g6dK66s8CRak5mVxjnfS05+TsZCw/T9baTx1nnGb47DrQksjE6HrsHYPz6nYt3+Sc3L8+wA2tz0J6pF5OD4WP7Kpq7f5fO79DfSxjdtCtDAAAAAElFTkSuQmCC") no-repeat scroll 2px center;
|
||||
padding-left: 22px;
|
||||
@@ -549,11 +545,6 @@ input[name="delete"]:hover, input[name="drop"]:hover {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.logout {
|
||||
color: #fff;
|
||||
margin-top: 0.7em;
|
||||
}
|
||||
|
||||
#logout {
|
||||
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJHSURBVDjLlZPNi81hFMc/z7137p1mTCFvNZfGSzLIWNjZKRvFRoqNhRCSYm8xS3+AxRRZ2JAFJWJHSQqTQkbEzYwIM+6Yid/znJfH4prLXShOnb6r8/nWOd8Tcs78bz0/f+KMu50y05nK/wy+uHDylbutqS5extvGcxaWqtoGDA8PZ3dnrs2srQc2Zko41UXLmLdyDW5OfvsUkUgbYGbU63UAQggdmvMzFmzZCgTi7CQmkZwdEaX0JwDgTnGbTCaE0G4zw80omhPI92lcEtkNkdgJCCHwJX7mZvNaB0A14SaYJlwTrpHsTkoFlV1nt2c3x5YYo1/vM9A/gKpxdfwyu/v3teCayKq4JEwT5EB2R6WgYmrs2bYbcUNNUVfEhIfFYy69uci+1fuRX84mkawFSxd/4nVWUopUVIykwlQxRTJBTIDA4Pp1jBZPuNW4wUAPmCqWIn29X1k4f5Ku8g9mpKCkakRLVEs1auVuauVuyqHMo8ejNCe+sWPVTkQKXCMmkeZUmUZjETF1tc6ooly+fgUVw9So1/tRN6YnZji46QghBFKKuAouERNhMlbAHZFE6e7pB+He8MMw+GGI4xtOMf1+lsl3TQ4NHf19BSlaO1DB9BfMHdX0O0iqSgiBbJkjm491hClJbA1LxCURgpPzXwAHhg63necAIi3XngXLcRU0fof8ETMljIyM5LGxMcbHxzvy/6fuXdWgt6+PWncv1e4euqo1ZmabvHs5+jn8yzufO7hiiZmuNpNBM13rbvVSpbrXJE7/BMkHtU9jFIC/AAAAAElFTkSuQmCC") no-repeat scroll left center;
|
||||
border: none;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user