function testTranslationCaching()
 {
     Configure::write('Config.language', 'cache_test_po');
     $i18n =& i18n::getInstance();
     // reset internally stored entries
     I18n::clear();
     Cache::clear(false, '_cake_core_');
     $lang = Configure::read('Config.language');
     #$i18n->l10n->locale;
     Cache::config('_cake_core_', Cache::config('default'));
     // make some calls to translate using different domains
     $this->assertEqual(I18n::translate('dom1.foo', false, 'dom1'), 'Dom 1 Foo');
     $this->assertEqual(I18n::translate('dom1.bar', false, 'dom1'), 'Dom 1 Bar');
     $this->assertEqual($i18n->__domains['dom1']['cache_test_po']['LC_MESSAGES']['dom1.foo'], 'Dom 1 Foo');
     // reset internally stored entries
     I18n::clear();
     // now only dom1 should be in cache
     $cachedDom1 = Cache::read('dom1_' . $lang, '_cake_core_');
     $this->assertEqual($cachedDom1['LC_MESSAGES']['dom1.foo'], 'Dom 1 Foo');
     $this->assertEqual($cachedDom1['LC_MESSAGES']['dom1.bar'], 'Dom 1 Bar');
     // dom2 not in cache
     $this->assertFalse(Cache::read('dom2_' . $lang, '_cake_core_'));
     // translate a item of dom2 (adds dom2 to cache)
     $this->assertEqual(I18n::translate('dom2.foo', false, 'dom2'), 'Dom 2 Foo');
     // verify dom2 was cached through manual read from cache
     $cachedDom2 = Cache::read('dom2_' . $lang, '_cake_core_');
     $this->assertEqual($cachedDom2['LC_MESSAGES']['dom2.foo'], 'Dom 2 Foo');
     $this->assertEqual($cachedDom2['LC_MESSAGES']['dom2.bar'], 'Dom 2 Bar');
     // modify cache entry manually to verify that dom1 entries now will be read from cache
     $cachedDom1['LC_MESSAGES']['dom1.foo'] = 'FOO';
     Cache::write('dom1_' . $lang, $cachedDom1, '_cake_core_');
     $this->assertEqual(I18n::translate('dom1.foo', false, 'dom1'), 'FOO');
 }
Esempio n. 2
0
<?php

require_once dirname(__FILE__) . '/inc/lib.inc';
require_once dirname(__FILE__) . '/inc/meta.inc';
require_once dirname(__FILE__) . '/inc/i18n.inc';
require_once dirname(__FILE__) . '/inc/config.inc';
require_once dirname(__FILE__) . '/inc/Mustache.php';
$i18n = i18n::getInstance();
$config = Config::getInstance();
$do = $_GET['do'];
if (!$do) {
    $do = $_POST['do'];
}
if (!$do) {
    $do = 'home';
}
$lang = $_GET['lg'];
if (!$lang) {
    $lang = $_POST['lg'];
}
if (!$lang) {
    $lang = 'pt';
}
global $default_collection, $default_collection_id;
$query = $_GET['q'];
$tag = preg_replace('/\\\\"/', '"', $_POST['t']);
$limit = intval($_GET['limit']);
if (!$limit) {
    $limit = 10;
}
$offset = intval($_GET['offset']);
 protected function parseUserSettings(array $args)
 {
     if (!empty($args)) {
         foreach ($args as $param => $value) {
             if ($param === 'lang') {
                 $langs = $this->registry->get('languages:langs', array('en' => 'English'), 'docbook');
                 /*
                 echo '<br />';
                 var_export($value);
                 var_export($langs);
                 */
                 if (array_key_exists($value, $langs)) {
                     i18n::getInstance()->setLanguage($value);
                     $true_language = i18n::getInstance()->getLanguage();
                     //var_export($true_language);
                     if (!isset($_SESSION['lang']) || $_SESSION['lang'] !== $true_language) {
                         $_SESSION['lang'] = $true_language;
                     }
                 }
             }
         }
     }
     //var_export($args);
     //exit('yo');
 }