src/CarteBlanche/CarteBlanche.php
public static function trans($arg1, $arg2 = null, $arg3 = null, $arg4 = null, $arg5 = null)
    {
        $i18n = self::getContainer()->get('i18n');
        if (is_object($arg1) && ($arg1 instanceof \DateTime)) {
            if (empty($i18n)) {
                return $arg1->format( !empty($arg2) ? $arg2 : 'Y-m-d H:i:s');
            }
            return \I18n\I18n::getLocalizedDateString($arg1, $arg2, $arg3, $arg4);
        } elseif (is_array($arg1)) {
            if (empty($i18n)) {
                return isset($arg1[$arg2]) ? $arg1[$arg2] : array_shift($arg1);
            }
            return \I18n\I18n::pluralize($arg1, $arg2, $arg3, $arg4);
        } elseif (is_string($arg1)) {
            if ($arg1==='number') {
                if (empty($i18n)) {
                    return $arg2;
                }
                return \I18n\I18n::getLocalizedNumberString($arg2, $arg3);
            } elseif($arg1==='price') {
                if (empty($i18n)) {
                    return $arg2;
                }
                return \I18n\I18n::getLocalizedPriceString($arg2, $arg3);
            } else {
                if (empty($i18n)) {
                    return $arg1;
                }
                return \I18n\I18n::translate($arg1, $arg2, $arg3);
            }
        } else {
            return null;
        }
    }
public static function trans($arg1, $arg2 = null, $arg3 = null, $arg4 = null, $arg5 = null)
    {
        $i18n = self::getContainer()->get('i18n');
        if (is_object($arg1) && ($arg1 instanceof \DateTime)) {
            if (empty($i18n)) {
                return $arg1->format( !empty($arg2) ? $arg2 : 'Y-m-d H:i:s');
            }
            return \I18n\I18n::getLocalizedDateString($arg1, $arg2, $arg3, $arg4);
        } elseif (is_array($arg1)) {
            if (empty($i18n)) {
                return isset($arg1[$arg2]) ? $arg1[$arg2] : array_shift($arg1);
            }
            return \I18n\I18n::pluralize($arg1, $arg2, $arg3, $arg4);
        } elseif (is_string($arg1)) {
            if ($arg1==='number') {
                if (empty($i18n)) {
                    return $arg2;
                }
                return \I18n\I18n::getLocalizedNumberString($arg2, $arg3);
            } elseif($arg1==='price') {
                if (empty($i18n)) {
                    return $arg2;
                }
                return \I18n\I18n::getLocalizedPriceString($arg2, $arg3);
            } else {
                if (empty($i18n)) {
                    return $arg1;
                }
                return \I18n\I18n::translate($arg1, $arg2, $arg3);
            }
        } else {
            return null;
        }
    }
Full aliasing of internationalization

- will `datify` if `$arg1` is a `DateTime`:
`\I18n\I18n::getLocalizedDateString( date: $arg1 = DateTime , [mask: $arg2 = null] , [charset: $arg3 = 'UTF-8'] , [lang: $arg4 = null] )`
- will `pluralize` if `$arg1` is an array:
`\I18n\I18n::pluralize( indexes: $arg1 = array , [count: $arg2 = 0] , [args: $arg3 = array] , [lang: $arg4 = null] )`
- will `numberify` if `$arg1`=='number':
`\I18n\I18n::getLocalizedNumberString( number: $arg2 = float , [lang: $arg3 = null] )`
- will `currencify` if `$arg1`=='price':
`\I18n\I18n::getLocalizedPriceString( price: $arg2 = float , [lang: $arg3 = null] )`
- will `translate` if `$arg1` is a string and not 'number' or 'price':
`\I18n\I18n::translate( index: $arg1 = string, [params: $arg2 = array] , [lang: $arg3 = null] )`

@param   string/DateTime     $arg1
@param   string/int          $arg2
@param   array/string        $arg3
@param   string              $arg4
@param   string              $arg5
@return  mixed
@alias   \I18n\I18n::translate($index, $args, $lang)
@alias   \I18n\I18n::pluralize($indexes, $number, $args, $lang)
@alias   \I18n\I18n::getLocalizedDateString($date, $mask, $charset, $lang)
@alias   \I18n\I18n::getLocalizedNumberString($number, $lang)
@alias   \I18n\I18n::getLocalizedPriceString($number, $lang)