diff --git a/setup/cli/modules/i18n.php b/setup/cli/modules/i18n.php index 04baeb734de75ea0e8e6a61dca17dec86f61fc68..269386dfd55097de993e3d6bbc0309e474d9cc67 100644 --- a/setup/cli/modules/i18n.php +++ b/setup/cli/modules/i18n.php @@ -581,10 +581,11 @@ class i18n_Compiler extends Module { $s = str_replace($root, '', $s); $this->stderr->write($s."\n"); $calls = array(); - preg_match_all('/__\(\s*[^\'"]*(([\'"])(?:(?<!\\\\)\2|.)+\2)\s*[^)]*\)/', + preg_match_all('/(?:function\s+)?__\(\s*[^\'"]*(([\'"])(?:(?<!\\\\)\2|.)+\2)\s*[^)]*\)/', $script, $calls, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); foreach ($calls as $c) { - $call = $this->__find_strings(token_get_all('<?php '.$c[0][0]), $funcs, 0); + if (!($call = $this->__find_strings(token_get_all('<?php '.$c[0][0]), $funcs, 0))) + continue; $call = $call[0]; list($lhs) = str_split($script, $c[1][1]);