Skip to content

Commit

Permalink
Merge pull request #13050 from mlutfy/i18n-getlocale
Browse files Browse the repository at this point in the history
CRM_Core_I18n::setLocale should change $tsLocale for getLocale() to work correctly
  • Loading branch information
eileenmcnaughton authored Nov 8, 2018
2 parents 694464d + 96cb919 commit 9bc750f
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
3 changes: 3 additions & 0 deletions CRM/Core/I18n.php
Original file line number Diff line number Diff line change
Expand Up @@ -649,6 +649,9 @@ public function setLocale($locale) {
global $dbLocale;
$dbLocale = "_{$locale}";

// For self::getLocale()
global $tsLocale;
$tsLocale = $locale;
}

/**
Expand Down
55 changes: 55 additions & 0 deletions tests/phpunit/CRM/Core/I18n/LocaleTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?php
/*
+--------------------------------------------------------------------+
| CiviCRM version 5 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2018 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| CiviCRM is free software; you can copy, modify, and distribute it |
| under the terms of the GNU Affero General Public License |
| Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
| |
| CiviCRM is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the GNU Affero General Public License for more details. |
| |
| You should have received a copy of the GNU Affero General Public |
| License and the CiviCRM Licensing Exception along |
| with this program; if not, contact CiviCRM LLC |
| at info[AT]civicrm[DOT]org. If you have questions about the |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
/**
* Class CRM_Core_I18n_LocaleTest
* @group headless
*/
class CRM_Core_I18n_LocaleTest extends CiviUnitTestCase {

public function setUp() {
parent::setUp();
}

public function tearDown() {
CRM_Core_I18n_Schema::makeSinglelingual('en_US');
parent::tearDown();
}

/**
*
*/
public function testI18nLocaleChange() {
$this->enableMultilingual();
CRM_Core_I18n_Schema::addLocale('fr_CA', 'en_US');

CRM_Core_I18n::singleton()->setLocale('fr_CA');
$locale = CRM_Core_I18n::getLocale();

$this->assertEquals($locale, 'fr_CA');
}

}

0 comments on commit 9bc750f

Please sign in to comment.