Fix advisor2po script

Related to 88821f8248

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
Maurício Meneghini Fauth 2019-10-11 12:32:42 -03:00
parent 70281956bb
commit cf4d6de840
2 changed files with 22 additions and 13 deletions

View File

@ -516,13 +516,14 @@ class Advisor
$errors = array();
$rules = array();
$lines = array();
if ($file === false) {
$errors[] = sprintf(
__('Error in reading file: The file \'%s\' does not exist or is not readable!'),
$filename
);
return array('rules' => $rules, 'errors' => $errors);
return array('rules' => $rules, 'lines' => $lines, 'errors' => $errors);
}
$ruleSyntax = array(
@ -556,8 +557,10 @@ class Advisor
$ruleLine = 1;
$ruleNo++;
$rules[$ruleNo] = array('name' => $match[1]);
$lines[$ruleNo] = array('name' => $i + 1);
if (isset($match[3])) {
$rules[$ruleNo]['precondition'] = $match[3];
$lines[$ruleNo]['precondition'] = $i + 1;
}
} else {
$errors[] = sprintf(
@ -595,6 +598,7 @@ class Advisor
$rules[$ruleNo][$ruleSyntax[$ruleLine]] = chop(
mb_substr($line, 1)
);
$lines[$ruleNo][$ruleSyntax[$ruleLine]] = $i + 1;
++$ruleLine;
}
@ -604,7 +608,7 @@ class Advisor
}
}
return array('rules' => $rules, 'errors' => $errors);
return array('rules' => $rules, 'lines' => $lines, 'errors' => $errors);
}
/**

View File

@ -5,22 +5,24 @@
* strings for translation.
*/
use PhpMyAdmin\Advisor;
$messages = array();
$locations = array();
/**
* Processes single advisor message and stores data in global array.
*/
function add_message($rules, $idx, $type) {
function add_message($file, $rules, $idx, $type) {
global $messages, $locations;
// Get message text
if ($type == 'justification') {
$msgs = PhpMyAdmin\Advisor::splitJustification($rules['rules'][$idx]);
$msgs = Advisor::splitJustification($rules['rules'][$idx]);
$msg = $msgs[0];
} else {
$msg = $rules['rules'][$idx][$type];
}
$line = 'libraries/advisory_rules.txt:' . $rules['lines'][$idx][$type];
$line = $file . ':' . $rules['lines'][$idx][$type];
// Avoid duplicate mesages
$pos = array_search($msg, $messages);
if ($pos === false) {
@ -43,7 +45,7 @@ function print_message($idx) {
echo '#, php-format';
echo "\n";
}
echo 'msgid "' . addcslashes(PhpMyAdmin\Advisor::escapePercent($messages[$idx]), '"\\') . '"';
echo 'msgid "' . addcslashes(Advisor::escapePercent($messages[$idx]), '"\\') . '"';
echo "\n";
echo 'msgstr ""';
echo "\n";
@ -53,16 +55,19 @@ define('PHPMYADMIN', 1);
require_once 'libraries/vendor_config.php';
require_once AUTOLOAD_FILE;
$rules = PhpMyAdmin\Advisor::parseRulesFile();
$ruleFiles = [];
$ruleFiles[Advisor::GENERIC_RULES_FILE] = Advisor::parseRulesFile(Advisor::GENERIC_RULES_FILE);
$ruleFiles[Advisor::BEFORE_MYSQL80003_RULES_FILE] = Advisor::parseRulesFile(Advisor::BEFORE_MYSQL80003_RULES_FILE);
foreach($rules['rules'] as $idx => $rule) {
add_message($rules, $idx, 'name');
add_message($rules, $idx, 'issue');
add_message($rules, $idx, 'recommendation');
add_message($rules, $idx, 'justification');
foreach ($ruleFiles as $file => $rules) {
foreach ($rules['rules'] as $idx => $rule) {
add_message($file, $rules, $idx, 'name');
add_message($file, $rules, $idx, 'issue');
add_message($file, $rules, $idx, 'recommendation');
add_message($file, $rules, $idx, 'justification');
}
}
foreach($messages as $idx => $rule) {
print_message($idx);
}
?>