no te preocupes, del modo en que lo planteas... es una buena forma de ir agregando traducciones mientras se avanza en el proyecto, genial!!
no se a que te refieres en el... y si da false??
vamos a hacer lo que te digo, usando la lógica de tu función...
Código PHP:
<?php
define('foo_bar', 'foobar');
define('Candy', 'candy');
define('BAR', 'bar');
function ln($str)
{
$expr = preg_quote($str); // escapamos
$d = get_defined_constants();
foreach ($d as $key => $val)
{
if (preg_match("/^$expr$/i", $key))
{
return $val;
}
}
// por defecto, devolvemos la cadena
return strtoupper($str);
}
// tests....
echo ln('foo').'<br />';
echo ln('foo_bar').'<br />';
echo ln('candy').'<br />';
echo ln('bar').'<br />';
echo ln('no_existo').'<br />';
?>