Apply wfBCP47() to HTTP response header Content-Language
authorFomafix <fomafix@googlemail.com>
Mon, 9 Nov 2015 05:43:11 +0000 (05:43 +0000)
committerFomafix <fomafix@googlemail.com>
Fri, 16 Sep 2016 15:43:27 +0000 (17:43 +0200)
See https://tools.ietf.org/html/rfc7231#section-3.1.3 for Content-Language.
This references https://tools.ietf.org/html/rfc5646 aka BCP 47.

Example:
curl -I https://crh.wikipedia.org/wiki/Ba%C5%9F_Saife | grep -i '^content-language:'
should contain
Content-language: crh-Latn
instead of
Content-language: crh-latn

Change-Id: Ice4f40911c3761c2542430935bc1898bc4e7a4d4

includes/OutputPage.php
includes/cache/HTMLFileCache.php

index 4c4fb1c..ba14b99 100644 (file)
@@ -2268,7 +2268,7 @@ class OutputPage extends ContextSource {
                ob_start();
 
                $response->header( 'Content-type: ' . $config->get( 'MimeType' ) . '; charset=UTF-8' );
                ob_start();
 
                $response->header( 'Content-type: ' . $config->get( 'MimeType' ) . '; charset=UTF-8' );
-               $response->header( 'Content-language: ' . $config->get( 'LanguageCode' ) );
+               $response->header( 'Content-language: ' . $config->get( 'ContLang' )->getHtmlCode() );
 
                // Avoid Internet Explorer "compatibility view" in IE 8-10, so that
                // jQuery etc. can work correctly.
 
                // Avoid Internet Explorer "compatibility view" in IE 8-10, so that
                // jQuery etc. can work correctly.
index 52ae279..71011e0 100644 (file)
@@ -154,7 +154,7 @@ class HTMLFileCache extends FileCacheBase {
         * @return void
         */
        public function loadFromFileCache( IContextSource $context, $mode = self::MODE_NORMAL ) {
         * @return void
         */
        public function loadFromFileCache( IContextSource $context, $mode = self::MODE_NORMAL ) {
-               global $wgMimeType, $wgLanguageCode;
+               global $wgMimeType, $wgContLang;
 
                wfDebug( __METHOD__ . "()\n" );
                $filename = $this->cachePath();
 
                wfDebug( __METHOD__ . "()\n" );
                $filename = $this->cachePath();
@@ -166,7 +166,7 @@ class HTMLFileCache extends FileCacheBase {
 
                $context->getOutput()->sendCacheControl();
                header( "Content-Type: $wgMimeType; charset=UTF-8" );
 
                $context->getOutput()->sendCacheControl();
                header( "Content-Type: $wgMimeType; charset=UTF-8" );
-               header( "Content-Language: $wgLanguageCode" );
+               header( 'Content-Language: ' . $wgContLang->getHtmlCode() );
                if ( $this->useGzip() ) {
                        if ( wfClientAcceptsGzip() ) {
                                header( 'Content-Encoding: gzip' );
                if ( $this->useGzip() ) {
                        if ( wfClientAcceptsGzip() ) {
                                header( 'Content-Encoding: gzip' );