diff --git a/htdocs/admin/translation.php b/htdocs/admin/translation.php index abb5ebfd6ba..5493741c0d8 100644 --- a/htdocs/admin/translation.php +++ b/htdocs/admin/translation.php @@ -463,7 +463,11 @@ if ($mode == 'searchkey') { } else { // Now search into translation array foreach ($newlang->tab_translate as $key => $val) { - if ($transkey && !preg_match('/'.preg_quote($transkey, '/').'/i', $key)) { + $newtranskey = preg_replace('/\$$/', '', preg_replace('/^\^/', '', $transkey)); + $newtranskeystart = preg_match('/^\^/', $transkey); + $newtranskeyend = preg_match('/\$$/', $transkey); + $regexstring = ($newtranskeystart ? '^' : '').preg_quote($newtranskey, '/').($newtranskeyend ? '$' : ''); + if ($transkey && !preg_match('/'.$regexstring.'/i', $key)) { continue; } if ($transvalue && !preg_match('/'.preg_quote($transvalue, '/').'/i', $val)) {