Merge branch 'master' into master-security

This commit is contained in:
Michal Čihař 2016-09-16 09:49:28 +02:00
commit 809a75eb92
29 changed files with 426 additions and 571 deletions

View File

@ -6,6 +6,7 @@
language: php
php:
- "7.1.0RC1"
- "7.0"
- "5.6"
- "5.5"

View File

@ -3,7 +3,6 @@ phpMyAdmin - ChangeLog
4.7.0.0 (not yet released)
- patch #12233 [Display] Improve message when renaming database to same name
- issue #11924 Remove caching of server information
- issue #6146 Log authentication attempts to syslog
- issue #11981 Remove support for Swekey authentication
- issue #11987 Remove code for no longer supported MSIE versions
@ -28,6 +27,8 @@ phpMyAdmin - ChangeLog
- issue #12465 Improved handling of http requests
- issue #12474 Broken links in Setup forms Navigation
- issue #12494 Can't add a new User
- issue #12523 Add 'token' Parameter in all POST requests (Fix 'Token mismatch' errors)
- issue #12302 Improved usage of number_format
4.6.5 (not yet released)
- issue Remove potentionally license problematic sRGB profile
@ -49,6 +50,15 @@ phpMyAdmin - ChangeLog
- issue #12502 Remove unused paramenter when connecting to MySQLi
- issue #12303 Fix number formatting with different settings of precision in PHP
- issue #12405 Use single quotes in PHP code
- issue #12534 Option for the dropped column is not removed from 'after_field' select, after the column is dropped
- issue #12531 Properly detect DROP DATABASE queries
- issue #12470 Fix possible race condition in setting URL hash
- issue #11924 Remove caching of server information
- issue #11628 Proper parsing of INSERT ... ON DUPLICATE KEY queries
- issue #12545 Proper parsing of CREATE TABLE ... PARTITION queries
- issue #12473 Code can throw unhandled exception
- issue #12550 Do not try to keep alive session even after expiry
- issue #12512 Fixed rendering BBCode links in setup
4.6.4 (2016-08-16)
- issue [security] Weaknesses with cookie encryption, see PMASA-2016-29

View File

@ -122,8 +122,8 @@ libraries/plugins/transformations/TEMPLATE\_ABSTRACT files for adding
your own transformation plug-in. You can also generate a new
transformation plug-in (with or without the abstract transformation
class), by using
:file:`libraries/plugins/transformations/generator_plugin.sh` or
:file:`libraries/plugins/transformations/generator_main_class.sh`.
:file:`scripts/transformations_generator_plugin.sh` or
:file:`scripts/transformations_generator_main_class.sh`.
The applyTransformation() method always gets passed three variables:

View File

@ -691,6 +691,19 @@ if ($go_sql) {
// @todo: possibly refactor
extract($analyzed_sql_results);
// Check if User is allowed to issue a 'DROP DATABASE' Statement
if (PMA_hasNoRightsToDropDatabase(
$analyzed_sql_results, $cfg['AllowUserDropDatabase'], $GLOBALS['is_superuser']
)) {
PMA\libraries\Util::mysqlDie(
__('"DROP DATABASE" statements are disabled.'),
'',
false,
$_SESSION['Import_message']['go_back_url']
);
return;
} // end if
if ($table != $table_from_sql && !empty($table_from_sql)) {
$table = $table_from_sql;
}

View File

@ -588,8 +588,9 @@ function setTab(tab_id)
}
$this.find('li').removeClass('active').find('a[href=#' + tab_id + ']').parent().addClass('active');
$this.parent().find('div.tabs_contents fieldset').hide().filter('#' + tab_id).show();
location.hash = 'tab_' + tab_id;
$this.parent().find('input[name=tab_hash]').val(location.hash);
var hashValue = 'tab_' + tab_id;
location.hash = hashValue;
$this.parent().find('input[name=tab_hash]').val(hashValue);
});
}

View File

@ -613,8 +613,12 @@ function confirmLink(theLink, theSqlQuery)
if (is_confirmed) {
if ($(theLink).hasClass('formLinkSubmit')) {
var name = 'is_js_confirmed';
if ($(theLink).attr('href').indexOf('usesubform') != -1) {
name = 'subform[' + $(theLink).attr('href').substr('#').match(/usesubform\[(\d+)\]/i)[1] + '][is_js_confirmed]';
var matches = $(theLink).attr('href').substr('#').match(/usesubform\[(\d+)\]/i);
if (matches != null) {
name = 'subform[' + matches[1] + '][is_js_confirmed]';
}
}
$(theLink).parents('form').append('<input type="hidden" name="' + name + '" value="1" />');
@ -629,8 +633,7 @@ function confirmLink(theLink, theSqlQuery)
} // end of the 'confirmLink()' function
/**
* Displays an error message if a "DROP DATABASE" statement is submitted
* while it isn't allowed, else confirms a "DROP/DELETE/ALTER" query before
* Confirms a "DROP/DELETE/ALTER" query before
* submitting it if required.
* This function is called by the 'checkSqlQuery()' js function.
*
@ -648,17 +651,6 @@ function confirmQuery(theForm1, sqlQuery1)
return true;
}
// "DROP DATABASE" statement isn't allowed
if (PMA_messages.strNoDropDatabases !== '') {
var drop_re = new RegExp('(^|;)\\s*DROP\\s+(IF EXISTS\\s+)?DATABASE\\s', 'i');
if (drop_re.test(sqlQuery1.value)) {
alert(PMA_messages.strNoDropDatabases);
theForm1.reset();
sqlQuery1.focus();
return false;
} // end if
} // end if
// Confirms a "DROP/DELETE/ALTER/TRUNCATE" statement
//
// TODO: find a way (if possible) to use the parser-analyser
@ -666,7 +658,7 @@ function confirmQuery(theForm1, sqlQuery1)
// For now, I just added a ^ to check for the statement at
// beginning of expression
var do_confirm_re_0 = new RegExp('^\\s*DROP\\s+(IF EXISTS\\s+)?(TABLE|DATABASE|PROCEDURE)\\s', 'i');
var do_confirm_re_0 = new RegExp('^\\s*DROP\\s+(IF EXISTS\\s+)?(TABLE|PROCEDURE)\\s', 'i');
var do_confirm_re_1 = new RegExp('^\\s*ALTER\\s+TABLE\\s+((`[^`]+`)|([A-Za-z0-9_$]+))\\s+DROP\\s', 'i');
var do_confirm_re_2 = new RegExp('^\\s*DELETE\\s+FROM\\s', 'i');
var do_confirm_re_3 = new RegExp('^\\s*TRUNCATE\\s', 'i');
@ -911,13 +903,13 @@ AJAX.registerOnload('functions.js', function () {
data: params,
success: function (data) {
if (data.success) {
if (PMA_commonParams.get('LoginCookieValidity')-_idleSecondsCounter > 5) {
var interval = (PMA_commonParams.get('LoginCookieValidity') - _idleSecondsCounter - 5) * 1000;
if (interval > Math.pow(2, 31) - 1) { // max value for setInterval() function
interval = Math.pow(2, 31) - 1;
}
var remaining = PMA_commonParams.get('LoginCookieValidity') - _idleSecondsCounter;
if (remaining > 5) {
// max value for setInterval() function
var interval = min(remaining * 1000, Math.pow(2, 31) - 1);
updateTimeout = window.setTimeout(UpdateIdleTime, interval);
} else {
} else if (remaining > 0) {
// We're close to session expiry
updateTimeout = window.setTimeout(UpdateIdleTime, 2000);
}
} else { //timeout occurred

View File

@ -39,11 +39,6 @@ if (!defined('TESTSUITE')) {
);
}
$js_messages['strNoDropDatabases'] = __('"DROP DATABASE" statements are disabled.');
if ($cfg['AllowUserDropDatabase']) {
$js_messages['strNoDropDatabases'] = '';
}
/* For confirmations */
$js_messages['strConfirm'] = __('Confirm');
$js_messages['strDoYouReally'] = __('Do you really want to execute "%s"?');

View File

@ -239,8 +239,16 @@ AJAX.registerOnload('tbl_structure.js', function () {
}
$after_field_item.remove();
$curr_row.hide("medium").remove();
//by default select the last option to add new column (in case last column is dropped)
// Remove the dropped column from select menu for 'after field'
$("select[name=after_field]").find(
'[value="' + curr_column_name.trim() + '"]'
).remove();
// by default select the (new) last option to add new column
// (in case last column is dropped)
$("select[name=after_field] option:last").attr("selected","selected");
//refresh table stats
if (data.tableStat) {
$('#tablestatistics').html(data.tableStat);

View File

@ -53,6 +53,14 @@ class Sanitize
'./server_privileges.php?',
'./tbl_structure.php?',
);
// Adjust path to setup script location
if (defined('PMA_SETUP')) {
foreach ($valid_starts as $key => $value) {
if (substr($value, 0, 2) === './') {
$valid_starts[$key] = '.' . $value;
}
}
}
if ($other) {
$valid_starts[] = 'mailto:';
$valid_starts[] = 'ftp://';

View File

@ -76,16 +76,16 @@ class SysInfoLinux extends \PMA\libraries\SysInfo
$mem = array_merge($defaults, $mem);
foreach ($mem as $idx => $value) {
$mem[$idx] = intval($value);
}
$mem['MemUsed'] = $mem['MemTotal']
- $mem['MemFree'] - $mem['Cached'] - $mem['Buffers'];
$mem['SwapUsed'] = $mem['SwapTotal']
- $mem['SwapFree'] - $mem['SwapCached'];
foreach ($mem as $idx => $value) {
$mem[$idx] = intval($value);
}
return $mem;
}
}

View File

@ -1475,26 +1475,6 @@ class Util
return array(trim($return_value), $unit);
} // end of the 'formatByteDown' function
/**
* Changes thousands and decimal separators to locale specific values.
*
* @param string $value the value
*
* @return string
*/
public static function localizeNumber($value)
{
return str_replace(
array(',', '.'),
array(
/* l10n: Thousands separator */
__(','),
/* l10n: Decimal separator */
__('.'),
),
$value
);
}
/**
* Formats $value to the given length and appends SI prefixes
@ -1536,11 +1516,18 @@ class Util
$originalValue = $value;
//number_format is not multibyte safe, str_replace is safe
if ($digits_left === 0) {
$value = number_format($value, $digits_right);
$value = number_format(
$value,
$digits_right,
/* l10n: Decimal separator */
__('.'),
/* l10n: Thousands separator */
__(',')
);
if (($originalValue != 0) && (floatval($value) == 0)) {
$value = ' <' . (1 / self::pow(10, $digits_right));
}
return self::localizeNumber($value);
return $value;
}
// this units needs no translation, ISO
@ -1597,19 +1584,32 @@ class Util
$unit = $units[$d];
// number_format is not multibyte safe, str_replace is safe
$formattedValue = number_format($value, $digits_right);
$formattedValue = number_format(
$value,
$digits_right,
/* l10n: Decimal separator */
__('.'),
/* l10n: Thousands separator */
__(',')
);
// If we don't want any zeros, remove them now
if ($noTrailingZero && strpos($formattedValue, '.') !== false) {
$formattedValue = preg_replace('/\.?0+$/', '', $formattedValue);
}
$localizedValue = self::localizeNumber($formattedValue);
if ($originalValue != 0 && floatval($value) == 0) {
return ' <' . self::localizeNumber((1 / self::pow(10, $digits_right)))
return ' <' . number_format(
(1 / self::pow(10, $digits_right)),
$digits_right,
/* l10n: Decimal separator */
__('.'),
/* l10n: Thousands separator */
__(',')
)
. ' ' . $unit;
}
return $sign . $localizedValue . ' ' . $unit;
return $sign . $formattedValue . ' ' . $unit;
} // end of the 'formatNumber' function
/**

View File

@ -380,10 +380,10 @@ if (PMA_checkPageValidity($_REQUEST['back'], $goto_whitelist)) {
* f.e. lang, server, collation_connection in PMA\libraries\Config
*/
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$token_mismatch = true;
$token_provided = false;
$token_mismatch = true;
$token_provided = false;
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (PMA_isValid($_POST['token'])) {
$token_provided = true;
$token_mismatch = ! hash_equals($_SESSION[' PMA_token '], $_POST['token']);

View File

@ -698,7 +698,7 @@ $GLOBALS['dummy_queries'] = array(
array(
'query' => "SELECT `PARTITION_METHOD` "
. "FROM `information_schema`.`PARTITIONS` "
. "WHERE `TABLE_SCHEMA` = 'db' AND `TABLE_NAME` = 'table'",
. "WHERE `TABLE_SCHEMA` = 'db' AND `TABLE_NAME` = 'table' LIMIT 1",
'result' => array(),
),
array(

View File

@ -20,11 +20,6 @@ if (! defined('PHPMYADMIN')) {
*/
require_once './libraries/check_user_privileges.lib.php';
/**
* We do this check, DROP DATABASE does not need to be confirmed elsewhere
*/
define('PMA_CHK_DROP', 1);
/**
* Checks whether timeout is getting close
*
@ -174,7 +169,6 @@ function PMA_importRunQuery($sql = '', $full = '', &$sql_data = array())
if (! empty($import_run_buffer['sql'])
&& trim($import_run_buffer['sql']) != ''
) {
$max_sql_len = max(
$max_sql_len,
mb_strlen($import_run_buffer['sql'])
@ -182,63 +176,53 @@ function PMA_importRunQuery($sql = '', $full = '', &$sql_data = array())
if (! $sql_query_disabled) {
$sql_query .= $import_run_buffer['full'];
}
$pattern = '@^[[:space:]]*DROP[[:space:]]+(IF EXISTS[[:space:]]+)?'
. 'DATABASE @i';
if (! $cfg['AllowUserDropDatabase']
&& ! $is_superuser
&& preg_match($pattern, $import_run_buffer['sql'])
) {
$GLOBALS['message'] = Message::error(
__('"DROP DATABASE" statements are disabled.')
$executed_queries++;
if ($run_query && $executed_queries < 50) {
$go_sql = true;
if (! $sql_query_disabled) {
$complete_query = $sql_query;
$display_query = $sql_query;
} else {
$complete_query = '';
$display_query = '';
}
$sql_query = $import_run_buffer['sql'];
$sql_data['valid_sql'][] = $import_run_buffer['sql'];
$sql_data['valid_full'][] = $import_run_buffer['full'];
if (! isset($sql_data['valid_queries'])) {
$sql_data['valid_queries'] = 0;
}
$sql_data['valid_queries']++;
} elseif ($run_query) {
/* Handle rollback from go_sql */
if ($go_sql && isset($sql_data['valid_full'])) {
$queries = $sql_data['valid_sql'];
$fulls = $sql_data['valid_full'];
$count = $sql_data['valid_queries'];
$go_sql = false;
$sql_data['valid_sql'] = array();
$sql_data['valid_queries'] = 0;
unset($sql_data['valid_full']);
for ($i = 0; $i < $count; $i++) {
PMA_executeQuery(
$queries[$i],
$fulls[$i],
$sql_data
);
}
}
PMA_executeQuery(
$import_run_buffer['sql'],
$import_run_buffer['full'],
$sql_data
);
$error = true;
} else {
$executed_queries++;
if ($run_query && $executed_queries < 50) {
$go_sql = true;
if (! $sql_query_disabled) {
$complete_query = $sql_query;
$display_query = $sql_query;
} else {
$complete_query = '';
$display_query = '';
}
$sql_query = $import_run_buffer['sql'];
$sql_data['valid_sql'][] = $import_run_buffer['sql'];
$sql_data['valid_full'][] = $import_run_buffer['full'];
if (! isset($sql_data['valid_queries'])) {
$sql_data['valid_queries'] = 0;
}
$sql_data['valid_queries']++;
} elseif ($run_query) {
/* Handle rollback from go_sql */
if ($go_sql && isset($sql_data['valid_full'])) {
$queries = $sql_data['valid_sql'];
$fulls = $sql_data['valid_full'];
$count = $sql_data['valid_queries'];
$go_sql = false;
$sql_data['valid_sql'] = array();
$sql_data['valid_queries'] = 0;
unset($sql_data['valid_full']);
for ($i = 0; $i < $count; $i++) {
PMA_executeQuery(
$queries[$i],
$fulls[$i],
$sql_data
);
}
}
PMA_executeQuery(
$import_run_buffer['sql'],
$import_run_buffer['full'],
$sql_data
);
} // end run query
} // end if not DROP DATABASE
} // end run query
// end non empty query
} elseif (! empty($import_run_buffer['full'])) {
if ($go_sql) {

View File

@ -104,7 +104,7 @@ class Svg extends XMLWriter
/**
* Set document font size
*
* @param string $value sets the font size in pixels
* @param integer $value sets the font size in pixels
*
* @return void
*/
@ -116,7 +116,7 @@ class Svg extends XMLWriter
/**
* Get document font size
*
* @return string returns the font size
* @return integer returns the font size
*/
public function getFontSize()
{
@ -240,7 +240,7 @@ class Svg extends XMLWriter
$this->writeAttribute('style', $styles);
if (isset($text)) {
$this->writeAttribute('font-family', $this->font);
$this->writeAttribute('font-size', $this->fontSize);
$this->writeAttribute('font-size', $this->fontSize . 'px');
$this->text($text);
}
$this->endElement();

View File

@ -72,7 +72,7 @@ class SvgRelationSchema extends ExportRelationSchema
);
$this->diagram->SetAuthor('phpMyAdmin ' . PMA_VERSION);
$this->diagram->setFont('Arial');
$this->diagram->setFontSize('16px');
$this->diagram->setFontSize(16);
$alltables = $this->getTablesFromRequest();
@ -264,4 +264,4 @@ class SvgRelationSchema extends ExportRelationSchema
$table->tableDraw($this->showColor);
}
}
}
}

View File

@ -228,7 +228,8 @@ function PMA_getHtmlToEditUserGroup($userGroup = null)
$html_output .= '<fieldset id="fieldset_user_group_rights">';
$html_output .= '<legend>' . __('User group menu assignments')
. '&nbsp;&nbsp;&nbsp;'
. '<input type="checkbox" class="checkall_box" title="Check all">'
. '<input type="checkbox" id="addUsersForm_checkall" '
. 'class="checkall_box" title="Check all">'
. '<label for="addUsersForm_checkall">' . __('Check all') . '</label>'
. '</legend>';
@ -352,7 +353,7 @@ function PMA_editUserGroup($userGroup, $new = false)
}
$tabName = $tabGroupName . '_' . $tab;
$allowed = isset($_REQUEST[$tabName]) && $_REQUEST[$tabName] == 'Y';
$sql_query .= "('" . PMA_Util::sqlAddSlashes($userGroup) . "', '" . $tabName . "', '"
$sql_query .= "('" . PMA\libraries\Util::sqlAddSlashes($userGroup) . "', '" . $tabName . "', '"
. ($allowed ? "Y" : "N") . "')";
$first = false;
}

View File

@ -689,8 +689,7 @@ function PMA_isDeleteTransformationInfo($analyzed_sql_results)
function PMA_hasNoRightsToDropDatabase($analyzed_sql_results,
$allowUserDropDatabase, $is_superuser
) {
return ! defined('PMA_CHK_DROP')
&& ! $allowUserDropDatabase
return ! $allowUserDropDatabase
&& isset($analyzed_sql_results['drop_database'])
&& $analyzed_sql_results['drop_database']
&& ! $is_superuser;

View File

@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-08-17 11:28+0200\n"
"PO-Revision-Date: 2016-07-29 19:10+0000\n"
"PO-Revision-Date: 2016-09-06 06:15+0000\n"
"Last-Translator: Sevdimali İsa <sevdimaliisayev@mail.ru>\n"
"Language-Team: Azerbaijani <https://hosted.weblate.org/projects/phpmyadmin/"
"master/az/>\n"
"Language-Team: Azerbaijani "
"<https://hosted.weblate.org/projects/phpmyadmin/master/az/>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2.8-dev\n"
"X-Generator: Weblate 2.8\n"
#: changelog.php:38 license.php:33
#, fuzzy, php-format
@ -3822,6 +3822,8 @@ msgid ""
"You attempted to load file with unsupported compression (%s). Either support "
"for it is not implemented or disabled by your configuration."
msgstr ""
"Dəstəklənməyən sıxışdırmayla (%s) fayl yükləməyi sınadınız. Ya bunun üçün "
"hələki dəstək tamamlanmadı ya da konfiqurasiyanız tərəfindən deaktiv edildi."
#: libraries/Footer.php:74
#, php-format

513
po/hu.po

File diff suppressed because it is too large Load Diff

View File

@ -4,20 +4,20 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-08-17 11:28+0200\n"
"PO-Revision-Date: 2016-08-12 14:41+0000\n"
"PO-Revision-Date: 2016-09-16 00:03+0000\n"
"Last-Translator: Dadan Setia <da2n_s@yahoo.co.id>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/phpmyadmin/"
"master/id/>\n"
"Language-Team: Indonesian "
"<https://hosted.weblate.org/projects/phpmyadmin/master/id/>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2.8-dev\n"
"X-Generator: Weblate 2.9-dev\n"
"X-Poedit-Basepath: ../../..\n"
#: changelog.php:38 license.php:33
#, fuzzy, php-format
#, php-format
#| msgid ""
#| "The %s file is not available on this system, please visit www.phpmyadmin."
#| "net for more information."
@ -25,8 +25,8 @@ msgid ""
"The %s file is not available on this system, please visit %s for more "
"information."
msgstr ""
"Berkas %s tidak ditemukan dalam sistem ini, harap kunjungi www.phpmyadmin."
"net untuk informasi lebih lanjut."
"Berkas %s tidak tersedia pada sistem ini, silahkan kunjungi %s untuk "
"informasi lebih lanjut."
#: db_central_columns.php:107
msgid "The central list of columns for the current database is empty."
@ -777,8 +777,9 @@ msgstr ""
"File konfigurasi membutuhkan susunan kata-kata rahasia (blowfish_secret)."
#: index.php:529
#, fuzzy
msgid "The secret passphrase in configuration (blowfish_secret) is too short."
msgstr ""
msgstr "Konfigurasi Passphrase rahasia (blowfish_secret) terlalu pendek."
#: index.php:543
msgid ""
@ -932,16 +933,15 @@ msgid "Do you really want to TRUNCATE the selected partition(s)?"
msgstr "Apakah anda yakin melakukan TRUNCATE pada partisi terpilih?"
#: js/messages.php:90
#, fuzzy
#| msgid "Do you really want to delete the search \"%s\"?"
msgid "Do you really want to remove partitioning?"
msgstr "Apakah anda yakin ingin menghapus pencarian \"%s\"?"
msgstr "Anda yakin ingin menghapus partisi?"
#: js/messages.php:91
#, fuzzy
#| msgid "Do you really want to execute \"%s\"?"
msgid "Do you really want to RESET SLAVE?"
msgstr "Anda yakin akan menjalankan \"%s\"?"
msgstr "Anda yakin akan melakukan RESET SLAVE?"
#: js/messages.php:93
#, fuzzy
@ -959,7 +959,6 @@ msgstr ""
"asli dan simak tips di "
#: js/messages.php:99
#, fuzzy
msgid "Garbled Data"
msgstr "Data yang kacau"
@ -3873,8 +3872,9 @@ msgid "Unknown error in file upload."
msgstr "Galat tidak dikenal sewaktu mengunggah berkas."
#: libraries/File.php:424
#, fuzzy
msgid "File is a symbolic link"
msgstr ""
msgstr "File merupakan tautan simbolik"
#: libraries/File.php:429 libraries/File.php:532
msgid "File could not be read!"

View File

@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-08-17 11:28+0200\n"
"PO-Revision-Date: 2016-08-02 16:59+0000\n"
"Last-Translator: Masahiro Nishi <grooversmail@gmail.com>\n"
"Language-Team: Japanese <https://hosted.weblate.org/projects/phpmyadmin/"
"master/ja/>\n"
"PO-Revision-Date: 2016-09-16 05:38+0000\n"
"Last-Translator: yanagimoto <yanagimoto@klink.co.jp>\n"
"Language-Team: Japanese "
"<https://hosted.weblate.org/projects/phpmyadmin/master/ja/>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2.8-dev\n"
"X-Generator: Weblate 2.9-dev\n"
#: changelog.php:38 license.php:33
#, fuzzy, php-format
@ -776,7 +776,7 @@ msgstr ""
#: index.php:529
msgid "The secret passphrase in configuration (blowfish_secret) is too short."
msgstr ""
msgstr "設定ファイルの中に記述されているパスフレーズblowfish_secretが短すぎます。"
#: index.php:543
msgid ""
@ -1433,7 +1433,7 @@ msgstr "一般クエリログより"
#: js/messages.php:270
msgid "The database name is not known for this query in the server's logs."
msgstr ""
msgstr "サーバーログ内にあるこのクエリに記述されたデータベース名が認識できません。"
#: js/messages.php:272
msgid "Analysing logs"
@ -2001,7 +2001,7 @@ msgstr "テーブルのデータサイズと列数に応じて数秒かかる場
#: js/messages.php:461
msgid "Step"
msgstr ""
msgstr "手順"
#: js/messages.php:463
#, fuzzy
@ -2166,7 +2166,7 @@ msgstr "暗号化鍵"
msgid ""
"Indicates that you have made changes to this page; you will be prompted for "
"confirmation before abandoning changes"
msgstr ""
msgstr "あなたがこのページに変更を加えた場合、変更を破棄する前に確認画面が表示されるでしょう。"
#: js/messages.php:535
msgid "Select referenced key"
@ -2518,7 +2518,7 @@ msgstr "全て無視"
#: js/messages.php:693
msgid ""
"As per your settings, they are being submitted currently, please be patient."
msgstr ""
msgstr "設定に従って現在これらを送信しています。気長にお待ちください。"
#: js/messages.php:703
msgid "Execute this query again?"
@ -3092,7 +3092,7 @@ msgstr "ルーマニア語"
#: libraries/Charsets.php:328
msgid "Sinhalese"
msgstr ""
msgstr "シンハラ語"
#: libraries/Charsets.php:331
msgid "Slovak"
@ -3787,7 +3787,7 @@ msgstr "ファイルのアップロード中に予期しないエラーが発生
#: libraries/File.php:424
msgid "File is a symbolic link"
msgstr ""
msgstr "このファイルはシンボリックリンクです"
#: libraries/File.php:429 libraries/File.php:532
msgid "File could not be read!"
@ -3946,7 +3946,7 @@ msgstr "サポートされていない言語のコードを無視します。"
#: libraries/Linter.php:99
msgid ""
"Linting is disabled for this query because it exceeds the maximum length."
msgstr ""
msgstr "文字列の長さが最大値を超えているため、このクエリに対する構文チェックは無効になっています。"
#: libraries/Linter.php:165
#, php-format
@ -4084,7 +4084,7 @@ msgstr "イベント"
#: libraries/Menu.php:507 libraries/Util.php:4275
msgid "Designer"
msgstr ""
msgstr "デザイナ"
#: libraries/Menu.php:516 libraries/Util.php:4276
#: templates/database/structure/check_all_tables.phtml:34
@ -4217,7 +4217,7 @@ msgstr "変数"
#: libraries/SavedSearches.php:246
msgid "Please provide a name for this bookmarked search."
msgstr ""
msgstr "このブックマークされた検索に名前を付けてください。"
#: libraries/SavedSearches.php:261
#, fuzzy
@ -4237,7 +4237,7 @@ msgstr ""
#: libraries/SavedSearches.php:375
msgid "Missing information to load the search."
msgstr ""
msgstr "この検索を呼び出すための情報に誤りがあります。"
#: libraries/SavedSearches.php:394
#, fuzzy
@ -4797,7 +4797,7 @@ msgstr "統計データ"
#: libraries/Util.php:690
#, php-format
msgid "%d errors were found during analysis."
msgstr ""
msgstr "解析中に %d 個のエラーが見つかりました。"
#: libraries/Util.php:753 libraries/rte/rte_events.lib.php:114
#: libraries/rte/rte_events.lib.php:123 libraries/rte/rte_events.lib.php:154
@ -5093,7 +5093,7 @@ msgstr "%s を %s 以降にアップグレードしてください。"
#: libraries/common.inc.php:901
msgid "Error: Token mismatch"
msgstr ""
msgstr "エラー: トークンが一致しません"
#: libraries/common.inc.php:919
msgid "GLOBALS overwrite attempt"
@ -5174,15 +5174,15 @@ msgstr "閉じておく"
#: libraries/config.values.php:128
msgid "Ask before sending error reports"
msgstr ""
msgstr "エラーレポートを送信する前に確認する"
#: libraries/config.values.php:129
msgid "Always send error reports"
msgstr ""
msgstr "常にエラーレポートを送信する"
#: libraries/config.values.php:130
msgid "Never send error reports"
msgstr ""
msgstr "エラーレポートを送らない"
#: libraries/config.values.php:133
#, fuzzy
@ -6638,7 +6638,7 @@ msgstr ""
#: libraries/config/messages.inc.php:376 libraries/config/messages.inc.php:390
msgid "Update data when duplicate keys found on import"
msgstr ""
msgstr "インポート中に重複したキーが見つかった場合も更新する"
#: libraries/config/messages.inc.php:380
#, fuzzy
@ -8434,7 +8434,7 @@ msgstr ""
#: libraries/config/messages.inc.php:987
msgid "Choose the default action when sending error reports."
msgstr ""
msgstr "エラーレポートを送信する際の既定の動作を選択してください。"
#: libraries/config/messages.inc.php:989
#, fuzzy
@ -8458,7 +8458,7 @@ msgstr "実行されたクエリ"
msgid ""
"Enable Zero Configuration mode which lets you setup phpMyAdmin configuration "
"storage tables automatically."
msgstr ""
msgstr "ゼロコンフィギュレーションモードを有効にします。これによりphpMyAdminのコンフィギュレーションストレージテーブルは自動設定されます。"
#: libraries/config/messages.inc.php:1001
#, fuzzy
@ -8520,7 +8520,7 @@ msgstr "Open Document テキスト"
#: libraries/controllers/database/DatabaseStructureController.php:268
msgid "Favorite List is full!"
msgstr ""
msgstr "お気に入りリストが一杯です!"
#: libraries/controllers/database/DatabaseStructureController.php:554
#: tbl_operations.php:375
@ -8785,7 +8785,7 @@ msgstr ""
msgid ""
"You are using the mysql extension which is deprecated in phpMyAdmin. Please "
"consider installing the mysqli extension."
msgstr ""
msgstr "phpMyAdminで非推奨のmysql拡張機能を使用しています。mysqli拡張機能の導入を検討してください。"
#: libraries/db_designer.lib.php:119
#, fuzzy
@ -9223,15 +9223,15 @@ msgstr "インポートファイルをアップロードしています…"
#: libraries/display_import.lib.php:491
#, php-format
msgid "%s/sec."
msgstr ""
msgstr "%s/秒"
#: libraries/display_import.lib.php:492
msgid "About %MIN min. %SEC sec. remaining."
msgstr ""
msgstr "残り時間 約 %MIN 分 %SEC 秒"
#: libraries/display_import.lib.php:493
msgid "About %SEC sec. remaining."
msgstr ""
msgstr "残り時間 約 %SEC 秒"
#: libraries/display_import.lib.php:495
msgid "The file is being processed, please be patient."
@ -9609,7 +9609,7 @@ msgstr "返り値が空でした (行数 0)。"
#: libraries/import.lib.php:273 libraries/sql.lib.php:1382
msgid "[ROLLBACK occurred.]"
msgstr ""
msgstr "ロールバックが発生しました。"
#: libraries/import.lib.php:1219
msgid ""
@ -9786,7 +9786,7 @@ msgstr "id %1$d の行を挿入しました"
#: libraries/mult_submits.inc.php:328
msgid "Success!"
msgstr ""
msgstr "成功!"
#: libraries/mult_submits.lib.php:345 libraries/operations.lib.php:171
#: libraries/operations.lib.php:1263 libraries/tracking.lib.php:534
@ -9842,7 +9842,7 @@ msgstr "以下のクエリを本当に実行しますか?"
#: libraries/navigation/Navigation.php:54
msgid "An error has occurred while loading the navigation display"
msgstr ""
msgstr "ナビゲーション画面を読み込み中にエラーが発生しました。"
#: libraries/navigation/Navigation.php:192
#, fuzzy

View File

@ -4,8 +4,8 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-08-17 11:28+0200\n"
"PO-Revision-Date: 2016-08-31 15:54+0000\n"
"Last-Translator: Jozef Pistej <pistej2@gmail.com>\n"
"PO-Revision-Date: 2016-09-07 11:45+0000\n"
"Last-Translator: Martin Lacina <martin@whistler.sk>\n"
"Language-Team: Slovak "
"<https://hosted.weblate.org/projects/phpmyadmin/master/sk/>\n"
"Language: sk\n"
@ -5319,10 +5319,9 @@ msgid "Could not connect to the database server!"
msgstr "Nepodarilo sa pripojiť k databázovému serveru!"
#: libraries/config/Validator.php:243
#, fuzzy
#| msgid "Authentication type"
msgid "Invalid authentication type!"
msgstr "Typ overovania"
msgstr "Neplatný typ overenia!"
#: libraries/config/Validator.php:250
msgid "Empty username while using [kbd]config[/kbd] authentication method!"
@ -5437,14 +5436,11 @@ msgid "Highlight pointer"
msgstr "Zvýrazňovač"
#: libraries/config/messages.inc.php:47
#, fuzzy
#| msgid ""
#| "Enable [a@https://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for "
#| "import operations."
msgid "Enable bzip2 compression for import operations."
msgstr ""
"Povoliť [a@https://en.wikipedia.org/wiki/Bzip2]bzip2[/a] kompresiu pre "
"importovanie."
msgstr "Povoliť bzip2 kompresiu pre operácie importu."
#: libraries/config/messages.inc.php:50
msgid "Bzip2"
@ -5465,7 +5461,6 @@ msgid "CHAR columns editing"
msgstr "Úprava polí typu CHAR"
#: libraries/config/messages.inc.php:58
#, fuzzy
#| msgid ""
#| "Use user-friendly editor for editing SQL queries ([a@https://codemirror."
#| "net/]CodeMirror[/a]) with syntax highlighting and line numbers."
@ -5473,8 +5468,8 @@ msgid ""
"Use user-friendly editor for editing SQL queries (CodeMirror) with syntax "
"highlighting and line numbers."
msgstr ""
"Použiť užívateľsky príjemný editor na úpravu SQL dozatazov ([a@https://"
"codemirror.net/]CodeMirror[/a]) s číslovaním riadkov a zvýrazňovaním syntaxe."
"Použiť užívateľsky príjemný editor na úpravu SQL dozatazov CodeMirror) s "
"číslovaním riadkov a zvýrazňovaním syntaxe."
#: libraries/config/messages.inc.php:62
msgid "Enable CodeMirror"
@ -6225,14 +6220,11 @@ msgid "Disable some of the warnings shown by phpMyAdmin."
msgstr "Vypnúť niektoré varovania zobrazované phpMyAdminom."
#: libraries/config/messages.inc.php:353
#, fuzzy
#| msgid ""
#| "Enable [a@https://en.wikipedia.org/wiki/Gzip]gzip[/a] compression for "
#| "import and export operations."
msgid "Enable gzip compression for import and export operations."
msgstr ""
"Povolí [a@https://sk.wikipedia.org/wiki/GZ_(súborový_formát)]gzip[/a] "
"kompresiu pre importovanie a exportovanie."
msgstr "Povolí gzip kompresiu pre importovanie a exportovanie."
#: libraries/config/messages.inc.php:356
msgid "GZip"
@ -6922,7 +6914,6 @@ msgid "Authentication type"
msgstr "Typ overovania"
#: libraries/config/messages.inc.php:640
#, fuzzy
#| msgid ""
#| "Leave blank for no [a@https://wiki.phpmyadmin.net/pma/bookmark]bookmark[/"
#| "a] support, suggested: [kbd]pma__bookmark[/kbd]"
@ -6930,8 +6921,8 @@ msgid ""
"Leave blank for no [doc@bookmarks@]bookmark[/doc] support, suggested: "
"[kbd]pma__bookmark[/kbd]"
msgstr ""
"Nechajte prázdne pre žiadnu podporu [a@https://wiki.phpmyadmin.net/pma/"
"bookmark]záložiek[/a], navrhované: [kbd]pma__bookmark[/kbd]"
"Nechajte prázdne pre žiadnu podporu [doc@bookmarks@]záložiek[/doc], "
"navrhované: [kbd]pma__bookmark[/kbd]"
#: libraries/config/messages.inc.php:643
msgid "Bookmark table"
@ -10727,7 +10718,7 @@ msgstr "Zapnuté"
#: libraries/relation.lib.php:102
msgid "Configuration of pmadb…"
msgstr "Konfigurácia pmadb... "
msgstr "Konfigurácia pmadb"
#: libraries/relation.lib.php:106 libraries/relation.lib.php:142
msgid "General relation features"

View File

@ -4,16 +4,16 @@ msgstr ""
"Project-Id-Version: phpMyAdmin 4.7.0-dev\n"
"Report-Msgid-Bugs-To: translators@phpmyadmin.net\n"
"POT-Creation-Date: 2016-08-17 11:28+0200\n"
"PO-Revision-Date: 2016-06-18 09:31+0000\n"
"Last-Translator: uncle_cat <jdhao@hotmail.com>\n"
"Language-Team: Chinese (China) <https://hosted.weblate.org/projects/"
"phpmyadmin/master/zh_CN/>\n"
"PO-Revision-Date: 2016-09-09 03:15+0000\n"
"Last-Translator: jin123456bat <326550324@qq.com>\n"
"Language-Team: Chinese (China) "
"<https://hosted.weblate.org/projects/phpmyadmin/master/zh_CN/>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 2.7-dev\n"
"X-Generator: Weblate 2.8\n"
#: changelog.php:38 license.php:33
#, fuzzy, php-format
@ -753,7 +753,7 @@ msgstr "配置文件现在需要一个短语密码。"
#: index.php:529
msgid "The secret passphrase in configuration (blowfish_secret) is too short."
msgstr ""
msgstr "配置文件中的密文(blowfish_secret)太短。"
#: index.php:543
msgid ""
@ -2453,7 +2453,6 @@ msgid "Time taken:"
msgstr "用时:"
#: js/messages.php:714
#, fuzzy
msgid ""
"There was a problem accessing your browser storage, some features may not "
"work properly for you. It is likely that the browser doesn't support storage "
@ -2461,11 +2460,9 @@ msgid ""
"cause such a problem, clearing your \"Offline Website Data\" might help. In "
"Safari, such problem is commonly caused by \"Private Mode Browsing\"."
msgstr ""
"查看你的浏览器保存数据时出现错误,因此一些功能可能不能正常工作。造成这个问题"
"的原因可能是你的浏览器不支持保存数据或者浏览器能够保存的数据达到极限。另外对"
"于Firefox浏览器这个问题可能是由于浏览器存储数据被损坏导致清理浏览器的“离"
"线网站数据”可能会解决这个问题。对于Safari浏览器这个问题通常是由于“隐私浏览"
"模式”导致的。"
"查看你的浏览器保存数据时出现错误,因此一些功能可能不能正常工作。造成这个问题的原因可能是你的浏览器不支持保存数据或者浏览器能够保存的数据达到极限。另外对于"
"Firefox浏览器这个问题可能是由于浏览器存储数据被损坏导致清理浏览器的“离线网站数据”可能会解决这个问题。对于Safari浏览器这个问题通常是由"
"于“隐私浏览模式”导致的。"
#: js/messages.php:716
msgid "Copy tables to"
@ -3632,7 +3629,7 @@ msgstr "上传文件时发生未知错误。"
#: libraries/File.php:424
msgid "File is a symbolic link"
msgstr ""
msgstr "文件是一个符号链接"
#: libraries/File.php:429 libraries/File.php:532
msgid "File could not be read!"
@ -5093,10 +5090,9 @@ msgid "You allow for connecting to the server without a password."
msgstr "该服务器现在允许空密码登录。"
#: libraries/config/ServerConfigChecks.php:349
#, fuzzy
#| msgid "Key is too short, it should have at least 8 characters."
msgid "Key is too short, it should have at least 32 characters."
msgstr "短语密码太短,至少应有 8 个字符。"
msgstr "短语密码太短,至少应有 32 个字符。"
#: libraries/config/ServerConfigChecks.php:359
msgid "Key should contain letters, numbers [em]and[/em] special characters."
@ -5217,10 +5213,9 @@ msgid "Could not connect to the database server!"
msgstr "无法连接到数据库!"
#: libraries/config/Validator.php:243
#, fuzzy
#| msgid "Authentication type"
msgid "Invalid authentication type!"
msgstr "认证方式"
msgstr "无效的认证方式"
#: libraries/config/Validator.php:250
msgid "Empty username while using [kbd]config[/kbd] authentication method!"
@ -5321,12 +5316,11 @@ msgid "Highlight pointer"
msgstr "高亮指针"
#: libraries/config/messages.inc.php:47
#, fuzzy
#| msgid ""
#| "Enable [a@https://en.wikipedia.org/wiki/Bzip2]bzip2[/a] compression for "
#| "import operations."
msgid "Enable bzip2 compression for import operations."
msgstr "允许在导入的时候使用bzip2进行压缩"
msgstr "导入的时候使用bzip2进行压缩"
#: libraries/config/messages.inc.php:50
msgid "Bzip2"

View File

@ -239,12 +239,12 @@ class PMA_ServerStatusMonitor_Test extends PHPUnit_Framework_TestCase
$value = array(
'sql_text' => 'insert sql_text',
'#' => 'types',
'#' => 11,
);
$value2 = array(
'sql_text' => 'update sql_text',
'#' => 'types2',
'#' => 10,
);
$dbi->expects($this->at(1))->method('fetchAssoc')
@ -262,10 +262,10 @@ class PMA_ServerStatusMonitor_Test extends PHPUnit_Framework_TestCase
$ret = PMA_getJsonForLogDataTypeSlow($start, $end);
$result_rows = array(
array('sql_text' => 'insert sql_text', '#' => 'types'),
array('sql_text' => 'update sql_text', '#' => 'types2')
array('sql_text' => 'insert sql_text', '#' => 11),
array('sql_text' => 'update sql_text', '#' => 10)
);
$result_sum = array('insert' =>0, 'TOTAL' =>0, 'update' => 0);
$result_sum = array('insert' =>11, 'TOTAL' =>21, 'update' => 10);
$this->assertEquals(
2,
$ret['numRows']
@ -296,13 +296,13 @@ class PMA_ServerStatusMonitor_Test extends PHPUnit_Framework_TestCase
$value = array(
'sql_text' => 'insert sql_text',
'#' => 'types',
'#' => 10,
'argument' => 'argument argument2',
);
$value2 = array(
'sql_text' => 'update sql_text',
'#' => 'types2',
'#' => 11,
'argument' => 'argument3 argument4',
);
@ -324,7 +324,7 @@ class PMA_ServerStatusMonitor_Test extends PHPUnit_Framework_TestCase
$value,
$value2,
);
$result_sum = array('argument' =>0, 'TOTAL' =>0, 'argument3' => 0);
$result_sum = array('argument' =>10, 'TOTAL' =>21, 'argument3' => 11);
$this->assertEquals(
2,
@ -356,7 +356,7 @@ class PMA_ServerStatusMonitor_Test extends PHPUnit_Framework_TestCase
$value = array(
'sql_text' => 'insert sql_text',
'#' => 'types',
'#' => 22,
'argument' => 'argument argument2',
);
@ -395,7 +395,7 @@ class PMA_ServerStatusMonitor_Test extends PHPUnit_Framework_TestCase
$value = array(
'sql_text' => 'insert sql_text',
'#' => 'types',
'#' => 33,
'argument' => 'argument argument2',
);

View File

@ -106,8 +106,7 @@ class PMA_ServerStatusQueries_Test extends PHPUnit_Framework_TestCase
$GLOBALS['dbi'] = $dbi;
$this->ServerStatusData = new ServerStatusData();
$upTime = "10h";
$this->ServerStatusData->status['Uptime'] = $upTime;
$this->ServerStatusData->status['Uptime'] = 36000;
$this->ServerStatusData->used_queries = array(
"Com_change_db" => "15",
"Com_select" => "12",

View File

@ -147,13 +147,12 @@ class PMA_ServerStatus_Test extends PHPUnit_Framework_TestCase
public function testPMAGetHtmlForServerStatus()
{
//parameters
$upTime = "10h";
$bytes_received = 100;
$bytes_sent = 200;
$max_used_conn = 500;
$aborted_conn = 200;
$conn = 1000;
$this->ServerStatusData->status['Uptime'] = $upTime;
$this->ServerStatusData->status['Uptime'] = 36000;
$this->ServerStatusData->status['Bytes_received'] = $bytes_received;
$this->ServerStatusData->status['Bytes_sent'] = $bytes_sent;
$this->ServerStatusData->status['Max_used_connections'] = $max_used_conn;
@ -173,7 +172,7 @@ class PMA_ServerStatus_Test extends PHPUnit_Framework_TestCase
);
//updatetime
$upTime_html = 'This MySQL server has been running for '
. '0 days, 0 hours, 0 minutes and 10h seconds';
. '0 days, 10 hours, 0 minutes and 0 seconds';
$this->assertContains(
$upTime_html,
$html

View File

@ -172,7 +172,7 @@ class PMA_SqlTest extends PHPUnit_Framework_TestCase
public function testHasNoRightsToDropDatabase()
{
$this->assertEquals(
!defined('PMA_CHK_DROP'),
true,
PMA_hasNoRightsToDropDatabase(
PMA_parseAndAnalyze('DROP DATABASE db'),
false,
@ -181,7 +181,7 @@ class PMA_SqlTest extends PHPUnit_Framework_TestCase
);
$this->assertEquals(
!defined('PMA_CHK_DROP'),
false,
PMA_hasNoRightsToDropDatabase(
PMA_parseAndAnalyze('DROP TABLE tbl'),
false,
@ -190,7 +190,7 @@ class PMA_SqlTest extends PHPUnit_Framework_TestCase
);
$this->assertEquals(
!defined('PMA_CHK_DROP'),
false,
PMA_hasNoRightsToDropDatabase(
PMA_parseAndAnalyze('SELECT * from tbl'),
false,

View File

@ -73,6 +73,9 @@ class PMA_FormatNumberByteDown_Test extends PHPUnit_Framework_TestCase
array(21010101, 0, 2, '21,010,101.00'),
array(20000, 2, 2, '20 k'),
array(20011, 2, 2, '20.01 k'),
array(123456789, 6, 0, '123,457 k'),
array(-123456789, 4, 2, '-123.46 M'),
array(0, 6, 0, '0')
);
}