Skip to content

Commit 77ecc80

Browse files
committed
add mergeable PhpMessageSource
1 parent 0250acc commit 77ecc80

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
/**
3+
* @author Dmytro Karpovych
4+
* @copyright 2015 NRE
5+
*/
6+
7+
namespace nullref\core\components\i18n;
8+
9+
10+
use Yii;
11+
use yii\i18n\PhpMessageSource as BasePhpMessageSource;
12+
use yii\helpers\ArrayHelper;
13+
14+
class PhpMessageSource extends BasePhpMessageSource
15+
{
16+
protected $_parentMessages = [];
17+
protected function loadMessages($category, $language)
18+
{
19+
$messages = parent::loadMessages($category, $language);
20+
21+
if ((strpos($category, '*') > 0)){
22+
return $messages;
23+
}
24+
$key = $category . '/' . $language;
25+
26+
if (!isset($this->_parentMessages[$key])){
27+
$parent = Yii::$app->getI18n()->getMessageSource($category.'*');
28+
$oldMessages = $parent->loadMessages($category, $language);
29+
$this->_parentMessages[$key] = ArrayHelper::merge($messages, $oldMessages);
30+
}
31+
return $this->_parentMessages[$key];
32+
}
33+
34+
}

0 commit comments

Comments
 (0)