Skip to content

Commit 1949a20

Browse files
committed
Ensure L10n::get() consistently returns the set language. Closes #2737
1 parent 35b48c2 commit 1949a20

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

lib/Cake/I18n/L10n.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,9 +343,12 @@ public function __construct() {
343343
public function get($language = null) {
344344
if ($language !== null) {
345345
return $this->_setLanguage($language);
346-
} elseif ($this->_autoLanguage() === false) {
347-
return $this->_setLanguage();
348346
}
347+
348+
if (!$this->_autoLanguage()) {
349+
$this->_setLanguage();
350+
}
351+
return $this->lang;
349352
}
350353

351354
/**

lib/Cake/Test/Case/I18n/L10nTest.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ public function testGet() {
3434
$localize = new L10n();
3535

3636
// Catalog Entry
37-
$localize->get('en');
37+
$lang = $localize->get('en');
3838

39+
$this->assertEquals('en', $lang);
3940
$this->assertEquals('English', $localize->language);
4041
$this->assertEquals(array('eng', 'eng'), $localize->languagePath);
4142
$this->assertEquals('eng', $localize->locale);
@@ -57,8 +58,9 @@ public function testGet() {
5758
// Default Entry
5859
define('DEFAULT_LANGUAGE', 'en-us');
5960

60-
$localize->get('use_default');
61+
$lang = $localize->get('use_default');
6162

63+
$this->assertEquals('en-us', $lang);
6264
$this->assertEquals('English (United States)', $localize->language);
6365
$this->assertEquals(array('en_us', 'eng'), $localize->languagePath);
6466
$this->assertEquals('en_us', $localize->locale);
@@ -86,15 +88,17 @@ public function testGetAutoLanguage() {
8688
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'inexistent,en-ca';
8789

8890
$localize = new L10n();
89-
$localize->get();
91+
$lang = $localize->get();
9092

93+
$this->assertEquals('en-ca', $lang);
9194
$this->assertEquals('English (Canadian)', $localize->language);
9295
$this->assertEquals(array('en_ca', 'eng', 'eng'), $localize->languagePath);
9396
$this->assertEquals('en_ca', $localize->locale);
9497

9598
$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'es_mx';
96-
$localize->get();
99+
$lang = $localize->get();
97100

101+
$this->assertEquals('es-mx', $lang);
98102
$this->assertEquals('Spanish (Mexican)', $localize->language);
99103
$this->assertEquals(array('es_mx', 'spa', 'eng'), $localize->languagePath);
100104
$this->assertEquals('es_mx', $localize->locale);

0 commit comments

Comments
 (0)