Skip to content

Commit 8ab278a

Browse files
committed
source files
1 parent 17e0f46 commit 8ab278a

File tree

5 files changed

+64
-0
lines changed

5 files changed

+64
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.idea

yii-js-t/JsTController.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
class JsTController extends CController
3+
{
4+
protected function afterRender($view, &$output)
5+
{
6+
/**
7+
* @var $source JsTPhpMessageSource
8+
*/
9+
$source = Yii::app()->getComponent('messages');
10+
11+
$baseUrl = Yii::app()->assetManager->publish(__DIR__ . '/assets');
12+
Yii::app()->clientScript
13+
->registerScript(md5('Yii.tJs'. time()), 'window.messages = ' . CJSON::encode($source->getMessages()), CClientScript::POS_HEAD)
14+
->registerScriptFile($baseUrl . '/JsT.min.js', CClientScript::POS_HEAD);
15+
16+
parent::afterRender($view, $output);
17+
}
18+
}

yii-js-t/JsTPhpMessageSource.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
class JsTPhpMessageSource extends CPhpMessageSource
3+
{
4+
private $_messages = array();
5+
6+
public function getMessages()
7+
{
8+
return $this->_messages;
9+
}
10+
11+
/**
12+
* Collect all messages
13+
*
14+
* @param string $category
15+
* @param string $language
16+
* @return array
17+
*/
18+
protected function loadMessages($category, $language)
19+
{
20+
$messages = parent::loadMessages($category, $language);
21+
$this->_messages += $messages;
22+
return $messages;
23+
}
24+
}

yii-js-t/assets/JsT.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
(function (window) {
2+
'use strict';
3+
if (undefined === window.Yii) window.Yii = {};
4+
5+
/**
6+
* Translate message with current language
7+
*
8+
* @type {Function}
9+
* @private
10+
*/
11+
window._t = window.Yii.t = function(message) {
12+
if (undefined === window.messages
13+
|| !window.messages.hasOwnProperty(message)
14+
|| !window.messages[message].toString().length) {
15+
return message;
16+
}
17+
18+
return window.messages[message].toString();
19+
}
20+
})(window);

yii-js-t/assets/JsT.min.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)