Converting PHP defined constant values to multiple languages
In all honesty, that seems a bit redundant... But since you can't change the constant values here it goes:

define('ACTION_ACCOUNT_NEW', 1024);
define('ACTION_ACCOUNT_DELETE', 1025);

function ActionToString($action)
{
    $actions_map = array();
    $defined_constants = get_defined_constants(true); // use true to get "user" key

    if (isset($defined_constants['user']))
    {
        $defined_constants = $defined_constants['user'];

        // only process constants that start with "ACTION_"
        $defined_constants = array_intersect_key($defined_constants, array_flip(preg_grep('~^ACTION_~i', array_keys($defined_constants))));

        foreach ($defined_constants as $key =&gt; $value)
        {
            $actions_map[$value] = Language::_($key);
        }

        return isset($actions_map[$action]) ? $actions_map[$action] : Language::_('Unknown');
    }

    return Language::_('Unknown');
}


It assumes you only want to parse constants that start with ACTION_, other than that it should work just fine (although, a bit slower due to the looping - still, you could probably fix it with static variables).

One other alternative would be to use class constants but I'm not sure if that option is available to you.