function smarty_function_translation_exists($params, &$smarty) { // @codingStandardsIgnoreEnd if (is_array($params)) { $prefix = isset($params['prefix']) ? $params['prefix'] : ''; $text = isset($params['text']) ? $params['text'] : ''; } else { $text = $params; } // default true for backwards compatibility $status = true; if (function_exists('translationExists')) { $status = translationExists(array('text' => $text, 'prefix' => $prefix)); } $smarty->assign('translationStatus', $status); }
/** * generates po files with appropriate header for a given locale and all apps * * @param string $_locale * @return void */ function generateNewTranslationFiles($_locale, $_verbose = false, $_overwrite = false) { list($language, $region) = explode('_', $_locale); $locale = new Zend_Locale('en'); $languageName = $locale->getTranslation($language, 'language'); $regionName = $locale->getTranslation($region, 'country'); if (!$languageName) { die("Language '{$language}' is not valid / known \n"); } if ($region && !$regionName) { die("Region '{$region}' is not valid / known \n"); } $regionName = $region ? $regionName : 'Not Specified / Any'; if (translationExists($_locale)) { if ($_overwrite) { if ($_verbose) { echo "Overwriting existing lang files for {$_locale} \n"; } } else { die("Translations for {$_locale} already exist \n"); } } if ($_verbose) { echo "Generation new lang files for \n"; echo " Language: {$languageName} \n"; echo " Region: {$regionName} \n"; } $pluralForm = getPluralForm($languageName); foreach (Tinebase_Translation::getTranslationDirs() as $appName => $translationPath) { if (!checkAppName($appName, $_verbose)) { continue; } $file = "{$translationPath}/{$_locale}.po"; generateNewTranslationFile($languageName, $regionName, $appName, $pluralForm, $file, $_verbose); } }