Вот что я хочу сделать:
$line = 'blabla translate("test") blabla';
$line = preg_replace("/(.*?)translate\((.*?)\)(.*?)/","$1".translate("$2")."$3",$line);
Таким образом, результатом должно быть то, что перевод («тест») заменяется переводом «тест».
Проблема в том, что translate ("$ 2") передает строку "$ 2" в функцию translate. Поэтому translate () пытается перевести «$ 2» вместо «test».
Есть ли способ передать значение соответствия в функцию перед заменой?