Fix Context::loadLang() compatibility when lang.xml is specified

This commit is contained in:
Kijin Sung 2017-05-05 11:47:22 +09:00
parent 1a3e1f1653
commit 8ca0ca4a47
2 changed files with 10 additions and 1 deletions

View file

@ -854,8 +854,9 @@ class Context
*/
public static function loadLang($path)
{
if (preg_match('@/(modules|addons|plugins)/([a-z0-9_]+)/lang/?$@', str_replace('\\', '/', $path), $matches))
if (preg_match('@/(modules|addons|plugins|widgets)/([a-zA-Z0-9_-]+)/lang/?(?:lang\.xml)?$@', str_replace('\\', '/', $path), $matches))
{
$path = \RX_BASEDIR . $matches[1] . '/' . $matches[2] . '/lang';
$plugin_name = $matches[2];
}
else

View file

@ -66,4 +66,12 @@ class LangTest extends \Codeception\TestCase\Test
$en->foobartestlang = 'Hello, %s!';
$this->assertEquals('Hello, Travis!', $en->get('foobartestlang', 'Travis'));
}
public function testLangCompat()
{
Context::loadLang('./modules/member/lang');
$this->assertEquals('서명', Context::getLang('signature'));
Context::loadLang('./modules/document/lang/lang.xml');
$this->assertEquals('문서 목록', Context::getLang('document_list'));
}
}