Issue #1572394 by attiks, Sweetchuck: Fixed Language detection by domain only works on port 80.
parent
988597f0df
commit
4777845d4f
|
@ -16,6 +16,7 @@ Drupal 7.15, xxxx-xx-xx (development version)
|
|||
may access the language using entity_language() (API change).
|
||||
- Fixed regression: The first plural index on a page was not calculated
|
||||
correctly.
|
||||
- Fixed bug: Language detection by domain only worked on port 80.
|
||||
|
||||
Drupal 7.14 2012-05-02
|
||||
----------------------
|
||||
|
|
|
@ -279,6 +279,12 @@ function locale_language_from_url($languages) {
|
|||
break;
|
||||
|
||||
case LOCALE_LANGUAGE_NEGOTIATION_URL_DOMAIN:
|
||||
// Get only the host, not the port.
|
||||
$http_host= $_SERVER['HTTP_HOST'];
|
||||
if (strpos($http_host, ':') !== FALSE) {
|
||||
$http_host_tmp = explode(':', $http_host);
|
||||
$http_host = current($http_host_tmp);
|
||||
}
|
||||
foreach ($languages as $language) {
|
||||
// Skip check if the language doesn't have a domain.
|
||||
if ($language->domain) {
|
||||
|
@ -286,7 +292,7 @@ function locale_language_from_url($languages) {
|
|||
// Remove protocol and add http:// so parse_url works
|
||||
$host = 'http://' . str_replace(array('http://', 'https://'), '', $language->domain);
|
||||
$host = parse_url($host, PHP_URL_HOST);
|
||||
if ($_SERVER['HTTP_HOST'] == $host) {
|
||||
if ($http_host == $host) {
|
||||
$language_url = $language->language;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -2378,7 +2378,7 @@ class LocaleUILanguageNegotiationTest extends DrupalWebTestCase {
|
|||
array(
|
||||
'language_negotiation' => array(LOCALE_LANGUAGE_NEGOTIATION_URL, LANGUAGE_NEGOTIATION_DEFAULT),
|
||||
'locale_language_negotiation_url_part' => LOCALE_LANGUAGE_NEGOTIATION_URL_DOMAIN,
|
||||
'locale_test_domain' => $language_domain,
|
||||
'locale_test_domain' => $language_domain . ':88',
|
||||
'path' => 'admin/config',
|
||||
'expect' => $language_string,
|
||||
'expected_provider' => LOCALE_LANGUAGE_NEGOTIATION_URL,
|
||||
|
|
Loading…
Reference in New Issue