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'); }
<?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'); }