/**
* Translate query keywords.
* @param $searchPhrase string
* @return The translated search phrase.
*/
function _translateSearchPhrase($searchPhrase, $backwards = false)
{
static $queryKeywords;
if (is_null($queryKeywords)) {
// Query keywords.
$queryKeywords = array(PKPString::strtoupper(__('search.operator.not')) => 'NOT', PKPString::strtoupper(__('search.operator.and')) => 'AND', PKPString::strtoupper(__('search.operator.or')) => 'OR');
}
if ($backwards) {
$translationTable = array_flip($queryKeywords);
} else {
$translationTable = $queryKeywords;
}
// Translate the search phrase.
foreach ($translationTable as $translateFrom => $translateTo) {
$searchPhrase = PKPString::regexp_replace("/(^|\\s){$translateFrom}(\\s|\$)/i", "\\1{$translateTo}\\2", $searchPhrase);
}
return $searchPhrase;
}