public function run() { $extensions = common_ext_ExtensionsManager::singleton()->getInstalledExtensions(); $languages = tao_helpers_translation_Utils::getAvailableLanguages(); $path = ROOT_PATH . 'tao/views/locales/'; foreach ($languages as $langCode) { try { $bundle = new TranslationBundle($langCode, $extensions); $file = $bundle->generateTo($path); if ($file) { $this->out('Success: ' . $file); } else { $this->out('Failure generating: ' . $file); } } catch (common_excpetion_Error $e) { $this->out('Failure: ' . $e->getMessage()); } } }
/** * * @author Lionel Lecaque, lionel@taotesting.com */ public function generateClientBundles($checkPreviousBundlue = false) { $returnValue = array(); $extensions = common_ext_ExtensionsManager::singleton()->getInstalledExtensions(); // lookup for languages into tao $languages = tao_helpers_translation_Utils::getAvailableLanguages(); $path = ROOT_PATH . 'tao/views/locales/'; $generated = 0; $generate = true; foreach ($languages as $langCode) { try { $bundle = new TranslationBundle($langCode, $extensions); if ($checkPreviousBundlue) { $currenBundle = $path . $langCode . '.json'; if (file_exists($currenBundle)) { $bundleData = json_decode(file_get_contents($currenBundle), true); if ($bundleData['serial'] === $bundle->getSerial()) { $generate = false; } } if ($generate) { $file = $bundle->generateTo($path, false); } } else { $file = $bundle->generateTo($path); } if ($file) { $generated++; $returnValue[] = $file; } else { if ($generate) { common_Logger::e('Failure generating message.js for lang ' . $langCode); } else { common_Logger::d('Actual File is more recent, skip ' . $langCode); } } } catch (common_excpetion_Error $e) { common_Logger::e('Failure: ' . $e->getMessage()); } } common_Logger::i($generated . ' translation bundles have been (re)generated'); return $returnValue; }
/** * Test the bundle * @param string $langCode * @param array $extensions * @dataProvider bundleProvider */ public function testBundle($langCode, $extensions, $expectedSerial) { $bundle = new TranslationBundle($langCode, $extensions); $serial = $bundle->getSerial(); $this->assertTrue(is_string($serial)); $this->assertEquals($expectedSerial, $serial); if (is_dir(self::$tmpDir)) { $file = $bundle->generateTo(self::$tmpDir); $this->assertTrue(file_exists($file)); $content = json_decode(file_get_contents($file), true); $this->assertTrue(is_array($content)); $this->assertEquals($expectedSerial, $content['serial']); } }