mirror of
https://github.com/vrana/adminer.git
synced 2026-03-25 14:00:05 +01:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5754b32693 | ||
|
|
11234ef939 | ||
|
|
e5e9b3a04d | ||
|
|
45c7082373 | ||
|
|
8fa7dedc4b | ||
|
|
f1c8f8532e | ||
|
|
00323425cb | ||
|
|
3d882578df | ||
|
|
318e304c7e | ||
|
|
50852b9036 | ||
|
|
c30f6227a2 | ||
|
|
a417a21ba6 | ||
|
|
fb1b76e411 | ||
|
|
38a937d966 | ||
|
|
f0142f0b8e | ||
|
|
cf1454f7a9 | ||
|
|
c0350d8893 | ||
|
|
1ac40e0c2b |
14
CHANGELOG.md
14
CHANGELOG.md
@@ -1,3 +1,17 @@
|
||||
## Adminer dev
|
||||
- Tables overview: allow sorting (bug #1231)
|
||||
- Select: Disable Ctrl+click inline edit without UPDATE privilege
|
||||
- Select: Display NULL in column title
|
||||
- Export: Remember unchecked objects (regression from 5.0.6)
|
||||
- Foreign key: Display new field in case of an error
|
||||
- PostgreSQL: Order NULL last
|
||||
- PostgreSQL: Display all SQL command warnings and only once
|
||||
- PostgreSQL: Export serial as serial, not nextval()
|
||||
- PostgreSQL: Export schema in nextval()
|
||||
- PostgreSQL: Export schema in REFERENCES
|
||||
- Editor: Display tinyint(1) as checkbox (bug #1246, regression from 5.4.2)
|
||||
- Croatian translation
|
||||
|
||||
## Adminer 5.4.2 (released 2026-02-08)
|
||||
- Avoid denial-of-service via version check (GHSA-q4f2-39gr-45jh, regression from 4.6.2)
|
||||
- Pretty print JSON in edit
|
||||
|
||||
@@ -38,7 +38,7 @@ if ($tables_views && !$error && !$_POST["search"]) {
|
||||
} elseif (JUSH != "sql") {
|
||||
$result = (JUSH == "sqlite"
|
||||
? queries("VACUUM")
|
||||
: apply_queries("VACUUM" . ($_POST["optimize"] ? "" : " ANALYZE"), $_POST["tables"])
|
||||
: apply_queries("VACUUM" . ($_POST["optimize"] ? " ANALYZE" : ""), $_POST["tables"])
|
||||
);
|
||||
$message = lang('Tables have been optimized.');
|
||||
} elseif (!$_POST["tables"]) {
|
||||
@@ -49,15 +49,16 @@ if ($tables_views && !$error && !$_POST["search"]) {
|
||||
}
|
||||
}
|
||||
|
||||
queries_redirect(substr(ME, 0, -1), $message, $result);
|
||||
queries_redirect($_SERVER["REQUEST_URI"], $message, $result);
|
||||
}
|
||||
|
||||
page_header(($_GET["ns"] == "" ? lang('Database') . ": " . h(DB) : lang('Schema') . ": " . h($_GET["ns"])), $error, true);
|
||||
|
||||
if (adminer()->homepage()) {
|
||||
if ($_GET["ns"] !== "") {
|
||||
$order = $_GET["order"];
|
||||
echo "<h3 id='tables-views'>" . lang('Tables and views') . "</h3>\n";
|
||||
$tables_list = tables_list();
|
||||
$tables_list = ($order ? table_status() : tables_list());
|
||||
if (!$tables_list) {
|
||||
echo "<p class='message'>" . lang('No tables.') . "\n";
|
||||
} else {
|
||||
@@ -79,7 +80,7 @@ if (adminer()->homepage()) {
|
||||
echo script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});");
|
||||
echo '<thead><tr class="wrap">';
|
||||
echo '<td><input id="check-all" type="checkbox" class="jsonly">' . script("qs('#check-all').onclick = partial(formCheck, /^(tables|views)\[/);", "");
|
||||
echo '<th>' . lang('Table');
|
||||
echo '<th><a href="' . h(substr(ME, 0, -1)) . '">' . lang('Table') . '</a>';
|
||||
$columns = array("Engine" => array(lang('Engine') . doc_link(array('sql' => 'storage-engines.html'))));
|
||||
if (collations()) {
|
||||
$columns["Collation"] = array(lang('Collation') . doc_link(array('sql' => 'charset-charsets.html', 'mariadb' => 'supported-character-sets-and-collations/')));
|
||||
@@ -98,27 +99,40 @@ if (adminer()->homepage()) {
|
||||
if (support("comment")) {
|
||||
$columns["Comment"] = array(lang('Comment') . doc_link(array('sql' => 'show-table-status.html', 'pgsql' => 'functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE')));
|
||||
}
|
||||
foreach ($columns as $column) {
|
||||
echo "<td>$column[0]";
|
||||
foreach ($columns as $key => $column) {
|
||||
echo "<th><a href='" . h(ME) . "order=$key'>$column[0]</a>";
|
||||
}
|
||||
echo "</thead>\n";
|
||||
|
||||
if ($order) {
|
||||
uasort($tables_list, function ($a, $b) use ($order) {
|
||||
$return = ($a[$order] < $b[$order] ? -1 : ($a[$order] > $b[$order] ? 1 : 0)); // <=> available since PHP 7.1
|
||||
return (in_array($order, array('Engine', 'Collation', 'Comment')) ? $return : -$return);
|
||||
});
|
||||
}
|
||||
|
||||
$tables = 0;
|
||||
foreach ($tables_list as $name => $type) {
|
||||
$view = ($type !== null && !preg_match('~table|sequence~i', $type));
|
||||
foreach ($tables_list as $name => $status) {
|
||||
$view = ($order ? is_view($status) : $status !== null && !preg_match('~table|sequence~i', $status));
|
||||
$status = ($order ? $status : array('Engine' => $status));
|
||||
$id = h("Table-" . $name);
|
||||
echo '<tr><td>' . checkbox(($view ? "views[]" : "tables[]"), $name, in_array("$name", $tables_views, true), "", "", "", $id); // "$name" to check numeric table names
|
||||
echo '<th>' . (support("table") || support("indexes") ? "<a href='" . h(ME) . "table=" . urlencode($name) . "' title='" . lang('Show structure') . "' id='$id'>" . h($name) . '</a>' : h($name));
|
||||
if ($view && !preg_match('~materialized~i', $type)) {
|
||||
if ($view && !preg_match('~materialized~i', $status['Engine'])) {
|
||||
$title = lang('View');
|
||||
echo '<td colspan="6">' . (support("view") ? "<a href='" . h(ME) . "view=" . urlencode($name) . "' title='" . lang('Alter view') . "'>$title</a>" : $title);
|
||||
echo '<td colspan="' . (count($columns) - 2) . '">' . (support("view") ? "<a href='" . h(ME) . "view=" . urlencode($name) . "' title='" . lang('Alter view') . "'>$title</a>" : $title);
|
||||
echo '<td align="right"><a href="' . h(ME) . "select=" . urlencode($name) . '" title="' . lang('Select data') . '">?</a>';
|
||||
echo '<td>' . h($status['Comment']);
|
||||
} else {
|
||||
foreach ($columns as $key => $column) {
|
||||
$id = " id='$key-" . h($name) . "'";
|
||||
$val = idx($status, $key, '?');
|
||||
echo ($column[1]
|
||||
? "<td align='right'><a href='" . h(ME . "$column[1]=") . urlencode($name) . "'$id title='$column[2]'>?</a>"
|
||||
: "<td id='$key-" . h($name) . "'>"
|
||||
? "<td align='right'><a href='" . h(ME . "$column[1]=") . urlencode($name) . "'$id title='$column[2]'>" . (is_numeric($val)
|
||||
? ($val < 0 ? '?' : ($key == "Rows" && $val && $status["Engine"] == (JUSH == "pgsql" ? "table" : "InnoDB") ? '~ ' : '') . format_number($val))
|
||||
: $val
|
||||
) . "</a>"
|
||||
: "<td id='$key-" . h($name) . "'>" . h($val)
|
||||
);
|
||||
}
|
||||
$tables++;
|
||||
@@ -128,18 +142,18 @@ if (adminer()->homepage()) {
|
||||
|
||||
echo "<tr><td><th>" . lang('%d in total', count($tables_list));
|
||||
echo "<td>" . h(JUSH == "sql" ? get_val("SELECT @@default_storage_engine") : "");
|
||||
echo "<td>" . h(db_collation(DB, collations()));
|
||||
echo (collations() ? "<td>" . h(db_collation(DB, collations())) : '');
|
||||
foreach (array("Data_length", "Index_length", "Data_free") as $key) {
|
||||
echo ($columns[$key] ? "<td align='right' id='sum-$key'>" : "");
|
||||
}
|
||||
echo "\n";
|
||||
|
||||
echo "</table>\n";
|
||||
echo script("ajaxSetHtml('" . js_escape(ME) . "script=db');");
|
||||
echo ($order ? '' : script("ajaxSetHtml('" . js_escape(ME) . "script=db');"));
|
||||
echo "</div>\n";
|
||||
if (!information_schema(DB)) {
|
||||
$vacuum = "<input type='submit' value='" . lang('Vacuum') . "'> " . on_help("'VACUUM'");
|
||||
$optimize = "<input type='submit' name='optimize' value='" . lang('Optimize') . "'> " . on_help(JUSH == "sql" ? "'OPTIMIZE TABLE'" : "'VACUUM OPTIMIZE'");
|
||||
$optimize = "<input type='submit' name='optimize' value='" . lang('Optimize') . "'> " . on_help(JUSH == "sql" ? "'OPTIMIZE TABLE'" : "'VACUUM ANALYZE'");
|
||||
$print = (JUSH == "sqlite" ? $vacuum . "<input type='submit' name='check' value='" . lang('Check') . "'> " . on_help("'PRAGMA integrity_check'")
|
||||
: (JUSH == "pgsql" ? $vacuum . $optimize
|
||||
: (JUSH == "sql" ? "<input type='submit' value='" . lang('Analyze') . "'> " . on_help("'ANALYZE TABLE'")
|
||||
|
||||
@@ -88,7 +88,13 @@ if (isset($_GET["pgsql"])) {
|
||||
}
|
||||
|
||||
function warnings() {
|
||||
return h(pg_last_notice($this->link)); // second parameter is available since PHP 7.1.0
|
||||
if (PHP_VERSION_ID >= 70100) {
|
||||
$return = implode("\n", pg_last_notice($this->link, 2)); // 2 - PGSQL_NOTICE_ALL
|
||||
pg_last_notice($this->link, 3); // 3 - PGSQL_NOTICE_CLEAR
|
||||
} else {
|
||||
$return = pg_last_notice($this->link);
|
||||
}
|
||||
return nl_br(h($return));
|
||||
}
|
||||
|
||||
/** Copy from array into a table
|
||||
@@ -909,11 +915,12 @@ AND typelem = 0"
|
||||
$return = "";
|
||||
|
||||
$status = table_status1($table);
|
||||
$ns = idf_escape($status['nspname']);
|
||||
$fkeys = foreign_keys($table);
|
||||
ksort($fkeys);
|
||||
|
||||
foreach ($fkeys as $fkey_name => $fkey) {
|
||||
$return .= "ALTER TABLE ONLY " . idf_escape($status['nspname']) . "." . idf_escape($status['Name']) . " ADD CONSTRAINT " . idf_escape($fkey_name) . " $fkey[definition];\n";
|
||||
$return .= "ALTER TABLE ONLY $ns." . idf_escape($status['Name']) . " ADD CONSTRAINT " . idf_escape($fkey_name) . " " . preg_replace('~( REFERENCES )([^(.]+\()~', "\\1$ns.\\2", $fkey["definition"]) . ";\n";
|
||||
}
|
||||
|
||||
return ($return ? "$return\n" : $return);
|
||||
@@ -939,8 +946,13 @@ AND typelem = 0"
|
||||
|
||||
// fields' definitions
|
||||
foreach ($fields as $field) {
|
||||
if ($field['default'] == "nextval('$status[Name]_$field[field]_seq')") {
|
||||
$field['default'] = null;
|
||||
$field['full_type'] = preg_replace('~int(eger)?~', 'serial', $field['full_type']);
|
||||
}
|
||||
|
||||
$part = idf_escape($field['field']) . ' ' . $field['full_type']
|
||||
. default_value($field)
|
||||
. preg_replace('~(nextval\(\')([^.\']+\')~', '\1' . str_replace("'", "''", $status['nspname']) . '.\2', default_value($field))
|
||||
. ($field['null'] ? "" : " NOT NULL");
|
||||
$return_parts[] = $part;
|
||||
|
||||
|
||||
@@ -4,8 +4,14 @@ namespace Adminer;
|
||||
$TABLE = $_GET["dump"];
|
||||
|
||||
if ($_POST && !$error) {
|
||||
$default = array("auto_increment" => '');
|
||||
foreach (array("type", "routine", "event", "trigger") as $support) {
|
||||
if (support($support)) {
|
||||
$default[$support . "s"] = '';
|
||||
}
|
||||
}
|
||||
save_settings(
|
||||
array_intersect_key($_POST, array_flip(array("output", "format", "db_style", "types", "routines", "events", "table_style", "auto_increment", "triggers", "data_style"))),
|
||||
array_intersect_key($_POST + $default, array_flip(array("output", "format", "db_style", "table_style", "data_style")) + $default),
|
||||
"adminer_export"
|
||||
);
|
||||
$tables = array_flip((array) $_POST["tables"]) + array_flip((array) $_POST["data"]);
|
||||
@@ -153,10 +159,6 @@ $row = get_settings("adminer_export");
|
||||
if (!$row) {
|
||||
$row = array("output" => "text", "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_radios("output", adminer()->dumpOutput(), $row["output"]) . "\n";
|
||||
|
||||
|
||||
@@ -39,10 +39,10 @@ page_header(lang('Foreign key'), $error, array("table" => $TABLE), h($TABLE));
|
||||
|
||||
if ($_POST) {
|
||||
ksort($row["source"]);
|
||||
if ($_POST["add"]) {
|
||||
$row["source"][] = "";
|
||||
} elseif ($_POST["change"] || $_POST["change-js"]) {
|
||||
if ($_POST["change"] || $_POST["change-js"]) {
|
||||
$row["target"] = array();
|
||||
} else {
|
||||
$row["source"][] = "";
|
||||
}
|
||||
} elseif ($name != "") {
|
||||
$foreign_keys = foreign_keys($TABLE);
|
||||
|
||||
@@ -182,7 +182,7 @@ class Adminer {
|
||||
* @return string HTML code, "" to ignore field
|
||||
*/
|
||||
function fieldName(array $field, int $order = 0): string {
|
||||
$type = $field["full_type"];
|
||||
$type = $field["full_type"] . ($field["null"] ? " NULL" : "");
|
||||
$comment = $field["comment"];
|
||||
return '<span title="' . h($type . ($comment != "" ? ($type ? ": " : "") . $comment : '')) . '">' . h($field["field"]) . '</span>';
|
||||
}
|
||||
@@ -614,7 +614,7 @@ class Adminer {
|
||||
foreach ((array) $_GET["order"] as $key => $val) {
|
||||
if ($val != "") {
|
||||
$return[] = (preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~', $val) ? $val : idf_escape($val)) //! MS SQL uses []
|
||||
. (isset($_GET["desc"][$key]) ? " DESC" : "")
|
||||
. (isset($_GET["desc"][$key]) ? " DESC" . (JUSH == 'pgsql' && idx($fields[$val], "null") ? " NULLS LAST" : "") : "")
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ function lang_format($translation, $number = null): string {
|
||||
: (LANG == 'sl' ? ($number % 100 == 1 ? 0 : ($number % 100 == 2 ? 1 : ($number % 100 == 3 || $number % 100 == 4 ? 2 : 3))) // different forms for 1, 2, 3-4, other
|
||||
: (LANG == 'lt' ? ($number % 10 == 1 && $number % 100 != 11 ? 0 : ($number % 10 > 1 && $number / 10 % 10 != 1 ? 1 : 2)) // different forms for 1, 12-19, other
|
||||
: (LANG == 'lv' ? ($number % 10 == 1 && $number % 100 != 11 ? 0 : ($number ? 1 : 2)) // different forms for 1 except 11, other, 0
|
||||
: (in_array(LANG, array('bs', 'ru', 'sr', 'uk')) ? ($number % 10 == 1 && $number % 100 != 11 ? 0 : ($number % 10 > 1 && $number % 10 < 5 && $number / 10 % 10 != 1 ? 1 : 2)) // different forms for 1 except 11, 2-4 except 12-14, other
|
||||
: (in_array(LANG, array('bs', 'hr', 'ru', 'sr', 'uk')) ? ($number % 10 == 1 && $number % 100 != 11 ? 0 : ($number % 10 > 1 && $number % 10 < 5 && $number / 10 % 10 != 1 ? 1 : 2)) // different forms for 1 except 11, 2-4 except 12-14, other
|
||||
: 1)))))))) // different forms for 1, other
|
||||
; // http://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html
|
||||
$translation = $translation[$pos];
|
||||
@@ -67,6 +67,7 @@ function langs(): array {
|
||||
'gl' => 'Galego', // Eduardo Penabad Ramos
|
||||
'he' => 'עברית', // Binyamin Yawitz - https://stuff-group.com/
|
||||
'hi' => 'हिन्दी', // Joshi yogesh
|
||||
'hr' => 'Hrvatski', // Nikola Paradžik
|
||||
'hu' => 'Magyar', // Borsos Szilárd (Borsosfi) - http://www.borsosfi.hu, info@borsosfi.hu
|
||||
'id' => 'Bahasa Indonesia', // Ivan Lanin - http://ivan.lanin.org
|
||||
'it' => 'Italiano', // Alessandro Fiorotto, Paolo Asperti
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
namespace Adminer;
|
||||
|
||||
const VERSION = "5.4.2";
|
||||
const VERSION = "5.4.3-dev";
|
||||
|
||||
364
adminer/lang/hr.inc.php
Normal file
364
adminer/lang/hr.inc.php
Normal file
@@ -0,0 +1,364 @@
|
||||
<?php
|
||||
namespace Adminer;
|
||||
|
||||
Lang::$translations = array(
|
||||
// label for database system selection (MySQL, SQLite, ...)
|
||||
'System' => 'Sustav',
|
||||
'Server' => 'Poslužitelj',
|
||||
'Username' => 'Korisničko ime',
|
||||
'Password' => 'Lozinka',
|
||||
'Permanent login' => 'Trajna prijava',
|
||||
'Login' => 'Prijava',
|
||||
'Logout' => 'Odjava',
|
||||
'Logged as: %s' => 'Prijavljen kao: %s',
|
||||
'Logout successful.' => 'Uspješna odjava.',
|
||||
'Invalid credentials.' => 'Neispravni podaci za prijavu.',
|
||||
'Language' => 'Jezik',
|
||||
'Invalid CSRF token. Send the form again.' => 'Nevažeći CSRF token. Pošaljite obrazac ponovo.',
|
||||
'No extension' => 'Nema proširenja',
|
||||
'None of the supported PHP extensions (%s) are available.' => 'Nijedno od podržanih PHP proširenja (%s) nije dostupno.',
|
||||
'Session support must be enabled.' => 'Podrška za sesije mora biti uključena.',
|
||||
'Session expired, please login again.' => 'Sesija je istekla, molimo prijavite se ponovo.',
|
||||
'%s version: %s through PHP extension %s' => '%s verzija: %s putem PHP proširenja %s',
|
||||
'Refresh' => 'Osvježi',
|
||||
|
||||
// text direction - 'ltr' or 'rtl'
|
||||
'ltr' => 'ltr',
|
||||
|
||||
'Privileges' => 'Ovlasti',
|
||||
'Create user' => 'Novi korisnik',
|
||||
'User has been dropped.' => 'Korisnik je izbrisan.',
|
||||
'User has been altered.' => 'Korisnik je izmijenjen.',
|
||||
'User has been created.' => 'Korisnik je kreiran.',
|
||||
'Hashed' => 'Hashirano',
|
||||
'Column' => 'Stupac',
|
||||
'Routine' => 'Rutina',
|
||||
'Grant' => 'Dodijeli',
|
||||
'Revoke' => 'Opozovi',
|
||||
|
||||
'Process list' => 'Popis procesa',
|
||||
'%d process(es) have been killed.' => array('%d proces je zaustavljen.', '%d procesa su zaustavljena.', '%d procesa je zaustavljeno.'),
|
||||
'Kill' => 'Zaustavi',
|
||||
|
||||
'Variables' => 'Varijable',
|
||||
'Status' => 'Status',
|
||||
|
||||
'SQL command' => 'SQL naredba',
|
||||
'%d query(s) executed OK.' => array('%d upit je uspješno izvršen.', '%d upita su uspješno izvršena.', '%d upita je uspješno izvršeno.'),
|
||||
'Query executed OK, %d row(s) affected.' => array('Upit je uspješno izvršen, %d redak je ažuriran.', 'Upit je uspješno izvršen, %d retka su ažurirana.', 'Upit je uspješno izvršen, %d redaka je ažurirano.'),
|
||||
'No commands to execute.' => 'Nema naredbi za izvršavanje.',
|
||||
'Error in query' => 'Greška u upitu',
|
||||
'Execute' => 'Izvrši',
|
||||
'Stop on error' => 'Zaustavi pri grešci',
|
||||
'Show only errors' => 'Prikaži samo greške',
|
||||
// sprintf() format for time of the command
|
||||
'%.3f s' => '%.3f s',
|
||||
'History' => 'Povijest',
|
||||
'Clear' => 'Očisti',
|
||||
'Edit all' => 'Uredi sve',
|
||||
|
||||
'File upload' => 'Prijenos datoteke',
|
||||
'From server' => 'S poslužitelja',
|
||||
'Webserver file %s' => 'Datoteka %s s web poslužitelja',
|
||||
'Run file' => 'Pokreni datoteku',
|
||||
'File does not exist.' => 'Datoteka ne postoji.',
|
||||
'File uploads are disabled.' => 'Prijenos datoteka je onemogućen.',
|
||||
'Unable to upload a file.' => 'Prijenos datoteke nije uspio.',
|
||||
'Maximum allowed file size is %sB.' => 'Maksimalna dozvoljena veličina datoteke je %sB.',
|
||||
'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Preveliki POST podaci. Smanjite podatke ili povećajte vrijednost konfiguracijske direktive %s.',
|
||||
|
||||
'Export' => 'Izvoz',
|
||||
'Output' => 'Ispis',
|
||||
'open' => 'otvori',
|
||||
'save' => 'spremi',
|
||||
'Format' => 'Format',
|
||||
'Data' => 'Podaci',
|
||||
|
||||
'Database' => 'Baza podataka',
|
||||
'Use' => 'Koristi',
|
||||
'Select database' => 'Odaberite bazu',
|
||||
'Invalid database.' => 'Neispravna baza podataka.',
|
||||
'Database has been dropped.' => 'Baza podataka je izbrisana.',
|
||||
'Databases have been dropped.' => 'Baze podataka su izbrisane.',
|
||||
'Database has been created.' => 'Baza podataka je kreirana.',
|
||||
'Database has been renamed.' => 'Baza podataka je preimenovana.',
|
||||
'Database has been altered.' => 'Baza podataka je izmijenjena.',
|
||||
'Alter database' => 'Izmijeni bazu podataka',
|
||||
'Create database' => 'Kreiraj bazu podataka',
|
||||
'Database schema' => 'Shema baze podataka',
|
||||
|
||||
// link to current database schema layout
|
||||
'Permanent link' => 'Trajna veza',
|
||||
|
||||
// thousands separator - must contain single byte
|
||||
',' => '.',
|
||||
'0123456789' => '0123456789',
|
||||
'Engine' => 'Motor',
|
||||
'Collation' => 'Uspoređivanje',
|
||||
'Data Length' => 'Duljina podataka',
|
||||
'Index Length' => 'Duljina indeksa',
|
||||
'Data Free' => 'Slobodan prostor',
|
||||
'Rows' => 'Redaka',
|
||||
'%d in total' => 'ukupno %d',
|
||||
'Analyze' => 'Analiziraj',
|
||||
'Optimize' => 'Optimiziraj',
|
||||
'Check' => 'Provjeri',
|
||||
'Repair' => 'Popravi',
|
||||
'Truncate' => 'Isprazni',
|
||||
'Tables have been truncated.' => 'Tablice su ispražnjene.',
|
||||
'Move to other database' => 'Premjesti u drugu bazu podataka',
|
||||
'Move' => 'Premjesti',
|
||||
'Tables have been moved.' => 'Tablice su premještene.',
|
||||
'Copy' => 'Kopiraj',
|
||||
'Tables have been copied.' => 'Tablice su kopirane.',
|
||||
|
||||
'Routines' => 'Rutine',
|
||||
'Routine has been called, %d row(s) affected.' => array('Rutina je pozvana, %d redak je ažuriran.', 'Rutina je pozvana, %d retka su ažurirana.', 'Rutina je pozvana, %d redaka je ažurirano.'),
|
||||
'Call' => 'Pozovi',
|
||||
'Parameter name' => 'Naziv parametra',
|
||||
'Create procedure' => 'Kreiraj proceduru',
|
||||
'Create function' => 'Kreiraj funkciju',
|
||||
'Routine has been dropped.' => 'Rutina je izbrisana.',
|
||||
'Routine has been altered.' => 'Rutina je izmijenjena.',
|
||||
'Routine has been created.' => 'Rutina je kreirana.',
|
||||
'Alter function' => 'Izmijeni funkciju',
|
||||
'Alter procedure' => 'Izmijeni proceduru',
|
||||
'Return type' => 'Tip povratne vrijednosti',
|
||||
|
||||
'Events' => 'Događaji',
|
||||
'Event has been dropped.' => 'Događaj je izbrisan.',
|
||||
'Event has been altered.' => 'Događaj je izmijenjen.',
|
||||
'Event has been created.' => 'Događaj je kreiran.',
|
||||
'Alter event' => 'Izmijeni događaj',
|
||||
'Create event' => 'Kreiraj događaj',
|
||||
'At given time' => 'U zadano vrijeme',
|
||||
'Every' => 'Svako',
|
||||
'Schedule' => 'Raspored',
|
||||
'Start' => 'Početak',
|
||||
'End' => 'Kraj',
|
||||
'On completion preserve' => 'Zadrži po završetku',
|
||||
|
||||
'Tables' => 'Tablice',
|
||||
'Tables and views' => 'Tablice i pogledi',
|
||||
'Table' => 'Tablica',
|
||||
'No tables.' => 'Nema tablica.',
|
||||
'Alter table' => 'Izmijeni tablicu',
|
||||
'Create table' => 'Kreiraj tablicu',
|
||||
'Table has been dropped.' => 'Tablica je izbrisana.',
|
||||
'Tables have been dropped.' => 'Tablice su izbrisane.',
|
||||
'Tables have been optimized.' => 'Tablice su optimizirane.',
|
||||
'Table has been altered.' => 'Tablica je izmijenjena.',
|
||||
'Table has been created.' => 'Tablica je kreirana.',
|
||||
'Table name' => 'Naziv tablice',
|
||||
'Show structure' => 'Prikaži strukturu',
|
||||
'engine' => 'motor',
|
||||
'collation' => 'uspoređivanje',
|
||||
'Column name' => 'Naziv stupca',
|
||||
'Type' => 'Tip',
|
||||
'Length' => 'Duljina',
|
||||
'Auto Increment' => 'Auto-inkrement',
|
||||
'Options' => 'Opcije',
|
||||
'Comment' => 'Komentar',
|
||||
'Default values' => 'Zadane vrijednosti',
|
||||
'Drop' => 'Izbriši',
|
||||
'Are you sure?' => 'Jeste li sigurni?',
|
||||
'Move up' => 'Pomakni gore',
|
||||
'Move down' => 'Pomakni dolje',
|
||||
'Remove' => 'Ukloni',
|
||||
'Maximum number of allowed fields exceeded. Please increase %s.' => 'Premašen je maksimalni broj dozvoljenih polja. Molimo povećajte %s.',
|
||||
|
||||
'Partition by' => 'Particioniraj po',
|
||||
'Partitions' => 'Particije',
|
||||
'Partition name' => 'Naziv particije',
|
||||
'Values' => 'Vrijednosti',
|
||||
|
||||
'View' => 'Pogled',
|
||||
'View has been dropped.' => 'Pogled je izbrisan.',
|
||||
'View has been altered.' => 'Pogled je izmijenjen.',
|
||||
'View has been created.' => 'Pogled je kreiran.',
|
||||
'Alter view' => 'Izmijeni pogled',
|
||||
'Create view' => 'Kreiraj pogled',
|
||||
|
||||
'Indexes' => 'Indeksi',
|
||||
'Indexes have been altered.' => 'Indeksi su izmijenjeni.',
|
||||
'Alter indexes' => 'Izmijeni indekse',
|
||||
'Add next' => 'Dodaj sljedeći',
|
||||
'Index Type' => 'Tip indeksa',
|
||||
'length' => 'duljina',
|
||||
|
||||
'Foreign keys' => 'Strani ključevi',
|
||||
'Foreign key' => 'Strani ključ',
|
||||
'Foreign key has been dropped.' => 'Strani ključ je izbrisan.',
|
||||
'Foreign key has been altered.' => 'Strani ključ je izmijenjen.',
|
||||
'Foreign key has been created.' => 'Strani ključ je kreiran.',
|
||||
'Target table' => 'Ciljna tablica',
|
||||
'Change' => 'Izmijeni',
|
||||
'Source' => 'Izvor',
|
||||
'Target' => 'Cilj',
|
||||
'Add column' => 'Dodaj stupac',
|
||||
'Alter' => 'Izmijeni',
|
||||
'Add foreign key' => 'Dodaj strani ključ',
|
||||
'ON DELETE' => 'ON DELETE (pri brisanju)',
|
||||
'ON UPDATE' => 'ON UPDATE (pri ažuriranju)',
|
||||
'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 i ciljni stupci moraju biti istog tipa podataka, ciljni stupci moraju biti indeksirani i referencirani podaci moraju postojati.',
|
||||
|
||||
'Triggers' => 'Okidači',
|
||||
'Add trigger' => 'Dodaj okidač',
|
||||
'Trigger has been dropped.' => 'Okidač je izbrisan.',
|
||||
'Trigger has been altered.' => 'Okidač je izmijenjen.',
|
||||
'Trigger has been created.' => 'Okidač je kreiran.',
|
||||
'Alter trigger' => 'Izmijeni okidač',
|
||||
'Create trigger' => 'Kreiraj okidač',
|
||||
'Time' => 'Vrijeme',
|
||||
'Event' => 'Događaj',
|
||||
'Name' => 'Naziv',
|
||||
|
||||
'select' => 'odaberi',
|
||||
'Select' => 'Odaberi',
|
||||
'Selected' => 'Odabrano',
|
||||
'Select data' => 'Odaberi podatke',
|
||||
'Functions' => 'Funkcije',
|
||||
'Aggregation' => 'Agregacija',
|
||||
'Search' => 'Pretraži',
|
||||
'anywhere' => 'bilo gdje',
|
||||
'Search data in tables' => 'Pretraži podatke u tablicama',
|
||||
'Sort' => 'Sortiraj',
|
||||
'descending' => 'silazno',
|
||||
'Limit' => 'Ograničenje',
|
||||
'Text length' => 'Duljina teksta',
|
||||
'Action' => 'Radnja',
|
||||
'Full table scan' => 'Puno pretraživanje tablice',
|
||||
'Unable to select the table' => 'Nije moguće odabrati tablicu',
|
||||
'No rows.' => 'Nema redaka.',
|
||||
'%d row(s)' => array('%d redak', '%d retka', '%d redaka'),
|
||||
'Page' => 'Stranica',
|
||||
'last' => 'posljednja',
|
||||
'Loading' => 'Učitavanje',
|
||||
'Load more data' => 'Učitaj više podataka',
|
||||
'Whole result' => 'Cijeli skup rezultata',
|
||||
'%d byte(s)' => array('%d bajt', '%d bajta', '%d bajtova'),
|
||||
|
||||
'Import' => 'Uvoz',
|
||||
'%d row(s) have been imported.' => array('%d redak je uvezen.', '%d retka su uvezena.', '%d redaka je uvezeno.'),
|
||||
|
||||
// in-place editing in select
|
||||
'Ctrl+click on a value to modify it.' => 'Ctrl+klik na vrijednost za izmjenu.',
|
||||
'Use edit link to modify this value.' => 'Koristite vezu za uređivanje ove vrijednosti.',
|
||||
|
||||
// %s can contain auto-increment value
|
||||
'Item%s has been inserted.' => 'Stavka %s je unesena.',
|
||||
'Item has been deleted.' => 'Stavka je izbrisana.',
|
||||
'Item has been updated.' => 'Stavka je ažurirana.',
|
||||
'%d item(s) have been affected.' => array('%d stavka je zahvaćena.', '%d stavke su zahvaćene.', '%d stavki je zahvaćeno.'),
|
||||
'New item' => 'Nova stavka',
|
||||
'original' => 'original',
|
||||
// label for value '' in enum data type
|
||||
'empty' => 'prazno',
|
||||
'edit' => 'uredi',
|
||||
'Edit' => 'Uredi',
|
||||
'Insert' => 'Unesi',
|
||||
'Save' => 'Spremi',
|
||||
'Save and continue edit' => 'Spremi i nastavi uređivanje',
|
||||
'Save and insert next' => 'Spremi i unesi sljedeće',
|
||||
'Clone' => 'Kloniraj',
|
||||
'Delete' => 'Izbriši',
|
||||
'Modify' => 'Izmijeni',
|
||||
|
||||
// data type descriptions
|
||||
'Numbers' => 'Brojevi',
|
||||
'Date and time' => 'Datum i vrijeme',
|
||||
'Strings' => 'Tekst',
|
||||
'Binary' => 'Binarno',
|
||||
'Lists' => 'Liste',
|
||||
'Network' => 'Mreža',
|
||||
'Geometry' => 'Geometrija',
|
||||
'Relations' => 'Odnosi',
|
||||
|
||||
'Editor' => 'Uređivač',
|
||||
// date format in Editor: $1 yyyy, $2 yy, $3 mm, $4 m, $5 dd, $6 d
|
||||
'$1-$3-$5' => '$5.$3.$1',
|
||||
// hint for date format - use language equivalents for day, month and year shortcuts
|
||||
'[yyyy]-mm-dd' => 'dd.mm.[yyyy]',
|
||||
// hint for time format - use language equivalents for hour, minute and second shortcuts
|
||||
'HH:MM:SS' => 'HH:MM:SS',
|
||||
'now' => 'sada',
|
||||
'yes' => 'da',
|
||||
'no' => 'ne',
|
||||
|
||||
// general SQLite error in create, drop or rename database
|
||||
'File exists.' => 'Datoteka već postoji.',
|
||||
'Please use one of the extensions %s.' => 'Molimo koristite jedan od nastavaka %s.',
|
||||
|
||||
// PostgreSQL and MS SQL schema support
|
||||
'Alter schema' => 'Izmijeni shemu',
|
||||
'Create schema' => 'Kreiraj shemu',
|
||||
'Schema has been dropped.' => 'Shema je izbrisana.',
|
||||
'Schema has been created.' => 'Shema je kreirana.',
|
||||
'Schema has been altered.' => 'Shema je izmijenjena.',
|
||||
'Schema' => 'Shema',
|
||||
'Invalid schema.' => 'Neispravna shema.',
|
||||
|
||||
// PostgreSQL sequences support
|
||||
'Sequences' => 'Nizovi',
|
||||
'Create sequence' => 'Kreiraj niz',
|
||||
'Sequence has been dropped.' => 'Niz je izbrisan.',
|
||||
'Sequence has been created.' => 'Niz je kreiran.',
|
||||
'Sequence has been altered.' => 'Niz je izmijenjen.',
|
||||
'Alter sequence' => 'Izmijeni niz',
|
||||
|
||||
// PostgreSQL user types support
|
||||
'User types' => 'Korisnički tipovi',
|
||||
'Create type' => 'Kreiraj tip',
|
||||
'Type has been dropped.' => 'Tip je izbrisan.',
|
||||
'Type has been created.' => 'Tip je kreiran.',
|
||||
'Alter type' => 'Izmijeni tip',
|
||||
|
||||
// MS SQL login
|
||||
'Too many unsuccessful logins, try again in %d minute(s).' => array('Previše neuspješnih pokušaja prijave, pokušajte ponovo za %d minutu.', 'Previše neuspješnih pokušaja prijave, pokušajte ponovo za %d minute.', 'Previše neuspješnih pokušaja prijave, pokušajte ponovo za %d minuta.'),
|
||||
'Check has been dropped.' => 'Provjera je izbrisana.',
|
||||
'Check has been altered.' => 'Provjera je izmijenjena.',
|
||||
'Check has been created.' => 'Provjera je kreirana.',
|
||||
'Alter check' => 'Izmijeni provjeru',
|
||||
'Create check' => 'Kreiraj provjeru',
|
||||
'Drop %s?' => 'Izbrisati %s?',
|
||||
'Vacuum' => 'Vakuumiranje',
|
||||
'overwrite' => 'prepiši',
|
||||
'Disable %s or enable %s or %s extensions.' => 'Onemogućite %s ili omogućite %s ili %s proširenja.',
|
||||
'Database does not support password.' => 'Baza podataka ne podržava lozinku.',
|
||||
'DB' => 'BP',
|
||||
'hostname[:port] or :socket' => 'hostname[:port] ili :socket',
|
||||
'Adminer does not support accessing a database without a password, <a href="https://www.adminer.org/en/password/"%s>more information</a>.' => 'Adminer ne podržava pristup bazi podataka bez lozinke, <a href="https://www.adminer.org/en/password/"%s>više informacija</a>.',
|
||||
'Warnings' => 'Upozorenja',
|
||||
'Default value' => 'Zadana vrijednost',
|
||||
'Thanks for using Adminer, consider <a href="https://www.adminer.org/en/donation/">donating</a>.' => 'Hvala što koristite Adminer, razmislite o <a href="https://www.adminer.org/en/donation/">donaciji</a>.',
|
||||
'Master password expired. <a href="https://www.adminer.org/en/extension/"%s>Implement</a> %s method to make it permanent.' => 'Glavna lozinka je istekla. <a href="https://www.adminer.org/en/extension/"%s>Implementirajte</a> metodu %s kako biste je učinili trajnom.',
|
||||
'The action will be performed after successful login with the same credentials.' => 'Radnja će biti izvršena nakon uspješne prijave s istim podacima.',
|
||||
'Connecting to privileged ports is not allowed.' => 'Spajanje na privilegirane portove nije dopušteno.',
|
||||
'There is a space in the input password which might be the cause.' => 'U unesenoj lozinci postoji razmak koji bi mogao biti uzrok problema.',
|
||||
'If you did not send this request from Adminer then close this page.' => 'Ako ovaj zahtjev niste poslali iz Adminera, zatvorite ovu stranicu.',
|
||||
'You can upload a big SQL file via FTP and import it from server.' => 'Veliku SQL datoteku možete prenijeti putem FTP-a i uvesti je s poslužitelja.',
|
||||
'Size' => 'Veličina',
|
||||
'Compute' => 'Izračunaj',
|
||||
'Loaded plugins' => 'Učitani dodaci',
|
||||
'screenshot' => 'snimka zaslona',
|
||||
'You are offline.' => 'Niste povezani s mrežom.',
|
||||
'Increase %s.' => 'Povećajte %s.',
|
||||
'You have no privileges to update this table.' => 'Nemate ovlasti za ažuriranje ove tablice.',
|
||||
'Saving' => 'Spremanje',
|
||||
'Unknown error.' => 'Nepoznata greška.',
|
||||
'%s must <a%s>return an array</a>.' => '%s mora <a%s>vratiti niz</a>.',
|
||||
'<a%s>Configure</a> %s in %s.' => '<a%s>Konfigurirajte</a> %s u %s.',
|
||||
'Algorithm' => 'Algoritam',
|
||||
'Columns' => 'Stupci',
|
||||
'Condition' => 'Uvjet',
|
||||
'File must be in UTF-8 encoding.' => 'Datoteka mora biti u UTF-8 kodiranju.',
|
||||
'ATTACH queries are not supported.' => 'ATTACH upiti nisu podržani.',
|
||||
'%d / ' => '%d / ',
|
||||
'Limit rows' => 'Ograniči retke',
|
||||
'Materialized view' => 'Materijaliziran pogled',
|
||||
'Inherits from' => 'Nasljeđuje od',
|
||||
'Checks' => 'Provjere',
|
||||
'Inherited by' => 'Nasljeđeno od',
|
||||
);
|
||||
|
||||
// run `php ../../lang.php hr` to update this file
|
||||
@@ -103,16 +103,18 @@ foreach ($schema as $name => $table) {
|
||||
|
||||
foreach ($schema as $name => $table) {
|
||||
foreach ((array) $table["references"] as $target_name => $refs) {
|
||||
foreach ($refs as $left => $ref) {
|
||||
$min_pos = $top;
|
||||
$max_pos = -10;
|
||||
foreach ($ref[0] as $key => $source) {
|
||||
$pos1 = $table["pos"][0] + $table["fields"][$source]["pos"];
|
||||
$pos2 = $schema[$target_name]["pos"][0] + $schema[$target_name]["fields"][$ref[1][$key]]["pos"];
|
||||
$min_pos = min($min_pos, $pos1, $pos2);
|
||||
$max_pos = max($max_pos, $pos1, $pos2);
|
||||
if ($schema[$target_name]) { // otherwise table in another schema
|
||||
foreach ($refs as $left => $ref) {
|
||||
$min_pos = $top;
|
||||
$max_pos = -10;
|
||||
foreach ($ref[0] as $key => $source) {
|
||||
$pos1 = $table["pos"][0] + $table["fields"][$source]["pos"];
|
||||
$pos2 = $schema[$target_name]["pos"][0] + $schema[$target_name]["fields"][$ref[1][$key]]["pos"];
|
||||
$min_pos = min($min_pos, $pos1, $pos2);
|
||||
$max_pos = max($max_pos, $pos1, $pos2);
|
||||
}
|
||||
echo "<div class='references' id='refl$left' style='left: $left" . "em; top: $min_pos" . "em; padding: .5em 0;'><div style='border-right: 1px solid gray; margin-top: 1px; height: " . ($max_pos - $min_pos) . "em;'></div></div>\n";
|
||||
}
|
||||
echo "<div class='references' id='refl$left' style='left: $left" . "em; top: $min_pos" . "em; padding: .5em 0;'><div style='border-right: 1px solid gray; margin-top: 1px; height: " . ($max_pos - $min_pos) . "em;'></div></div>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -455,7 +455,8 @@ if (!$columns && support("table")) {
|
||||
$html = select_value($val, $link, $field, $text_length);
|
||||
$id = h("val[$unique_idf][" . bracket_escape($key) . "]");
|
||||
$posted = idx(idx($_POST["val"], $unique_idf), bracket_escape($key));
|
||||
$editable = !is_array($row[$key]) && is_utf8($html) && $rows[$n][$key] == $row[$key] && !$functions[$key] && !$field["generated"];
|
||||
$update = idx($field["privileges"], "update");
|
||||
$editable = !is_array($row[$key]) && is_utf8($html) && $rows[$n][$key] == $row[$key] && !$functions[$key] && !$field["generated"] && $update;
|
||||
$type = (preg_match('~^(AVG|MIN|MAX)\((.+)\)~', $column, $match) ? $fields[idf_unescape($match[2])]["type"] : $field["type"]);
|
||||
$text = preg_match('~text|json|lob~', $type);
|
||||
$is_number = preg_match(number_type(), $type) || preg_match('~^(CHAR_LENGTH|ROUND|FLOOR|CEIL|TIME_TO_SEC|COUNT|SUM)\(~', $column);
|
||||
@@ -465,10 +466,11 @@ if (!$columns && support("table")) {
|
||||
echo ">" . ($text ? "<textarea name='$id' cols='30' rows='" . (substr_count($row[$key], "\n") + 1) . "'>$h_value</textarea>" : "<input name='$id' value='$h_value' size='$lengths[$key]'>");
|
||||
} else {
|
||||
$long = strpos($html, "<i>…</i>");
|
||||
echo " data-text='" . ($long ? 2 : ($text ? 1 : 0)) . "'"
|
||||
. ($editable ? "" : " data-warning='" . h(lang('Use edit link to modify this value.')) . "'")
|
||||
. ">$html"
|
||||
;
|
||||
echo ($update
|
||||
? " data-text='" . ($long ? 2 : ($text ? 1 : 0)) . "'"
|
||||
. ($editable ? "" : " data-warning='" . h(lang('Use edit link to modify this value.')) . "'")
|
||||
: ""
|
||||
) . ">$html";
|
||||
}
|
||||
}
|
||||
next($select);
|
||||
|
||||
@@ -43,8 +43,8 @@ function send_mail(string $email, string $subject, string $message, string $from
|
||||
}
|
||||
|
||||
/** Check whether the column looks like boolean
|
||||
* @param array{type: string} $field single field returned from fields()
|
||||
* @param array{type: string, length?: string} $field single field returned from fields()
|
||||
*/
|
||||
function like_bool(array $field): bool {
|
||||
return preg_match("~bool|bit~", $field["type"]);
|
||||
return $field["type"] == "bool" || (preg_match('~bit|tinyint~', $field["type"]) && $field["length"] == 1);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ parameters:
|
||||
- "~expects bool~" # truthy values
|
||||
- "~fread expects int<1, max>, 100000~" # 1e6
|
||||
- "~'strlen' given~" # used as a bool callback
|
||||
- "~between int<70100~" # PHP_VERSION_ID check
|
||||
|
||||
-
|
||||
message: "~ type specified~" # duplicate functions and methods
|
||||
|
||||
@@ -23,5 +23,6 @@ class AdminerDotJs extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wczytuj adminer.js'),
|
||||
'ro' => array('' => 'Încarcă adminer.js'),
|
||||
'ja' => array('' => 'adminer.js を読込み'),
|
||||
'hr' => array('' => 'Učitava adminer.js'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -75,5 +75,6 @@ ORDER BY s.ordinal_position", null, "") as $row
|
||||
'de' => array('' => 'Links zu Tabellen anzeigen die auf die aktuelle Zeile verweisen, wie im Adminer Editor'),
|
||||
'ja' => array('' => 'Adminer Editor と同様に、カレント行を参照しているテーブルへのリンクを表示'),
|
||||
'pl' => array('' => 'Wyświetlaj linki do tabel odnoszących się do bieżącego wiersza, tak samo jak w Edytorze administratora'),
|
||||
'hr' => array('' => 'Prikazuje veze na tablice koje referenciraju trenutni redak, kao u Adminer Editoru'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -36,5 +36,6 @@ onbeforeunload = () => editChanged;
|
||||
'de' => array('' => 'Zeigt eine Bestätigung an bevor die Seite neu geladen wird, wenn ein Formularfeld geändert wurde'),
|
||||
'ja' => array('' => 'フォームの列が変更された時、ページを再読込みする前に確認を表示'),
|
||||
'pl' => array('' => 'Wyświetlaj potwierdzenie przed rozładowaniem strony, jeśli pole formularza zostało zmienione'),
|
||||
'hr' => array('' => 'Prikazuje potvrdu prije napuštanja stranice ako je polje obrasca promijenjeno'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -96,5 +96,14 @@ class AdminerConfig extends Adminer\Plugin {
|
||||
'Use %s if exists' => 'あれば %s を使う',
|
||||
'Use builtin design' => '組込みのデザインを使う',
|
||||
),
|
||||
'hr' => array(
|
||||
'' => 'Nikola Radovanović - cobisimo@gmail.com',
|
||||
'Configuration saved.' => 'Konfiguracija je spremljena.',
|
||||
'Configuration' => 'Konfiguracija',
|
||||
'Only some plugins support configuration, e.g. %s.' => 'Samo neki dodaci podržavaju konfiguraciju, npr. %s.',
|
||||
'Use %s if exists' => 'Koristi %s ako postoji',
|
||||
'Use builtin design' => 'Koristi ugrađeni dizajn',
|
||||
'Design' => 'Dizajn',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -50,5 +50,6 @@ if (saved) {
|
||||
'de' => array('' => 'Umschalten zwischen hellem und dunklem Design erlauben'),
|
||||
'ja' => array('' => 'ダークモードへの切替え'),
|
||||
'pl' => array('' => 'Zezwalaj na przełączanie trybu jasnego i ciemnego'),
|
||||
'hr' => array('' => 'Omogućuje prebacivanje između svijetlog i tamnog izgleda'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -32,5 +32,6 @@ class AdminerDatabaseHide extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Ukryj niektóre bazy danych w interfejsie – tylko po to, aby ulepszyć motyw, a nie wtyczkę zabezpieczającą'),
|
||||
'ro' => array('' => 'Ascundeți unele baze de date din interfață - doar pentru a îmbunătăți designul, nu un plugin de securitate'),
|
||||
'ja' => array('' => '一部データベースを UI 上で表示禁止 (デザイン的な効果のみでセキュリティ的には効果なし)'),
|
||||
'hr' => array('' => 'Sakriva neke baze podataka iz sučelja – samo radi poboljšanja izgleda, nije sigurnosni dodatak'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -49,5 +49,6 @@ class AdminerDesigns extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Zezwalaj na przełączanie motywów'),
|
||||
'ro' => array('' => 'Permiteți comutarea designurilor'),
|
||||
'ja' => array('' => 'テーマ設定を有効化'),
|
||||
'hr' => array('' => 'Omogućuje promjenu dizajna'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ if (isset($_GET["igdb"])) {
|
||||
|
||||
function query($query, $unbuffered = false) {
|
||||
if (preg_match('~^SELECT COUNT\(\*\) FROM (\w+)( WHERE ((MATCH \(search\) AGAINST \((.+)\))|.+))?$~', $query, $match)) {
|
||||
return new Result(array($this->request("$match[1]/count", ($match[5] ? 'search "' . addcslashes($match[5], '\\"') . '";'
|
||||
return new Result(array($match[1] == 'dumps' ? array('count' => 50) : $this->request("$match[1]/count", ($match[5] ? 'search "' . addcslashes($match[5], '\\"') . '";'
|
||||
: ($match[3] ? 'where ' . str_replace(' AND ', ' & ', $match[3]) . ';'
|
||||
: ''
|
||||
)))));
|
||||
@@ -182,7 +182,7 @@ if (isset($_GET["igdb"])) {
|
||||
}
|
||||
$this->fields[$table]['id'] = array('full_type' => 'bigint', 'comment' => '');
|
||||
$this->links[$link] = $table;
|
||||
$this->tables[$table] = array('Name' => $table, 'Comment' => $comment);
|
||||
$this->tables[$table] = array('Name' => $table, 'Engine' => 'endpoint', 'Comment' => $comment);
|
||||
foreach ($xpath->query('tbody/tr', $els[$i+2]) as $tr) {
|
||||
$tds = $xpath->query('td', $tr);
|
||||
$field = $tds[0]->nodeValue;
|
||||
@@ -211,7 +211,28 @@ if (isset($_GET["igdb"])) {
|
||||
});
|
||||
}
|
||||
}
|
||||
$this->tables['webhooks'] = array('Name' => 'webhooks', 'Comment' => 'Webhooks allow us to push data to you when it is added, updated, or deleted');
|
||||
|
||||
$this->tables['dumps'] = array(
|
||||
'Name' => 'dumps',
|
||||
'Engine' => 'dumps',
|
||||
'Comment' => 'Daily updated CSV Data Dumps which can be used to kick start your projects or keep your data up to date (within 24 hours)',
|
||||
);
|
||||
$this->links['data-dumps'] = 'dumps';
|
||||
$this->fields['dumps'] = array(
|
||||
's3_url' => array('comment' => 'The download Url is a presigned S3 url that is valid for 5 minutes'),
|
||||
'endpoint' => array(),
|
||||
'file_name' => array(),
|
||||
'size_bytes' => array(),
|
||||
'updated_at' => array('full_type' => 'datetime'),
|
||||
'schema_version' => array('full_type' => 'datetime', 'comment' => 'Will change when the schema changes'),
|
||||
'schema' => array('comment' => 'Reflects the current data structure and data type that the Dump is using'),
|
||||
);
|
||||
|
||||
$this->tables['webhooks'] = array(
|
||||
'Name' => 'webhooks',
|
||||
'Engine' => 'webhooks',
|
||||
'Comment' => 'Webhooks allow us to push data to you when it is added, updated, or deleted',
|
||||
);
|
||||
$this->links['webhooks'] = 'webhooks';
|
||||
$this->fields['webhooks'] = array(
|
||||
'endpoint' => array(
|
||||
@@ -258,7 +279,8 @@ if (isset($_GET["igdb"])) {
|
||||
}
|
||||
$columns = ($select != array('*') ? $select : array_keys($this->fields[$table]));
|
||||
$common = ($where ? "\nwhere " . implode(" & ", $where) . ";" : "");
|
||||
if ($table != 'webhooks') {
|
||||
$method = ($table == 'webhooks' || $table == 'dumps' ? 'GET' : 'POST');
|
||||
if ($method == 'POST') {
|
||||
$query .= "fields " . implode(",", $select) . ";"
|
||||
. ($select == array('*') ? "\nexclude checksum;" : "")
|
||||
. $common
|
||||
@@ -268,12 +290,11 @@ if (isset($_GET["igdb"])) {
|
||||
;
|
||||
}
|
||||
$start = microtime(true);
|
||||
$multi = (!$search && $table != 'webhooks' && array_key_exists($table, driver()->tables));
|
||||
$method = ($table == 'webhooks' ? 'GET' : 'POST');
|
||||
$multi = (!$search && $method == 'POST' && array_key_exists($table, driver()->tables));
|
||||
$realQuery = str_replace("*;\nexclude checksum", implode(',', $columns), $query); // exclude deprecated columns
|
||||
$return = ($multi
|
||||
? $this->conn->request('multiquery', "query $table \"result\" { $realQuery };\nquery $table/count \"count\" { $common };")
|
||||
: $this->conn->request($table, $realQuery, $method)
|
||||
: $this->conn->request(($method == 'GET' && $where ? "$table/" . reset($_GET["where"]) : $table), $realQuery, $method)
|
||||
);
|
||||
if ($print) {
|
||||
echo adminer()->selectQuery("$method $table;\n$query", $start);
|
||||
@@ -283,7 +304,9 @@ if (isset($_GET["igdb"])) {
|
||||
}
|
||||
$this->foundRows = ($multi ? $return[1]['count'] : null);
|
||||
$return = ($multi ? $return[0]['result'] : $return);
|
||||
if ($return && $table != 'webhooks') {
|
||||
if ($table == 'dumps' && $where) {
|
||||
$return = array($return);
|
||||
} elseif ($return && $method == 'POST') {
|
||||
$return[0] = array_merge(array_fill_keys($columns, null), $return[0]);
|
||||
}
|
||||
return new Result($return);
|
||||
@@ -345,7 +368,7 @@ if (isset($_GET["igdb"])) {
|
||||
}
|
||||
|
||||
function indexes($table, $connection2 = null) {
|
||||
$return = array(array("type" => "PRIMARY", "columns" => array("id")));
|
||||
$return = array(array('type' => 'PRIMARY', 'columns' => array($table == 'dumps' ? 'endpoint' : 'id')));
|
||||
if (in_array($table, array('characters', 'collections', 'games', 'platforms', 'themes'))) { // https://api-docs.igdb.com/#search-1
|
||||
$return[] = array("type" => "FULLTEXT", "columns" => array("search"));
|
||||
}
|
||||
@@ -359,7 +382,7 @@ if (isset($_GET["igdb"])) {
|
||||
$return[$key] = $val + array(
|
||||
"field" => $key,
|
||||
"type" => ($type == 'reference' ? 'int' : $type), // align right reference columns
|
||||
"privileges" => array("select" => 1) + ($table == 'webhooks' ? array() : array("where" => 1, "order" => 1)),
|
||||
"privileges" => array("select" => 1) + ($table == 'webhooks' || $table == 'dumps' ? array() : array("where" => 1, "order" => 1)),
|
||||
);
|
||||
}
|
||||
return $return;
|
||||
|
||||
@@ -174,5 +174,6 @@ DROP PROCEDURE adminer_alter;
|
||||
'pl' => array('' => 'Eksportuje jedną bazę danych (np. programistyczną), aby można ją było zsynchronizować z inną bazą danych (np. produkcyjną)'),
|
||||
'ro' => array('' => 'Exportați o bază de date (de exemplu, development) astfel încât să poată fi sincronizată cu o altă bază de date (de exemplu, de producție)'),
|
||||
'ja' => array('' => 'データベース (開発用など) をエクスポートし、別のデータベース (本番用など) と同期'),
|
||||
'hr' => array('' => 'Izvozi bazu podataka (npr. razvojnu) tako da se može sinkronizirati s drugom bazom (npr. produkcijskom)'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -43,5 +43,6 @@ class AdminerDumpBz2 extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Zrzuć do formatu Bzip2'),
|
||||
'ro' => array('' => 'Dump în format Bzip2'),
|
||||
'ja' => array('' => 'Bzip2 形式でエクスポート'),
|
||||
'hr' => array('' => 'Izvoz u Bzip2 format'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -18,5 +18,6 @@ class AdminerDumpDate extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Dołącz bieżącą datę i godzinę do nazwy pliku eksportu'),
|
||||
'ro' => array('' => 'Includeți data și ora curentă în numele fișierului de export'),
|
||||
'ja' => array('' => 'エクスポートファイル名に現在日時を含める'),
|
||||
'hr' => array('' => 'Dodaje trenutni datum i vrijeme u naziv datoteke izvoza'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -64,5 +64,6 @@ class AdminerDumpJson extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Zrzuć do formatu JSON'),
|
||||
'ro' => array('' => 'Dump în format JSON'),
|
||||
'ja' => array('' => 'JSON 形式でエクスポート'),
|
||||
'hr' => array('' => 'Izvoz u JSON format'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -52,5 +52,6 @@ class AdminerDumpPhp extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Zrzucaj do formatu PHP'),
|
||||
'ro' => array('' => 'Dump în format PHP'),
|
||||
'ja' => array('' => 'PHP 形式でエクスポート'),
|
||||
'hr' => array('' => 'Izvoz u PHP format'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -58,5 +58,6 @@ class AdminerDumpXml extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Zrzut do formatu XML w strukturze <database name=""><table name=""><column name="">value'),
|
||||
'ro' => array('' => 'Dump în format XML în structura <database name=""><table name=""><column name="">value'),
|
||||
'ja' => array('' => '構造化 XML 形式でエクスポート <database name=""><table name=""><column name="">value'),
|
||||
'hr' => array('' => 'Izvoz u XML format u strukturi <database name=""><table name=""><column name="">vrijednost'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -47,5 +47,6 @@ class AdminerDumpZip extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Zrzuć do formatu ZIP'),
|
||||
'ro' => array('' => 'Dump în format ZIP'),
|
||||
'ja' => array('' => 'ZIP 形式でエクスポート'),
|
||||
'hr' => array('' => 'Izvoz u ZIP format'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -57,5 +57,6 @@ class AdminerEditCalendar extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wyświetl interfejs jQuery Timepicker dla każdego pola daty i godziny'),
|
||||
'ro' => array('' => 'Afișați jQuery UI Timepicker pentru fiecare câmp de dată și dată-timp'),
|
||||
'ja' => array('' => '各日時列に jQuery UI の Timepicker を表示'),
|
||||
'hr' => array('' => 'Prikazuje jQuery UI Timepicker za svako polje datuma i datuma-vremena'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -46,5 +46,6 @@ class AdminerEditForeign extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wybierz klucz obcy w formularzu edycji'),
|
||||
'ro' => array('' => 'Selectați cheia străină în formularul de editare'),
|
||||
'ja' => array('' => '外部キーを編集フォームで選択'),
|
||||
'hr' => array('' => 'Odabir stranog ključa u obrascu za uređivanje'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -20,5 +20,6 @@ class AdminerEditTextarea extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Użyj <textarea> dla char i varchar'),
|
||||
'ro' => array('' => 'Utilizați <textarea> pentru char și varchar'),
|
||||
'ja' => array('' => 'char や varchar に <textarea> を使用'),
|
||||
'hr' => array('' => 'Koristi <textarea> za char i varchar polja'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -43,5 +43,6 @@ class AdminerEditorSetup extends Adminer\Plugin {
|
||||
'de' => array('' => 'Treiber, Server und Datenbank für die Verwendung mit Adminer Editor einrichten'),
|
||||
'ja' => array('' => 'Adminer Editor で使用するドライバ、サーバ、データベースを設定'),
|
||||
'pl' => array('' => 'Konfiguruj sterownik, serwer i bazę danych do użycia z Adminer Editorem'),
|
||||
'hr' => array('' => 'Postavlja upravljački program, poslužitelj i bazu podataka za korištenje s Adminer Editorom'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -18,5 +18,6 @@ class AdminerEditorViews extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wyświetlaj widoki w Adminer Editorze'),
|
||||
'ro' => array('' => 'Afișează vizualizări în Adminer Editor'),
|
||||
'ja' => array('' => 'Adminer Editor にビューを表示'),
|
||||
'hr' => array('' => 'Prikazuje poglede u Adminer Editoru'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -61,5 +61,6 @@ class AdminerEmailTable extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Pobieraj temat i wiadomość e-mail z bazy danych (Adminer Editor)'),
|
||||
'ro' => array('' => 'Obțineți subiectul e-mailului și mesajul din baza de date (Adminer Editor)'),
|
||||
'ja' => array('' => 'メールの件名と本文をデータベースから取得 (Adminer Editor)'),
|
||||
'hr' => array('' => 'Dohvaća predmet i poruku e-pošte iz baze podataka (Adminer Editor)'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -39,5 +39,6 @@ class AdminerEnumOption extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Użyj <select><option> do edycji enum zamiast <input type="radio">'),
|
||||
'ro' => array('' => 'Utilizați <select><option> pentru editarea enum în loc de <input type="radio">'),
|
||||
'ja' => array('' => '列挙型の編集に <input type="radio"> ではなく <select><option> を使用'),
|
||||
'hr' => array('' => 'Koristi <select><option> za uređivanje enum polja umjesto <input type="radio">'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -55,5 +55,6 @@ class AdminerFileUpload extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Edytuj pola kończące się na "_path" za pomocą <input type="file"> i link do przesłanych plików z wybierz'),
|
||||
'ro' => array('' => 'Modificați câmpurile care se termină cu "_path" prin <input type="file"> și creați un link către fișierele încărcate din select'),
|
||||
'ja' => array('' => '列名が "_path" で終わる列を <input type="file"> で変更し、"選択" からアップロードされたファイルにリンク'),
|
||||
'hr' => array('' => 'Uređuje polja koja završavaju s "_path" putem <input type="file"> i povezuje ih s učitanim datotekama'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -191,5 +191,6 @@ class AdminerForeignSystem extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Połącz tabele systemowe (w bazach danych "mysql" i "information_schema") za pomocą kluczy obcych'),
|
||||
'ro' => array('' => 'Conectați tabelele de sistem (în bazele de date "mysql" și "information_schema") prin chei străine'),
|
||||
'ja' => array('' => 'システムテーブル ("mysql" と "information_schema") を外部キーを用いて接続'),
|
||||
'hr' => array('' => 'Povezuje sistemske tablice (u bazama "mysql" i "information_schema") stranim ključevima'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -30,5 +30,6 @@ class AdminerFrames extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Zezwalaj na używanie Adminera wewnątrz ramki'),
|
||||
'ro' => array('' => 'Permiteți utilizarea Adminer în interiorul unui cadru'),
|
||||
'ja' => array('' => 'フレーム内での Adminer 利用を許可'),
|
||||
'hr' => array('' => 'Dopušta korištenje Adminera unutar framea'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -107,5 +107,6 @@ addEventListener('DOMContentLoaded', () => {
|
||||
'de' => array('' => 'CodeMirror 5 verwenden für die Syntaxhervorhebung und <textarea> einschließlich der Überschrift von Schlüsselwörtern und Tabellen'),
|
||||
'ja' => array('' => 'CodeMirror 5 を用い、キーワードやテーブルを含む構文や <textarea> を強調表示'),
|
||||
'pl' => array('' => 'Użyj CodeMirror 5 do podświetlania składni i <textarea>, uwzględniając wcześniejsze wpisywanie słów kluczowych i tabel'),
|
||||
'hr' => array('' => 'Koristi CodeMirror 5 za isticanje sintakse i <textarea>, uključujući dovršavanje ključnih riječi i tablica'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -77,5 +77,6 @@ addEventListener('DOMContentLoaded', () => {
|
||||
'de' => array('' => 'Monaco-Editor von VS Code verwenden, für die Syntaxhervorhebung und SQL <textarea>'),
|
||||
'ja' => array('' => '構文や <textarea> の強調表示に VS Code の Monaco Editor を使用'),
|
||||
'pl' => array('' => 'Użyj Monaco Editora programu VS Code do podświetlania składni i <textarea> SQL'),
|
||||
'hr' => array('' => 'Koristi Monaco Editor iz VS Code za isticanje sintakse i SQL <textarea>'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -65,5 +65,6 @@ if (el) {
|
||||
'de' => array('' => 'Prism Code Editor verwenden, für die Syntaxhervorhebung und <textarea>'),
|
||||
'ja' => array('' => '構文や <textarea> の強調表示に Prism Code Editor を使用'),
|
||||
'pl' => array('' => 'Użyj Prism Code Editora do podświetlania składni i <textarea>'),
|
||||
'hr' => array('' => 'Koristi Prism Code Editor za isticanje sintakse i SQL <textarea>'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -52,5 +52,6 @@ class AdminerJsonColumn extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wyświetl wartości JSON jako tabelę w edycji'),
|
||||
'ro' => array('' => 'Afișează valorile JSON sub formă de tabel în editare'),
|
||||
'ja' => array('' => 'JSON 値をテーブルとして編集画面に表示'),
|
||||
'hr' => array('' => 'Prikazuje JSON vrijednosti kao tablicu u uređivanju'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -42,5 +42,6 @@ class AdminerLoginIp extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Sprawdzaj adres IP i zezwakaj na puste hasło'),
|
||||
'ro' => array('' => 'Verificați adresa IP și permiteți parola goală'),
|
||||
'ja' => array('' => 'IP アドレスの確認、及び空パスワードの許可'),
|
||||
'hr' => array('' => 'Provjerava IP adresu i dopušta praznu lozinku'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -75,5 +75,10 @@ class AdminerLoginOtp extends Adminer\Plugin {
|
||||
'ja' => array(
|
||||
'' => 'ログイン時にワンタイムパスワード (二要素認証) が必要',
|
||||
),
|
||||
'hr' => array(
|
||||
'' => 'Jednokratna lozinka (dvofaktorska autentifikacija) potrebna pri prijavi',
|
||||
'One Time Password' => 'Jednokratna lozinka',
|
||||
'Invalid OTP.' => 'Nevažeća jednokratna lozinka.',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -33,5 +33,6 @@ class AdminerLoginPasswordLess extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Włącz logowanie bez hasła'),
|
||||
'ro' => array('' => 'Activați autentificarea fără parolă'),
|
||||
'ja' => array('' => 'パスワードなしのログインを許可'),
|
||||
'hr' => array('' => 'Omogućuje prijavu bez lozinke'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -44,5 +44,6 @@ class AdminerLoginServers extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wyświetlaj stałą listę serwerów w formularzu logowania'),
|
||||
'ro' => array('' => 'Afișarea unei liste constante de servere în formularul de conectare'),
|
||||
'ja' => array('' => 'ログイン画面に定義済のサーバリストを表示'),
|
||||
'hr' => array('' => 'Prikazuje konstantan popis poslužitelja u obrascu za prijavu'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -28,5 +28,6 @@ class AdminerLoginSsl extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Połącz się z MySQL, PostgreSQL, MS SQL za pomocą protokołu SSL'),
|
||||
'ro' => array('' => 'Conectați-vă la MySQL, PostgreSQL, MS SQL utilizând SSL'),
|
||||
'ja' => array('' => 'MySQL, PostgreSQL, MS SQL への接続時に SSL を利用'),
|
||||
'hr' => array('' => 'Spajanje na MySQL, PostgreSQL i MS SQL putem SSL-a'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -33,5 +33,6 @@ class AdminerLoginTable extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Uwierzytelnij użytkownika z tabeli "login"'),
|
||||
'ro' => array('' => 'Autentificați un utilizator din tabelul "login"'),
|
||||
'ja' => array('' => '"login" テーブルによるユーザ認証'),
|
||||
'hr' => array('' => 'Autentificira korisnika prema tablici "login"'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -44,5 +44,6 @@ class AdminerMasterSlave extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wykonuje zapisy na komputerze głównym i odczyty na komputerze podrzędnym'),
|
||||
'ro' => array('' => 'Executarea scrierilor pe master și a citirilor pe slave'),
|
||||
'ja' => array('' => 'マスタ書込みとスレーブ読込みの有効化'),
|
||||
'hr' => array('' => 'Izvodi pisanje na masteru i čitanje na slaveu'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -112,5 +112,14 @@ class AdminerMenuLinks extends Adminer\Plugin {
|
||||
'Select data' => 'データ',
|
||||
'Show structure' => '構造',
|
||||
),
|
||||
'hr' => array(
|
||||
'' => 'Prikazuje veze na odabir podataka ili strukturu tablice u izborniku',
|
||||
'Select data' => 'Odaberi podatke',
|
||||
'Show structure' => 'Prikaži strukturu',
|
||||
'Both' => 'Oboje',
|
||||
'Auto (select on select page, structure otherwise)' => 'Automatski (odabir na stranici odabira, inače struktura)',
|
||||
'Menu table links' => 'Veze tablice u izborniku',
|
||||
'select' => 'odaberi',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -37,5 +37,6 @@ class AdminerPrettyJsonColumn extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Ładnie drukuj wartości JSON w edycji'),
|
||||
'ro' => array('' => 'Afisare frumoasa a valorilor JSON în editare'),
|
||||
'ja' => array('' => '編集時に JSON 文字列を見易く表示'),
|
||||
'hr' => array('' => 'Lijepo prikazuje JSON vrijednosti u uređivanju'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -23,5 +23,6 @@ class AdminerRowNumbers extends Adminer\Plugin {
|
||||
|
||||
protected $translations = array(
|
||||
'cs' => array('' => 'Zobrazí čísla řádek ve výpisu'),
|
||||
'hr' => array('' => 'Prikazuje brojeve redaka u ispisu'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -457,5 +457,14 @@ class AdminerSelectEmail extends Adminer\Plugin {
|
||||
'Attachments' => '附件',
|
||||
'Send' => '发送',
|
||||
'%d e-mail(s) have been sent.' => '%d 封邮件已发送。'),
|
||||
'hr' => array(
|
||||
'' => 'Slanje e-pošte odabranim recima',
|
||||
'E-mail' => 'E-pošta',
|
||||
'From' => 'Od',
|
||||
'Subject' => 'Predmet',
|
||||
'Attachments' => 'Privici',
|
||||
'Send' => 'Pošalji',
|
||||
'%d e-mail(s) have been sent.' => array('%d e-mail je poslan.', '%d e-maila su poslana.', '%d e-mailova je poslano.'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -53,5 +53,6 @@ class AdminerSlugify extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wstępnie wypełnij pole zawierające "_slug" osłabioną wartością poprzedniego pola (JavaScript)'),
|
||||
'ro' => array('' => 'Precompletați câmpul care conține "_slug" cu valoarea slugificată a unui câmp anterior (JavaScript)'),
|
||||
'ja' => array('' => '列名に "_slug" を含む列を、前列の URL 化された値でプレフィル (JavaScript)'),
|
||||
'hr' => array('' => 'Popunjava polje koje sadrži "_slug" slugificiranom vrijednošću prethodnog polja (JavaScript)'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -116,5 +116,10 @@ geminiText.onkeydown = event => {
|
||||
'Ask Gemini' => 'Gemini に聞く',
|
||||
'Just a sec...' => 'しばらくお待ち下さい...',
|
||||
),
|
||||
'hr' => array(
|
||||
'' => 'Generiranje SQL naredbi pomoću Google Gemini AI',
|
||||
'Ask Gemini' => 'Pitaj Gemini',
|
||||
'Just a sec...' => 'Samo trenutak...',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -42,5 +42,6 @@ class AdminerSqlLog extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Rejestruj wszystkie zapytania do pliku SQL'),
|
||||
'ro' => array('' => 'Logați toate interogările în fișierul SQL'),
|
||||
'ja' => array('' => '全クエリを SQL ファイルに記録'),
|
||||
'hr' => array('' => 'Bilježi sve upite u SQL datoteku'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -33,5 +33,6 @@ class AdminerTableIndexesStructure extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Rozszerzona tabela wyników struktury indeksów'),
|
||||
'ro' => array('' => 'Ieșirea expandată a structurii indecsilor tabelului'),
|
||||
'ja' => array('' => 'テーブルのインデックス構造を拡張表示'),
|
||||
'hr' => array('' => 'Prošireni prikaz indeksa tablice'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -44,5 +44,6 @@ class AdminerTableStructure extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Rozszerzone wyjście struktury tabeli'),
|
||||
'ro' => array('' => 'Ieșirea expandată a structurii tabelei'),
|
||||
'ja' => array('' => 'テーブル構造を拡張表示'),
|
||||
'hr' => array('' => 'Prošireni prikaz strukture tablice'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -85,5 +85,9 @@ sessionStorage && document.addEventListener('DOMContentLoaded', () => {
|
||||
'ja' => array(
|
||||
'' => 'テーブル一覧をテーブル名でフィルタリング',
|
||||
),
|
||||
'hr' => array(
|
||||
'' => 'Filtriranje tablice prema imenu',
|
||||
'Filter' => 'Filtar',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -50,5 +50,10 @@ class AdminerTimeout extends Adminer\Plugin {
|
||||
'Queries timeout' => 'Timeout dotazů',
|
||||
'seconds' => 'sekund',
|
||||
),
|
||||
'hr' => array(
|
||||
'' => 'Postavljanje vremenskog ograničenja upita',
|
||||
'Queries timeout' => 'Vremensko ograničenje upita',
|
||||
'seconds' => 'sekundi',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -73,5 +73,6 @@ qs('#form').onsubmit = () => {
|
||||
'pl' => array('' => 'Edytuj wszystkie pola zawierające "_html" za pomocą edytora HTML TinyMCE i wyświetl kod HTML w wybranych'),
|
||||
'ro' => array('' => 'Editați toate câmpurile care conțin "_html" cu ajutorul editorului HTML TinyMCE și afișați HTML-ul în select'),
|
||||
'ja' => array('' => '列名が "_html" を含む列を TinyMCE の HTML エディタで編集し、編集結果の HTML コードを "選択" 画面に表示'),
|
||||
'hr' => array('' => 'Uređuje sva polja koja sadrže "_html" pomoću HTML editora TinyMCE i prikazuje HTML u ispisu'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -57,5 +57,6 @@ class AdminerTranslation extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Przetłumacz wszystkie komentarze do tabeli i pól, wartości enum i set z tabeli "translation" (automatycznie wstawia nowe tłumaczenia)'),
|
||||
'ro' => array('' => 'Traduceți toate comentariile tabelelor și câmpurilor, valorile enum și set din tabelul "translation" (inserează automat noi traduceri)'),
|
||||
'ja' => array('' => 'テーブル "translation" を用いてすべてのテーブルや列のコメント、列挙型、セット値を翻訳 (自動的に翻訳文で更新)'),
|
||||
'hr' => array('' => 'Prevodi sve komentare tablica i polja, vrijednosti enum i set iz tablice "translation" (automatski ubacuje nove prijevode)'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -34,5 +34,6 @@ verifyVersion = current => {
|
||||
'de' => array('' => 'Neue Versionen von GitHub verifizieren'),
|
||||
'ja' => array('' => 'GitHub の新版を管理'),
|
||||
'pl' => array('' => 'Weryfikuj nowe wersje z GitHuba'),
|
||||
'hr' => array('' => 'Provjera novih verzija s GitHuba'),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -18,5 +18,6 @@ class AdminerVersionNoverify extends Adminer\Plugin {
|
||||
'pl' => array('' => 'Wyłącz sprawdzanie wersji'),
|
||||
'ro' => array('' => 'Dezactivați verificatorul de versiuni'),
|
||||
'ja' => array('' => 'バージョンチェックを無効化'),
|
||||
'hr' => array('' => 'Onemogućuje provjeru novih verzija'),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user