Merge remote-tracking branch 'origin/master'

This commit is contained in:
Pootle server 2011-08-08 18:40:06 +02:00
commit 802bce5b23
8 changed files with 628 additions and 614 deletions

View File

@ -59,16 +59,16 @@ if (is_array($foreignData['disp_row'])) {
if ($foreignData['the_total'] > $GLOBALS['cfg']['MaxRows']) {
$gotopage = PMA_pageselector(
$session_max_rows,
$pageNow,
$nbTotalPage,
200,
5,
5,
20,
10,
__('Page number:')
);
$session_max_rows,
$pageNow,
$nbTotalPage,
200,
5,
5,
20,
10,
__('Page number:')
);
}
}
?>
@ -220,9 +220,10 @@ if (is_array($foreignData['disp_row'])) {
} else {
$val_ordered_current_val_title =
htmlspecialchars($val_ordered_current_val);
$val_ordered_current_val =
htmlspecialchars(PMA_substr($val_ordered_current_val, 0,
$cfg['LimitChars']) . '...');
$val_ordered_current_val = htmlspecialchars(
PMA_substr($val_ordered_current_val, 0, $cfg['LimitChars'])
. '...'
);
}
if (PMA_strlen($key_ordered_current_val) <= $cfg['LimitChars']) {
$key_ordered_current_val = htmlspecialchars($key_ordered_current_val);

View File

@ -106,9 +106,12 @@ class PMA_Theme_Manager
if (! $this->checkTheme($GLOBALS['cfg']['ThemeDefault'])) {
trigger_error(
sprintf(__('Default theme %s not found!'),
htmlspecialchars($GLOBALS['cfg']['ThemeDefault'])),
E_USER_ERROR);
sprintf(
__('Default theme %s not found!'),
htmlspecialchars($GLOBALS['cfg']['ThemeDefault'])
),
E_USER_ERROR
);
$GLOBALS['cfg']['ThemeDefault'] = false;
}
@ -144,7 +147,10 @@ class PMA_Theme_Manager
{
if (! $this->checkTheme($theme)) {
trigger_error(
sprintf(__('Theme %s not found!'), htmlspecialchars($theme)),
sprintf(
__('Theme %s not found!'),
htmlspecialchars($theme)
),
E_USER_ERROR);
return false;
}
@ -203,7 +209,7 @@ class PMA_Theme_Manager
* @param string $folder
* @return boolean
*/
/*private*/ function _checkThemeFolder($folder)
private function _checkThemeFolder($folder)
{
if (! is_dir($folder)) {
trigger_error(

View File

@ -50,21 +50,21 @@ function PMA_pow($base, $exp, $use_function = false)
return false;
}
switch ($use_function) {
case 'bcpow' :
// bcscale() needed for testing PMA_pow() with base values < 1
bcscale(10);
$pow = bcpow($base, $exp);
break;
case 'gmp_pow' :
$pow = gmp_strval(gmp_pow($base, $exp));
break;
case 'pow' :
$base = (float) $base;
$exp = (int) $exp;
$pow = pow($base, $exp);
break;
default:
$pow = $use_function($base, $exp);
case 'bcpow' :
// bcscale() needed for testing PMA_pow() with base values < 1
bcscale(10);
$pow = bcpow($base, $exp);
break;
case 'gmp_pow' :
$pow = gmp_strval(gmp_pow($base, $exp));
break;
case 'pow' :
$base = (float) $base;
$exp = (int) $exp;
$pow = pow($base, $exp);
break;
default:
$pow = $use_function($base, $exp);
}
return $pow;
@ -301,23 +301,23 @@ function PMA_formatSql($parsed_sql, $unparsed_sql = '')
$formatted_sql = '';
switch ($cfg['SQP']['fmtType']) {
case 'none':
if ($unparsed_sql != '') {
$formatted_sql = '<span class="inner_sql"><pre>' . "\n"
. PMA_SQP_formatNone(array('raw' => $unparsed_sql)) . "\n"
. '</pre></span>';
} else {
$formatted_sql = PMA_SQP_formatNone($parsed_sql);
}
break;
case 'html':
$formatted_sql = PMA_SQP_formatHtml($parsed_sql, 'color');
break;
case 'text':
$formatted_sql = PMA_SQP_formatHtml($parsed_sql, 'text');
break;
default:
break;
case 'none':
if ($unparsed_sql != '') {
$formatted_sql = '<span class="inner_sql"><pre>' . "\n"
. PMA_SQP_formatNone(array('raw' => $unparsed_sql)) . "\n"
. '</pre></span>';
} else {
$formatted_sql = PMA_SQP_formatNone($parsed_sql);
}
break;
case 'html':
$formatted_sql = PMA_SQP_formatHtml($parsed_sql, 'color');
break;
case 'text':
$formatted_sql = PMA_SQP_formatHtml($parsed_sql, 'text');
break;
default:
break;
} // end switch
return $formatted_sql;
@ -350,57 +350,57 @@ function PMA_showMySQLDocu($chapter, $link, $big_icon = false, $anchor = '', $ju
$link = str_replace('_', '-', strtolower($link));
switch ($cfg['MySQLManualType']) {
case 'chapters':
if (empty($chapter)) {
$chapter = 'index';
case 'chapters':
if (empty($chapter)) {
$chapter = 'index';
}
if (empty($anchor)) {
$anchor = $link;
}
$url = $cfg['MySQLManualBase'] . '/' . $chapter . '.html#' . $anchor;
break;
case 'big':
if (empty($anchor)) {
$anchor = $link;
}
$url = $cfg['MySQLManualBase'] . '#' . $anchor;
break;
case 'searchable':
if (empty($link)) {
$link = 'index';
}
$url = $cfg['MySQLManualBase'] . '/' . $link . '.html';
if (!empty($anchor)) {
$url .= '#' . $anchor;
}
break;
case 'viewable':
default:
if (empty($link)) {
$link = 'index';
}
$mysql = '5.0';
$lang = 'en';
if (defined('PMA_MYSQL_INT_VERSION')) {
if (PMA_MYSQL_INT_VERSION >= 50500) {
$mysql = '5.5';
/* l10n: Language to use for MySQL 5.5 documentation, please use only languages which do exist in official documentation. */
$lang = _pgettext('MySQL 5.5 documentation language', 'en');
} else if (PMA_MYSQL_INT_VERSION >= 50100) {
$mysql = '5.1';
/* l10n: Language to use for MySQL 5.1 documentation, please use only languages which do exist in official documentation. */
$lang = _pgettext('MySQL 5.1 documentation language', 'en');
} else {
$mysql = '5.0';
/* l10n: Language to use for MySQL 5.0 documentation, please use only languages which do exist in official documentation. */
$lang = _pgettext('MySQL 5.0 documentation language', 'en');
}
if (empty($anchor)) {
$anchor = $link;
}
$url = $cfg['MySQLManualBase'] . '/' . $chapter . '.html#' . $anchor;
break;
case 'big':
if (empty($anchor)) {
$anchor = $link;
}
$url = $cfg['MySQLManualBase'] . '#' . $anchor;
break;
case 'searchable':
if (empty($link)) {
$link = 'index';
}
$url = $cfg['MySQLManualBase'] . '/' . $link . '.html';
if (!empty($anchor)) {
$url .= '#' . $anchor;
}
break;
case 'viewable':
default:
if (empty($link)) {
$link = 'index';
}
$mysql = '5.0';
$lang = 'en';
if (defined('PMA_MYSQL_INT_VERSION')) {
if (PMA_MYSQL_INT_VERSION >= 50500) {
$mysql = '5.5';
/* l10n: Language to use for MySQL 5.5 documentation, please use only languages which do exist in official documentation. */
$lang = _pgettext('MySQL 5.5 documentation language', 'en');
} else if (PMA_MYSQL_INT_VERSION >= 50100) {
$mysql = '5.1';
/* l10n: Language to use for MySQL 5.1 documentation, please use only languages which do exist in official documentation. */
$lang = _pgettext('MySQL 5.1 documentation language', 'en');
} else {
$mysql = '5.0';
/* l10n: Language to use for MySQL 5.0 documentation, please use only languages which do exist in official documentation. */
$lang = _pgettext('MySQL 5.0 documentation language', 'en');
}
}
$url = $cfg['MySQLManualBase'] . '/' . $mysql . '/' . $lang . '/' . $link . '.html';
if (!empty($anchor)) {
$url .= '#' . $anchor;
}
break;
}
$url = $cfg['MySQLManualBase'] . '/' . $mysql . '/' . $lang . '/' . $link . '.html';
if (!empty($anchor)) {
$url .= '#' . $anchor;
}
break;
}
$open_link = '<a href="' . PMA_linkURL($url) . '" target="mysql_doc">';
@ -615,14 +615,14 @@ function PMA_mysqlDie($error_message = '', $the_query = '',
$_SESSION['Import_message']['message'] = $error_msg_output;
if ($exit) {
/**
* If in an Ajax request
* - avoid displaying a Back link
* - use PMA_ajaxResponse() to transmit the message and exit
*/
if ($GLOBALS['is_ajax_request'] == true) {
PMA_ajaxResponse($error_msg_output, false);
}
/**
* If in an Ajax request
* - avoid displaying a Back link
* - use PMA_ajaxResponse() to transmit the message and exit
*/
if ($GLOBALS['is_ajax_request'] == true) {
PMA_ajaxResponse($error_msg_output, false);
}
if (! empty($back_url)) {
if (strstr($back_url, '?')) {
$back_url .= '&amp;no_history=true';
@ -635,13 +635,13 @@ function PMA_mysqlDie($error_message = '', $the_query = '',
$error_msg_output .= '<fieldset class="tblFooters">';
$error_msg_output .= '[ <a href="' . $back_url . '">' . __('Back') . '</a> ]';
$error_msg_output .= '</fieldset>' . "\n\n";
}
}
echo $error_msg_output;
/**
* display footer and exit
*/
require './libraries/footer.inc.php';
echo $error_msg_output;
/**
* display footer and exit
*/
require './libraries/footer.inc.php';
} else {
echo $error_msg_output;
}
@ -855,8 +855,9 @@ function PMA_reloadNavigation($jsonly=false)
unset($_SESSION['tmp_user_values']['table_limit_offset']);
echo "\n";
$reload_url = './navigation.php?' . PMA_generate_common_url($GLOBALS['db'], '', '&');
if (!$jsonly)
echo '<script type="text/javascript">' . PHP_EOL;
if (!$jsonly) {
echo '<script type="text/javascript">' . PHP_EOL;
}
?>
//<![CDATA[
if (typeof(window.parent) != 'undefined'
@ -866,8 +867,9 @@ if (typeof(window.parent) != 'undefined'
}
//]]>
<?php
if (!$jsonly)
echo '</script>' . PHP_EOL;
if (!$jsonly) {
echo '</script>' . PHP_EOL;
}
unset($GLOBALS['reload']);
}
@ -1204,8 +1206,8 @@ function PMA_showMessage($message, $sql_query = null, $type = 'notice', $is_view
// mode because 1) it currently does not work and 2) we would
// have two similar mechanisms on the page for the same goal
if ($is_select || $GLOBALS['is_ajax_request'] === false && ! $query_too_big) {
// see in js/functions.js the jQuery code attached to id inline_edit
// document.write conflicts with jQuery, hence used $().append()
// see in js/functions.js the jQuery code attached to id inline_edit
// document.write conflicts with jQuery, hence used $().append()
echo "<script type=\"text/javascript\">\n" .
"//<![CDATA[\n" .
"$('.tools form').last().after('[<a href=\"#\" title=\"" .
@ -1497,44 +1499,44 @@ function PMA_extractValueFromFormattedSize($formatted_size)
function PMA_localisedDate($timestamp = -1, $format = '')
{
$month = array(
/* l10n: Short month name */
/* l10n: Short month name */
__('Jan'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Feb'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Mar'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Apr'),
/* l10n: Short month name */
/* l10n: Short month name */
_pgettext('Short month name', 'May'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Jun'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Jul'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Aug'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Sep'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Oct'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Nov'),
/* l10n: Short month name */
/* l10n: Short month name */
__('Dec'));
$day_of_week = array(
/* l10n: Short week day name */
/* l10n: Short week day name */
_pgettext('Short week day name', 'Sun'),
/* l10n: Short week day name */
/* l10n: Short week day name */
__('Mon'),
/* l10n: Short week day name */
/* l10n: Short week day name */
__('Tue'),
/* l10n: Short week day name */
/* l10n: Short week day name */
__('Wed'),
/* l10n: Short week day name */
/* l10n: Short week day name */
__('Thu'),
/* l10n: Short week day name */
/* l10n: Short week day name */
__('Fri'),
/* l10n: Short week day name */
/* l10n: Short week day name */
__('Sat'));
if ($format == '') {
@ -1808,6 +1810,12 @@ function PMA_linkOrButton($url, $message, $tag_params = array(),
} // end of the 'PMA_linkOrButton()' function
/**
* Splits a URL string by parameter
*
* @param string $url the URL
* @return array the parameter/value pairs, for example [0] db=sakila
*/
function PMA_splitURLQuery($url) {
// decode encoded url separators
$separator = PMA_get_arg_separator();
@ -2700,13 +2708,13 @@ function PMA_extractFieldSpec($fieldspec)
if (! $in_string) {
$in_string = true;
$working = "";
// Otherwise, it may be either an end of a string, or a 'double quote' which can be handled as-is
} else {
// Check out the next character (if possible)
// Otherwise, it may be either an end of a string, or a 'double quote' which can be handled as-is
// Check out the next character (if possible)
$has_next = isset($fieldspec[$index + 1]);
$next = $has_next ? $fieldspec[$index + 1] : null;
// If we have reached the end of our 'working' string (because there are no more chars, or the next char is not another quote)
// If we have reached the end of our 'working' string (because there are no more chars, or the next char is not another quote)
if (! $has_next || $next != "'") {
$enum_set_values[] = $working;
$in_string = false;
@ -2718,12 +2726,12 @@ function PMA_extractFieldSpec($fieldspec)
$index++;
}
}
// escaping of a quote?
} elseif ('\\' == $char && isset($fieldspec[$index + 1]) && "'" == $fieldspec[$index + 1]) {
// escaping of a quote?
$working .= "'";
$index++;
// Otherwise, add it to our working string like normal
} else {
// Otherwise, add it to our working string like normal
$working .= $char;
}
// Increment character index

View File

@ -210,200 +210,200 @@ function PMA_getCollationDescr($collation)
}
$descr = '';
switch ($parts[1]) {
case 'bulgarian':
$descr = __('Bulgarian');
break;
case 'chinese':
if ($parts[0] == 'gb2312' || $parts[0] == 'gbk') {
$descr = __('Simplified Chinese');
} elseif ($parts[0] == 'big5') {
$descr = __('Traditional Chinese');
}
break;
case 'ci':
$descr = __('case-insensitive');
break;
case 'cs':
$descr = __('case-sensitive');
break;
case 'croatian':
$descr = __('Croatian');
break;
case 'czech':
$descr = __('Czech');
break;
case 'danish':
$descr = __('Danish');
break;
case 'english':
$descr = __('English');
break;
case 'esperanto':
$descr = __('Esperanto');
break;
case 'estonian':
$descr = __('Estonian');
break;
case 'german1':
$descr = __('German') . ' (' . __('dictionary') . ')';
break;
case 'german2':
$descr = __('German') . ' (' . __('phone book') . ')';
break;
case 'hungarian':
$descr = __('Hungarian');
break;
case 'icelandic':
$descr = __('Icelandic');
break;
case 'japanese':
$descr = __('Japanese');
break;
case 'latvian':
$descr = __('Latvian');
break;
case 'lithuanian':
$descr = __('Lithuanian');
break;
case 'korean':
$descr = __('Korean');
break;
case 'persian':
$descr = __('Persian');
break;
case 'polish':
$descr = __('Polish');
break;
case 'roman':
$descr = __('West European');
break;
case 'romanian':
$descr = __('Romanian');
break;
case 'slovak':
$descr = __('Slovak');
break;
case 'slovenian':
$descr = __('Slovenian');
break;
case 'spanish':
$descr = __('Spanish');
break;
case 'spanish2':
$descr = __('Traditional Spanish');
break;
case 'swedish':
$descr = __('Swedish');
break;
case 'thai':
$descr = __('Thai');
break;
case 'turkish':
$descr = __('Turkish');
break;
case 'ukrainian':
$descr = __('Ukrainian');
break;
case 'unicode':
case 'bulgarian':
$descr = __('Bulgarian');
break;
case 'chinese':
if ($parts[0] == 'gb2312' || $parts[0] == 'gbk') {
$descr = __('Simplified Chinese');
} elseif ($parts[0] == 'big5') {
$descr = __('Traditional Chinese');
}
break;
case 'ci':
$descr = __('case-insensitive');
break;
case 'cs':
$descr = __('case-sensitive');
break;
case 'croatian':
$descr = __('Croatian');
break;
case 'czech':
$descr = __('Czech');
break;
case 'danish':
$descr = __('Danish');
break;
case 'english':
$descr = __('English');
break;
case 'esperanto':
$descr = __('Esperanto');
break;
case 'estonian':
$descr = __('Estonian');
break;
case 'german1':
$descr = __('German') . ' (' . __('dictionary') . ')';
break;
case 'german2':
$descr = __('German') . ' (' . __('phone book') . ')';
break;
case 'hungarian':
$descr = __('Hungarian');
break;
case 'icelandic':
$descr = __('Icelandic');
break;
case 'japanese':
$descr = __('Japanese');
break;
case 'latvian':
$descr = __('Latvian');
break;
case 'lithuanian':
$descr = __('Lithuanian');
break;
case 'korean':
$descr = __('Korean');
break;
case 'persian':
$descr = __('Persian');
break;
case 'polish':
$descr = __('Polish');
break;
case 'roman':
$descr = __('West European');
break;
case 'romanian':
$descr = __('Romanian');
break;
case 'slovak':
$descr = __('Slovak');
break;
case 'slovenian':
$descr = __('Slovenian');
break;
case 'spanish':
$descr = __('Spanish');
break;
case 'spanish2':
$descr = __('Traditional Spanish');
break;
case 'swedish':
$descr = __('Swedish');
break;
case 'thai':
$descr = __('Thai');
break;
case 'turkish':
$descr = __('Turkish');
break;
case 'ukrainian':
$descr = __('Ukrainian');
break;
case 'unicode':
$descr = __('Unicode') . ' (' . __('multilingual') . ')';
break;
case 'bin':
$is_bin = true;
case 'general':
switch ($parts[0]) {
// Unicode charsets
case 'ucs2':
case 'utf8':
$descr = __('Unicode') . ' (' . __('multilingual') . ')';
break;
case 'bin':
$is_bin = true;
case 'general':
switch ($parts[0]) {
// Unicode charsets
case 'ucs2':
case 'utf8':
$descr = __('Unicode') . ' (' . __('multilingual') . ')';
break;
// West European charsets
case 'ascii':
case 'cp850':
case 'dec8':
case 'hp8':
case 'latin1':
case 'macroman':
$descr = __('West European') . ' (' . __('multilingual') . ')';
break;
// Central European charsets
case 'cp1250':
case 'cp852':
case 'latin2':
case 'macce':
$descr = __('Central European') . ' (' . __('multilingual') . ')';
break;
// Russian charsets
case 'cp866':
case 'koi8r':
$descr = __('Russian');
break;
// Simplified Chinese charsets
case 'gb2312':
case 'gbk':
$descr = __('Simplified Chinese');
break;
// Japanese charsets
case 'sjis':
case 'ujis':
case 'cp932':
case 'eucjpms':
$descr = __('Japanese');
break;
// Baltic charsets
case 'cp1257':
case 'latin7':
$descr = __('Baltic') . ' (' . __('multilingual') . ')';
break;
// Other
case 'armscii8':
case 'armscii':
$descr = __('Armenian');
break;
case 'big5':
$descr = __('Traditional Chinese');
break;
case 'cp1251':
$descr = __('Cyrillic') . ' (' . __('multilingual') . ')';
break;
case 'cp1256':
$descr = __('Arabic');
break;
case 'euckr':
$descr = __('Korean');
break;
case 'hebrew':
$descr = __('Hebrew');
break;
case 'geostd8':
$descr = __('Georgian');
break;
case 'greek':
$descr = __('Greek');
break;
case 'keybcs2':
$descr = __('Czech-Slovak');
break;
case 'koi8u':
$descr = __('Ukrainian');
break;
case 'latin5':
$descr = __('Turkish');
break;
case 'swe7':
$descr = __('Swedish');
break;
case 'tis620':
$descr = __('Thai');
break;
default:
$descr = __('unknown');
break;
}
if (!empty($is_bin)) {
$descr .= ', ' . __('Binary');
}
// West European charsets
case 'ascii':
case 'cp850':
case 'dec8':
case 'hp8':
case 'latin1':
case 'macroman':
$descr = __('West European') . ' (' . __('multilingual') . ')';
break;
default: $descr = __('unknown');
// Central European charsets
case 'cp1250':
case 'cp852':
case 'latin2':
case 'macce':
$descr = __('Central European') . ' (' . __('multilingual') . ')';
break;
// Russian charsets
case 'cp866':
case 'koi8r':
$descr = __('Russian');
break;
// Simplified Chinese charsets
case 'gb2312':
case 'gbk':
$descr = __('Simplified Chinese');
break;
// Japanese charsets
case 'sjis':
case 'ujis':
case 'cp932':
case 'eucjpms':
$descr = __('Japanese');
break;
// Baltic charsets
case 'cp1257':
case 'latin7':
$descr = __('Baltic') . ' (' . __('multilingual') . ')';
break;
// Other
case 'armscii8':
case 'armscii':
$descr = __('Armenian');
break;
case 'big5':
$descr = __('Traditional Chinese');
break;
case 'cp1251':
$descr = __('Cyrillic') . ' (' . __('multilingual') . ')';
break;
case 'cp1256':
$descr = __('Arabic');
break;
case 'euckr':
$descr = __('Korean');
break;
case 'hebrew':
$descr = __('Hebrew');
break;
case 'geostd8':
$descr = __('Georgian');
break;
case 'greek':
$descr = __('Greek');
break;
case 'keybcs2':
$descr = __('Czech-Slovak');
break;
case 'koi8u':
$descr = __('Ukrainian');
break;
case 'latin5':
$descr = __('Turkish');
break;
case 'swe7':
$descr = __('Swedish');
break;
case 'tis620':
$descr = __('Thai');
break;
default:
$descr = __('unknown');
break;
}
if (!empty($is_bin)) {
$descr .= ', ' . __('Binary');
}
break;
default: $descr = __('unknown');
}
if (!empty($parts[2])) {
if ($parts[2] == 'ci') {

View File

@ -186,134 +186,134 @@ function PMA_langDetect($str, $envType)
function PMA_langDetails($lang)
{
switch ($lang) {
case 'af':
return array('af|afrikaans', 'af', '');
case 'ar':
return array('ar|arabic', 'ar', '&#1575;&#1604;&#1593;&#1585;&#1576;&#1610;&#1577;');
case 'az':
return array('az|azerbaijani', 'az', 'Az&#601;rbaycanca');
case 'bn':
return array('bn|bangla', 'bn', 'বাংলা');
case 'be':
return array('be|belarusian', 'be', '&#1041;&#1077;&#1083;&#1072;&#1088;&#1091;&#1089;&#1082;&#1072;&#1103;');
case 'be@latin':
return array('be[-_]lat|belarusian latin', 'be-lat', 'Bie&#0322;aruskaja');
case 'bg':
return array('bg|bulgarian', 'bg', '&#1041;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080;');
case 'bs':
return array('bs|bosnian', 'bs', 'Bosanski');
case 'br':
return array('br|breton', 'br', 'Brezhoneg');
case 'ca':
return array('ca|catalan', 'ca', 'Catal&agrave;');
case 'cs':
return array('cs|czech', 'cs', 'Čeština');
case 'cy':
return array('cy|welsh', 'cy', 'Cymraeg');
case 'da':
return array('da|danish', 'da', 'Dansk');
case 'de':
return array('de|german', 'de', 'Deutsch');
case 'el':
return array('el|greek', 'el', '&Epsilon;&lambda;&lambda;&eta;&nu;&iota;&kappa;&#940;');
case 'en':
return array('en|english', 'en', '');
case 'en_GB':
return array('en[_-]gb|english (United Kingdom)', 'en-gb', '');
case 'es':
return array('es|spanish', 'es', 'Espa&ntilde;ol');
case 'et':
return array('et|estonian', 'et', 'Eesti');
case 'eu':
return array('eu|basque', 'eu', 'Euskara');
case 'fa':
return array('fa|persian', 'fa', '&#1601;&#1575;&#1585;&#1587;&#1740;');
case 'fi':
return array('fi|finnish', 'fi', 'Suomi');
case 'fr':
return array('fr|french', 'fr', 'Fran&ccedil;ais');
case 'gl':
return array('gl|galician', 'gl', 'Galego');
case 'he':
return array('he|hebrew', 'he', '&#1506;&#1489;&#1512;&#1497;&#1514;');
case 'hi':
return array('hi|hindi', 'hi', '&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;');
case 'hr':
return array('hr|croatian', 'hr', 'Hrvatski');
case 'hu':
return array('hu|hungarian', 'hu', 'Magyar');
case 'id':
return array('id|indonesian', 'id', 'Bahasa Indonesia');
case 'it':
return array('it|italian', 'it', 'Italiano');
case 'ja':
return array('ja|japanese', 'ja', '&#26085;&#26412;&#35486;');
case 'ko':
return array('ko|korean', 'ko', '&#54620;&#44397;&#50612;');
case 'ka':
return array('ka|georgian', 'ka', '&#4325;&#4304;&#4320;&#4311;&#4323;&#4314;&#4312;');
case 'lt':
return array('lt|lithuanian', 'lt', 'Lietuvi&#371;');
case 'lv':
return array('lv|latvian', 'lv', 'Latvie&scaron;u');
case 'mk':
return array('mk|macedonian', 'mk', 'Macedonian');
case 'mn':
return array('mn|mongolian', 'mn', '&#1052;&#1086;&#1085;&#1075;&#1086;&#1083;');
case 'ms':
return array('ms|malay', 'ms', 'Bahasa Melayu');
case 'nl':
return array('nl|dutch', 'nl', 'Nederlands');
case 'nb':
return array('nb|norwegian', 'nb', 'Norsk');
case 'pl':
return array('pl|polish', 'pl', 'Polski');
case 'pt_BR':
return array('pt[-_]br|brazilian portuguese', 'pt-BR', 'Portugu&ecirc;s');
case 'pt':
return array('pt|portuguese', 'pt', 'Portugu&ecirc;s');
case 'ro':
return array('ro|romanian', 'ro', 'Rom&acirc;n&#259;');
case 'ru':
return array('ru|russian', 'ru', '&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;');
case 'si':
return array('si|sinhala', 'si', '&#3523;&#3538;&#3458;&#3524;&#3517;');
case 'sk':
return array('sk|slovak', 'sk', 'Sloven&#269;ina');
case 'sl':
return array('sl|slovenian', 'sl', 'Sloven&scaron;&#269;ina');
case 'sq':
return array('sq|albanian', 'sq', 'Shqip');
case 'sr@latin':
return array('sr[-_]lat|serbian latin', 'sr-lat', 'Srpski');
case 'sr':
return array('sr|serbian', 'sr', '&#1057;&#1088;&#1087;&#1089;&#1082;&#1080;');
case 'sv':
return array('sv|swedish', 'sv', 'Svenska');
case 'ta':
return array('ta|tamil', 'ta', 'தமிழ்');
case 'te':
return array('te|telugu', 'te', 'తెలుగు');
case 'th':
return array('th|thai', 'th', '&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618;');
case 'tr':
return array('tr|turkish', 'tr', 'T&uuml;rk&ccedil;e');
case 'tt':
return array('tt|tatarish', 'tt', 'Tatar&ccedil;a');
case 'ug':
return array('ug|uyghur', 'ug', 'ئۇيغۇرچە');
case 'uk':
return array('uk|ukrainian', 'uk', '&#1059;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072;');
case 'ur':
return array('ur|urdu', 'ur', 'اُردوُ');
case 'uz@latin':
return array('uz[-_]lat|uzbek-latin', 'uz-lat', 'O&lsquo;zbekcha');
case 'uz':
return array('uz[-_]cyr|uzbek-cyrillic', 'uz-cyr', '&#1038;&#1079;&#1073;&#1077;&#1082;&#1095;&#1072;');
case 'zh_TW':
return array('zh[-_](tw|hk)|chinese traditional', 'zh-TW', '&#20013;&#25991;');
case 'zh_CN':
return array('zh|chinese simplified', 'zh', '&#20013;&#25991;');
case 'af':
return array('af|afrikaans', 'af', '');
case 'ar':
return array('ar|arabic', 'ar', '&#1575;&#1604;&#1593;&#1585;&#1576;&#1610;&#1577;');
case 'az':
return array('az|azerbaijani', 'az', 'Az&#601;rbaycanca');
case 'bn':
return array('bn|bangla', 'bn', 'বাংলা');
case 'be':
return array('be|belarusian', 'be', '&#1041;&#1077;&#1083;&#1072;&#1088;&#1091;&#1089;&#1082;&#1072;&#1103;');
case 'be@latin':
return array('be[-_]lat|belarusian latin', 'be-lat', 'Bie&#0322;aruskaja');
case 'bg':
return array('bg|bulgarian', 'bg', '&#1041;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080;');
case 'bs':
return array('bs|bosnian', 'bs', 'Bosanski');
case 'br':
return array('br|breton', 'br', 'Brezhoneg');
case 'ca':
return array('ca|catalan', 'ca', 'Catal&agrave;');
case 'cs':
return array('cs|czech', 'cs', 'Čeština');
case 'cy':
return array('cy|welsh', 'cy', 'Cymraeg');
case 'da':
return array('da|danish', 'da', 'Dansk');
case 'de':
return array('de|german', 'de', 'Deutsch');
case 'el':
return array('el|greek', 'el', '&Epsilon;&lambda;&lambda;&eta;&nu;&iota;&kappa;&#940;');
case 'en':
return array('en|english', 'en', '');
case 'en_GB':
return array('en[_-]gb|english (United Kingdom)', 'en-gb', '');
case 'es':
return array('es|spanish', 'es', 'Espa&ntilde;ol');
case 'et':
return array('et|estonian', 'et', 'Eesti');
case 'eu':
return array('eu|basque', 'eu', 'Euskara');
case 'fa':
return array('fa|persian', 'fa', '&#1601;&#1575;&#1585;&#1587;&#1740;');
case 'fi':
return array('fi|finnish', 'fi', 'Suomi');
case 'fr':
return array('fr|french', 'fr', 'Fran&ccedil;ais');
case 'gl':
return array('gl|galician', 'gl', 'Galego');
case 'he':
return array('he|hebrew', 'he', '&#1506;&#1489;&#1512;&#1497;&#1514;');
case 'hi':
return array('hi|hindi', 'hi', '&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;');
case 'hr':
return array('hr|croatian', 'hr', 'Hrvatski');
case 'hu':
return array('hu|hungarian', 'hu', 'Magyar');
case 'id':
return array('id|indonesian', 'id', 'Bahasa Indonesia');
case 'it':
return array('it|italian', 'it', 'Italiano');
case 'ja':
return array('ja|japanese', 'ja', '&#26085;&#26412;&#35486;');
case 'ko':
return array('ko|korean', 'ko', '&#54620;&#44397;&#50612;');
case 'ka':
return array('ka|georgian', 'ka', '&#4325;&#4304;&#4320;&#4311;&#4323;&#4314;&#4312;');
case 'lt':
return array('lt|lithuanian', 'lt', 'Lietuvi&#371;');
case 'lv':
return array('lv|latvian', 'lv', 'Latvie&scaron;u');
case 'mk':
return array('mk|macedonian', 'mk', 'Macedonian');
case 'mn':
return array('mn|mongolian', 'mn', '&#1052;&#1086;&#1085;&#1075;&#1086;&#1083;');
case 'ms':
return array('ms|malay', 'ms', 'Bahasa Melayu');
case 'nl':
return array('nl|dutch', 'nl', 'Nederlands');
case 'nb':
return array('nb|norwegian', 'nb', 'Norsk');
case 'pl':
return array('pl|polish', 'pl', 'Polski');
case 'pt_BR':
return array('pt[-_]br|brazilian portuguese', 'pt-BR', 'Portugu&ecirc;s');
case 'pt':
return array('pt|portuguese', 'pt', 'Portugu&ecirc;s');
case 'ro':
return array('ro|romanian', 'ro', 'Rom&acirc;n&#259;');
case 'ru':
return array('ru|russian', 'ru', '&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;');
case 'si':
return array('si|sinhala', 'si', '&#3523;&#3538;&#3458;&#3524;&#3517;');
case 'sk':
return array('sk|slovak', 'sk', 'Sloven&#269;ina');
case 'sl':
return array('sl|slovenian', 'sl', 'Sloven&scaron;&#269;ina');
case 'sq':
return array('sq|albanian', 'sq', 'Shqip');
case 'sr@latin':
return array('sr[-_]lat|serbian latin', 'sr-lat', 'Srpski');
case 'sr':
return array('sr|serbian', 'sr', '&#1057;&#1088;&#1087;&#1089;&#1082;&#1080;');
case 'sv':
return array('sv|swedish', 'sv', 'Svenska');
case 'ta':
return array('ta|tamil', 'ta', 'தமிழ்');
case 'te':
return array('te|telugu', 'te', 'తెలుగు');
case 'th':
return array('th|thai', 'th', '&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618;');
case 'tr':
return array('tr|turkish', 'tr', 'T&uuml;rk&ccedil;e');
case 'tt':
return array('tt|tatarish', 'tt', 'Tatar&ccedil;a');
case 'ug':
return array('ug|uyghur', 'ug', 'ئۇيغۇرچە');
case 'uk':
return array('uk|ukrainian', 'uk', '&#1059;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072;');
case 'ur':
return array('ur|urdu', 'ur', 'اُردوُ');
case 'uz@latin':
return array('uz[-_]lat|uzbek-latin', 'uz-lat', 'O&lsquo;zbekcha');
case 'uz':
return array('uz[-_]cyr|uzbek-cyrillic', 'uz-cyr', '&#1038;&#1079;&#1073;&#1077;&#1082;&#1095;&#1072;');
case 'zh_TW':
return array('zh[-_](tw|hk)|chinese traditional', 'zh-TW', '&#20013;&#25991;');
case 'zh_CN':
return array('zh|chinese simplified', 'zh', '&#20013;&#25991;');
}
return array("$lang|$lang", $lang, $lang);
}

View File

@ -645,13 +645,12 @@ if (! defined('PMA_MINIMUM_COMMON')) {
} elseif (($last == '-') || ($last == '+') || ($last == '!')) {
$count2--;
$punct_data = PMA_substr($sql, $count1, $count2 - $count1);
/**
* @todo for negation operator, split in 2 tokens ?
* "select x&~1 from t"
* becomes "select x & ~ 1 from t" ?
*/
} elseif ($last != '~') {
/**
* @todo for negation operator, split in 2 tokens ?
* "select x&~1 from t"
* becomes "select x & ~ 1 from t" ?
*/
$debugstr = __('Unknown Punctuation String') . ' @ ' . ($count1+1) . "\n"
. 'STR: ' . htmlspecialchars($punct_data);
PMA_SQP_throwError($debugstr, $sql);
@ -812,16 +811,16 @@ if (! defined('PMA_MINIMUM_COMMON')) {
return $sql_array;
} // end of the "PMA_SQP_parse()" function
/**
* Checks for token types being what we want...
*
* @param string String of type that we have
* @param string String of type that we want
*
* @return boolean result of check
*
* @access private
*/
/**
* Checks for token types being what we want...
*
* @param string String of type that we have
* @param string String of type that we want
*
* @return boolean result of check
*
* @access private
*/
function PMA_SQP_typeCheck($toCheck, $whatWeWant)
{
$typeSeperator = '_';
@ -890,122 +889,122 @@ if (! defined('PMA_MINIMUM_COMMON')) {
// for GROUP_CONCAT(...)
$in_group_concat = false;
/* Description of analyzer results
*
* db, table, column, alias
* ------------------------
*
* Inside the $subresult array, we create ['select_expr'] and ['table_ref'] arrays.
*
* The SELECT syntax (simplified) is
*
* SELECT
* select_expression,...
* [FROM [table_references]
*
*
* ['select_expr'] is filled with each expression, the key represents the
* expression position in the list (0-based) (so we don't lose track of
* multiple occurences of the same column).
*
* ['table_ref'] is filled with each table ref, same thing for the key.
*
* I create all sub-values empty, even if they are
* not present (for example no select_expression alias).
*
* There is a debug section at the end of loop #1, if you want to
* see the exact contents of select_expr and table_ref
*
* queryflags
* ----------
*
* In $subresult, array 'queryflags' is filled, according to what we
* find in the query.
*
* Currently, those are generated:
*
* ['queryflags']['need_confirm'] = 1; if the query needs confirmation
* ['queryflags']['select_from'] = 1; if this is a real SELECT...FROM
* ['queryflags']['distinct'] = 1; for a DISTINCT
* ['queryflags']['union'] = 1; for a UNION
* ['queryflags']['join'] = 1; for a JOIN
* ['queryflags']['offset'] = 1; for the presence of OFFSET
* ['queryflags']['procedure'] = 1; for the presence of PROCEDURE
*
* query clauses
* -------------
*
* The select is splitted in those clauses:
* ['select_expr_clause']
* ['from_clause']
* ['group_by_clause']
* ['order_by_clause']
* ['having_clause']
* ['limit_clause']
* ['where_clause']
*
* The identifiers of the WHERE clause are put into the array
* ['where_clause_identifier']
*
* For a SELECT, the whole query without the ORDER BY clause is put into
* ['unsorted_query']
*
* foreign keys
* ------------
* The CREATE TABLE may contain FOREIGN KEY clauses, so they get
* analyzed and ['foreign_keys'] is an array filled with
* the constraint name, the index list,
* the REFERENCES table name and REFERENCES index list,
* and ON UPDATE | ON DELETE clauses
*
* position_of_first_select
* ------------------------
*
* The array index of the first SELECT we find. Will be used to
* insert a SQL_CALC_FOUND_ROWS.
*
* create_table_fields
* -------------------
*
* Used to detect the DEFAULT CURRENT_TIMESTAMP and
* ON UPDATE CURRENT_TIMESTAMP clauses of the CREATE TABLE query.
* Also used to store the default value of the field.
* An array, each element is the identifier name.
* Note that for now, the timestamp_not_null element is created
* even for non-TIMESTAMP fields.
*
* Sub-elements: ['type'] which contains the column type
* optional (currently they are never false but can be absent):
* ['default_current_timestamp'] boolean
* ['on_update_current_timestamp'] boolean
* ['timestamp_not_null'] boolean
*
* section_before_limit, section_after_limit
* -----------------------------------------
*
* Marks the point of the query where we can insert a LIMIT clause;
* so the section_before_limit will contain the left part before
* a possible LIMIT clause
*
*
* End of description of analyzer results
*/
/* Description of analyzer results
*
* db, table, column, alias
* ------------------------
*
* Inside the $subresult array, we create ['select_expr'] and ['table_ref'] arrays.
*
* The SELECT syntax (simplified) is
*
* SELECT
* select_expression,...
* [FROM [table_references]
*
*
* ['select_expr'] is filled with each expression, the key represents the
* expression position in the list (0-based) (so we don't lose track of
* multiple occurences of the same column).
*
* ['table_ref'] is filled with each table ref, same thing for the key.
*
* I create all sub-values empty, even if they are
* not present (for example no select_expression alias).
*
* There is a debug section at the end of loop #1, if you want to
* see the exact contents of select_expr and table_ref
*
* queryflags
* ----------
*
* In $subresult, array 'queryflags' is filled, according to what we
* find in the query.
*
* Currently, those are generated:
*
* ['queryflags']['need_confirm'] = 1; if the query needs confirmation
* ['queryflags']['select_from'] = 1; if this is a real SELECT...FROM
* ['queryflags']['distinct'] = 1; for a DISTINCT
* ['queryflags']['union'] = 1; for a UNION
* ['queryflags']['join'] = 1; for a JOIN
* ['queryflags']['offset'] = 1; for the presence of OFFSET
* ['queryflags']['procedure'] = 1; for the presence of PROCEDURE
*
* query clauses
* -------------
*
* The select is splitted in those clauses:
* ['select_expr_clause']
* ['from_clause']
* ['group_by_clause']
* ['order_by_clause']
* ['having_clause']
* ['limit_clause']
* ['where_clause']
*
* The identifiers of the WHERE clause are put into the array
* ['where_clause_identifier']
*
* For a SELECT, the whole query without the ORDER BY clause is put into
* ['unsorted_query']
*
* foreign keys
* ------------
* The CREATE TABLE may contain FOREIGN KEY clauses, so they get
* analyzed and ['foreign_keys'] is an array filled with
* the constraint name, the index list,
* the REFERENCES table name and REFERENCES index list,
* and ON UPDATE | ON DELETE clauses
*
* position_of_first_select
* ------------------------
*
* The array index of the first SELECT we find. Will be used to
* insert a SQL_CALC_FOUND_ROWS.
*
* create_table_fields
* -------------------
*
* Used to detect the DEFAULT CURRENT_TIMESTAMP and
* ON UPDATE CURRENT_TIMESTAMP clauses of the CREATE TABLE query.
* Also used to store the default value of the field.
* An array, each element is the identifier name.
* Note that for now, the timestamp_not_null element is created
* even for non-TIMESTAMP fields.
*
* Sub-elements: ['type'] which contains the column type
* optional (currently they are never false but can be absent):
* ['default_current_timestamp'] boolean
* ['on_update_current_timestamp'] boolean
* ['timestamp_not_null'] boolean
*
* section_before_limit, section_after_limit
* -----------------------------------------
*
* Marks the point of the query where we can insert a LIMIT clause;
* so the section_before_limit will contain the left part before
* a possible LIMIT clause
*
*
* End of description of analyzer results
*/
// must be sorted
// TODO: current logic checks for only one word, so I put only the
// first word of the reserved expressions that end a table ref;
// maybe this is not ok (the first word might mean something else)
// $words_ending_table_ref = array(
// 'FOR UPDATE',
// 'GROUP BY',
// 'HAVING',
// 'LIMIT',
// 'LOCK IN SHARE MODE',
// 'ORDER BY',
// 'PROCEDURE',
// 'UNION',
// 'WHERE'
// );
// $words_ending_table_ref = array(
// 'FOR UPDATE',
// 'GROUP BY',
// 'HAVING',
// 'LIMIT',
// 'LOCK IN SHARE MODE',
// 'ORDER BY',
// 'PROCEDURE',
// 'UNION',
// 'WHERE'
// );
$words_ending_table_ref = array(
'FOR' => 1,
'GROUP' => 1,
@ -1047,7 +1046,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
// loop #1 for each token: select_expr, table_ref for SELECT
for ($i = 0; $i < $size; $i++) {
//DEBUG echo "Loop1 <strong>" . $arr[$i]['data'] . "</strong> (" . $arr[$i]['type'] . ")<br />";
//DEBUG echo "Loop1 <strong>" . $arr[$i]['data'] . "</strong> (" . $arr[$i]['type'] . ")<br />";
// High speed seek for locating the end of the current query
if ($seek_queryend == true) {
@ -1068,7 +1067,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
continue;
} // end if (type == punct_queryend)
// ==============================================================
// ==============================================================
if ($arr[$i]['type'] == 'punct_bracket_open_round') {
$number_of_brackets++;
if ($in_extract) {
@ -1078,7 +1077,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
$number_of_brackets_in_group_concat++;
}
}
// ==============================================================
// ==============================================================
if ($arr[$i]['type'] == 'punct_bracket_close_round') {
$number_of_brackets--;
if ($number_of_brackets == 0) {
@ -1109,7 +1108,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
*/
continue;
}
// ==============================================================
// ==============================================================
if ($arr[$i]['type'] == 'alpha_functionName') {
$upper_data = strtoupper($arr[$i]['data']);
if ($upper_data =='EXTRACT') {
@ -1122,10 +1121,10 @@ if (! defined('PMA_MINIMUM_COMMON')) {
}
}
// ==============================================================
// ==============================================================
if ($arr[$i]['type'] == 'alpha_reservedWord'
// && $arr[$i]['forbidden'] == false) {
) {
//&& $arr[$i]['forbidden'] == false) {
) {
// We don't know what type of query yet, so run this
if ($subresult['querytype'] == '') {
$subresult['querytype'] = strtoupper($arr[$i]['data']);
@ -1168,7 +1167,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
// reserved words below
} // end if (type == alpha_reservedWord)
// ==============================
// ==============================
if ($arr[$i]['type'] == 'quote_backtick'
|| $arr[$i]['type'] == 'quote_double'
|| $arr[$i]['type'] == 'quote_single'
@ -1229,7 +1228,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
} // end if (querytype SELECT)
} // end if (quote_backtick or double quote or alpha_identifier)
// ===================================
// ===================================
if ($arr[$i]['type'] == 'punct_qualifier') {
// to be able to detect an identifier following another
$previous_was_identifier = false;
@ -1498,7 +1497,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
$in_subquery = false;
for ($i = 0; $i < $size; $i++) {
//DEBUG echo "Loop2 <strong>" . $arr[$i]['data'] . "</strong> (" . $arr[$i]['type'] . ")<br />";
//DEBUG echo "Loop2 <strong>" . $arr[$i]['data'] . "</strong> (" . $arr[$i]['type'] . ")<br />";
// need_confirm
//
@ -1988,10 +1987,10 @@ if (! defined('PMA_MINIMUM_COMMON')) {
if ($seen_references) {
if ($seen_alter && $brackets_level > 0) {
$foreign[$foreign_key_number]['ref_index_list'][] = $identifier;
// here, the first bracket level corresponds to the
// bracket of CREATE TABLE
// so if we are on level 2, it must be the index list
// of the foreign key REFERENCES
// here, the first bracket level corresponds to the
// bracket of CREATE TABLE
// so if we are on level 2, it must be the index list
// of the foreign key REFERENCES
} elseif ($brackets_level > 1) {
$foreign[$foreign_key_number]['ref_index_list'][] = $identifier;
} elseif ($arr[$i+1]['type'] == 'punct_qualifier') {
@ -2200,7 +2199,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
$in_priv_list = false;
for ($i = $start_token; $i < $number_of_tokens; $i++) {
// DEBUG echo "Loop format <strong>" . $arr[$i]['data'] . "</strong> " . $arr[$i]['type'] . "<br />";
// DEBUG echo "Loop format <strong>" . $arr[$i]['data'] . "</strong> " . $arr[$i]['type'] . "<br />";
$before = '';
$after = '';
// array_shift($typearr);
@ -2307,7 +2306,7 @@ if (! defined('PMA_MINIMUM_COMMON')) {
// select 20 -9
// )
if ($typearr[3] != 'digit_integer') {
$after .= ' ';
$after .= ' ';
}
break;
case 'punct_bracket_close_round':
@ -2453,8 +2452,8 @@ if (! defined('PMA_MINIMUM_COMMON')) {
$before .= $space_alpha_reserved_word;
}
} else {
// on first keyword, check if it introduces a
// privilege list
// on first keyword, check if it introduces a
// privilege list
if (isset($keywords_priv_list[$arr[$i]['data']])) {
$in_priv_list = true;
}

View File

@ -10038,7 +10038,7 @@ msgid "Query analyzer"
msgstr "Užklausos analizatorius"
#: server_status.php:1593
#, php-format
#, php-format, fuzzy
#| msgid "Second"
msgid "%d second"
msgid_plural "%d seconds"
@ -10047,7 +10047,7 @@ msgstr[1] "Sekundės"
msgstr[2] "Sekundžių"
#: server_status.php:1595
#, php-format
#, php-format, fuzzy
#| msgid "Minute"
msgid "%d minute"
msgid_plural "%d minutes"

View File

@ -101,10 +101,10 @@ foreach ($the_tables as $key => $table) {
$columns = PMA_DBI_get_columns($db, $table);
// We need this to correctly learn if a TIMESTAMP is NOT NULL, since
// SHOW FULL FIELDS or INFORMATION_SCHEMA incorrectly says NULL
// and SHOW CREATE TABLE says NOT NULL (tested
// in MySQL 4.0.25 and 5.0.21, http://bugs.mysql.com/20910).
// We need this to correctly learn if a TIMESTAMP is NOT NULL, since
// SHOW FULL FIELDS or INFORMATION_SCHEMA incorrectly says NULL
// and SHOW CREATE TABLE says NOT NULL (tested
// in MySQL 4.0.25 and 5.0.21, http://bugs.mysql.com/20910).
$show_create_table = PMA_DBI_fetch_value(
'SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table),