Ejemplo n.º 1
0
    /**
     * Serves the locale Javascript to translate javascript strings.
     */
    public function locale_js()
    {
        header('Expires: ' . gmdate('D, d M Y H:i:s ', time() + 432000) . 'GMT');
        header('content-type: text/javascript');
        $domain = Locale::get_messages();
        $domain_json = json_encode($domain);
        $js = <<<TEEHEE
function _t() {
    var domain = {$domain_json};
    var s = arguments[0];

    if(domain[s] != undefined) {
        s = domain[s][1][0];
    }

    for(var i = 1; i <= arguments.length; i++) {
        r = new RegExp('%' + (i) + '\\\\\$s', 'g');
        if(!s.match(r)) {
            r = new RegExp('%s');
        }
        s = s.replace(r, arguments[i]);
    }
    return s;
}
TEEHEE;
        echo Plugins::filter('locale_js', $js);
    }
Ejemplo n.º 2
0
<?php

namespace Habari;

if (!defined('HABARI_PATH')) {
    die('No direct access');
}
?>
	</div><!-- end wrapper -->
	<script type="text/javascript">
function _t() {
	var domain = <?php 
// retrieve only the translated strings that are used by this page's javascript functions.
$messages = array_intersect_key(Locale::get_messages(), array_flip(array("All selected", "%s selected", "None selected")));
echo json_encode($messages);
?>
;
	var s = arguments[0];

	if(domain[s] != undefined) {
		s = domain[s][1][0];
	}

	for(var i = 1; i <= arguments.length; i++) {
		r = new RegExp('%' + (i) + '\\\\\$s', 'g');
		if(!s.match(r)) {
			r = new RegExp('%s');
		}
		s = s.replace(r, arguments[i]);
	}
	return s;