From cf4d6de8400731ab2be70942359b32ec6049f697 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Fri, 11 Oct 2019 12:32:42 -0300 Subject: [PATCH] Fix advisor2po script MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Related to 88821f8248b4544fe51c426cea0cecd1aaaa1af2 Signed-off-by: MaurĂ­cio Meneghini Fauth --- libraries/classes/Advisor.php | 8 ++++++-- scripts/advisor2po | 27 ++++++++++++++++----------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/libraries/classes/Advisor.php b/libraries/classes/Advisor.php index 8c5903e331..a60b777857 100644 --- a/libraries/classes/Advisor.php +++ b/libraries/classes/Advisor.php @@ -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); } /** diff --git a/scripts/advisor2po b/scripts/advisor2po index 128a5ecf50..2a7190616b 100644 --- a/scripts/advisor2po +++ b/scripts/advisor2po @@ -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); } -?> -- 2.11.4.GIT