private function updateCache() { try { $sys = erLhcoreClassSystem::instance()->SiteDir; $reader = new ezcTranslationTsBackend($sys . '/translations/' . $this->languageCode); $reader->setOptions(array('format' => 'translation.ts')); $reader->initReader($this->languageCode); $cacheObj = new ezcCacheStorageFileArray($sys . '/cache/translations'); $writer = new ezcTranslationCacheBackend($cacheObj); $writer->initWriter($this->languageCode); // Load extensions translations $extensions = erConfigClassLhConfig::getInstance()->getSetting('site', 'extensions'); $contextDataArray = array(); foreach ($extensions as $ext) { $trsDir = $sys . 'extension/' . $ext . '/translations/' . $this->languageCode . '/translation.ts'; if (file_exists($trsDir)) { $readerExtension = new ezcTranslationTsBackend($sys . '/extension/' . $ext . '/translations/' . $this->languageCode); $readerExtension->setOptions(array('format' => 'translation.ts')); $readerExtension->initReader($this->languageCode); foreach ($readerExtension as $contextName => $contextData) { if (isset($contextDataArray[$contextName])) { // Perhaps few extensions have same content? $contextDataArray[$contextName] = array_merge($contextDataArray[$contextName], $contextData); } else { $contextDataArray[$contextName] = $contextData; } } $readerExtension->deInitReader(); } } // Store translations foreach ($reader as $contextName => $contextData) { if (isset($contextDataArray[$contextName])) { $contextData = array_merge($contextData, $contextDataArray[$contextName]); unset($contextDataArray[$contextName]); } $writer->storeContext($contextName, $contextData); } // Store unique extension context foreach ($contextDataArray as $contextName => $contextData) { $writer->storeContext($contextName, $contextData); } $reader->deInitReader(); unset($contextDataArray); $writer->deInitWriter(); } catch (Exception $e) { // Sometimes write fails, so ignore it } }
$contentFile = str_replace($Matches[0][$key], '', $contentFile); } $Matches = array(); preg_match_all('/erTranslationClassLhTranslation::getInstance\\(\\)->getTranslation\\(\'(.*?)\',\'(.*?)\'\\)/i', $contentFile, $Matches); foreach ($Matches[1] as $key => $section) { if (!isset($arrayTranslationsProcess[$section])) { $arrayTranslationsProcess[$section] = array(); } if (!in_array($Matches[2][$key], $arrayTranslationsProcess[$section])) { $arrayTranslationsProcess[$section][] = $Matches[2][$key]; } } } $reader = new ezcTranslationTsBackend($cronjobPathOption->value . '/doc'); $reader->setOptions(array('format' => 'default.ts')); $reader->initReader($locale); $manager = new ezcTranslationManager($reader); function translateToLanguage($apiKey, $toLanguage, $string) { return ''; } foreach ($arrayTranslationsProcess as $context => $itemsToTranslate) { $contextItems = array(); try { $contextItem = $manager->getContext($locale, $context); } catch (Exception $e) { // Context does not exists $reader->initWriter($locale); $reader->storeContext($context, $contextItems); $reader->deinitWriter(); $contextItem = $manager->getContext($locale, $context);
public function testReader5() { if (!ezcBaseFeatures::classExists('SimpleXMLIterator')) { $this->markTestSkipped("This test is supposed to run only when the SimpleXML extension is available."); } $currentDir = dirname(__FILE__); $backend = new ezcTranslationTsBackend("{$currentDir}/files/translations"); $backend->setOptions(array('format' => '[LOCALE].xml')); $backend->initReader('nb-no'); $contexts = array(); foreach ($backend as $contextName => $context) { $contexts[] = $contextName; } $backend->deinitReader(); $expected = array('contentstructuremenu/show_content_structure', 'design/admin/class/classlist', 'design/admin/class/datatype/browse_objectrelationlist_placement'); self::assertEquals($expected, $contexts); }
public function testReader5() { $currentDir = dirname(__FILE__); $backend = new ezcTranslationTsBackend("{$currentDir}/files/translations"); $backend->setOptions(array('format' => '[LOCALE].xml')); $backend->initReader('nb-no'); $contexts = array(); foreach ($backend as $contextName => $context) { $contexts[] = $contextName; } $backend->deinitReader(); $expected = array('contentstructuremenu/show_content_structure', 'design/admin/class/classlist', 'design/admin/class/datatype/browse_objectrelationlist_placement'); self::assertEquals($expected, $contexts); }
<?php require_once 'tutorial_autoload.php'; $backend = new ezcTranslationTsBackend(dirname(__FILE__) . '/translations'); $backend->setOptions(array('format' => 'translation-[LOCALE].xml')); $backend->initReader('nb_NO'); foreach ($backend as $contextName => $contextData) { echo $contextName, "\n"; foreach ($contextData as $context) { echo "\toriginal string: {$context->original}\n"; echo "\ttranslated string: {$context->translation}\n\n"; } }
<?php require_once 'tutorial_autoload.php'; $reader = new ezcTranslationTsBackend(dirname(__FILE__) . '/translations'); $reader->setOptions(array('format' => 'translation-[LOCALE].xml')); $reader->initReader('nb_NO'); $cacheObj = new ezcCacheStorageFileArray(dirname(__FILE__) . '/translations-cache'); $writer = new ezcTranslationCacheBackend($cacheObj); $writer->initWriter('nb_NO'); foreach ($reader as $contextName => $contextData) { $writer->storeContext($contextName, $contextData); } $reader->deInitReader(); $writer->deInitWriter();