public static function mergeHeaders(Translations $from, Translations $to, $options = self::DEFAULTS)
    {
        if ($options & self::HEADERS_REMOVE) {
            foreach (array_keys($to->getHeaders()) as $name) {
                if ($from->getHeader($name) === null) {
                    $to->deleteHeader($name);
                }
            }
        }

        foreach ($from->getHeaders() as $name => $value) {
            $current = $to->getHeader($name);

            if (empty($current)) {
                if ($options & self::HEADERS_ADD) {
                    $to->setHeader($name, $value);
                }
                continue;
            }

            if (empty($value)) {
                continue;
            }

            switch ($name) {
                case Translations::HEADER_LANGUAGE:
                case Translations::HEADER_PLURAL:
                    if ($options & self::LANGUAGE_OVERRIDE) {
                        $to->setHeader($name, $value);
                    }
                    break;

                case Translations::HEADER_DOMAIN:
                    if ($options & self::DOMAIN_OVERRIDE) {
                        $to->setHeader($name, $value);
                    }
                    break;

                default:
                    if ($options & self::HEADERS_OVERRIDE) {
                        $to->setHeader($name, $value);
                    }
            }
        }
    }
public static function mergeHeaders(Translations $from, Translations $to, $options = self::DEFAULTS)
    {
        if ($options & self::HEADERS_REMOVE) {
            foreach (array_keys($to->getHeaders()) as $name) {
                if ($from->getHeader($name) === null) {
                    $to->deleteHeader($name);
                }
            }
        }

        foreach ($from->getHeaders() as $name => $value) {
            $current = $to->getHeader($name);

            if (empty($current)) {
                if ($options & self::HEADERS_ADD) {
                    $to->setHeader($name, $value);
                }
                continue;
            }

            if (empty($value)) {
                continue;
            }

            switch ($name) {
                case Translations::HEADER_LANGUAGE:
                case Translations::HEADER_PLURAL:
                    if ($options & self::LANGUAGE_OVERRIDE) {
                        $to->setHeader($name, $value);
                    }
                    break;

                case Translations::HEADER_DOMAIN:
                    if ($options & self::DOMAIN_OVERRIDE) {
                        $to->setHeader($name, $value);
                    }
                    break;

                default:
                    if ($options & self::HEADERS_OVERRIDE) {
                        $to->setHeader($name, $value);
                    }
            }
        }
    }
public static function mergeHeaders ( Translations $ from , Translations $ to , $ options = self :: DEFAULTS ) { if ( $ options & self :: HEADERS_REMOVE ) { foreach ( array_keys ( $ to -> getHeaders ( ) ) as $ name ) { if ( $ from -> getHeader ( $ name ) === null ) { $ to -> deleteHeader ( $ name ) ; } } } foreach ( $ from -> getHeaders ( ) as $ name => $ value ) { $ current = $ to -> getHeader ( $ name ) ; if ( empty ( $ current ) ) { if ( $ options & self :: HEADERS_ADD ) { $ to -> setHeader ( $ name , $ value ) ; } continue ; } if ( empty ( $ value ) ) { continue ; } switch ( $ name ) { case Translations :: HEADER_LANGUAGE : case Translations :: HEADER_PLURAL : if ( $ options & self :: LANGUAGE_OVERRIDE ) { $ to -> setHeader ( $ name , $ value ) ; } break ; case Translations :: HEADER_DOMAIN : if ( $ options & self :: DOMAIN_OVERRIDE ) { $ to -> setHeader ( $ name , $ value ) ; } break ; default : if ( $ options & self :: HEADERS_OVERRIDE ) { $ to -> setHeader ( $ name , $ value ) ; } } } }
Merge the headers of two translations.

@param Translations $from
@param Translations $to
@param int          $options
Merge the headers of two translations .