/** * Display form to modify site language settings. * @param $args array * @param $request object */ function languages($args, &$request) { $this->validate(); $this->setupTemplate(true); $site =& $request->getSite(); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign('localeNames', Locale::getAllLocales()); $templateMgr->assign('primaryLocale', $site->getPrimaryLocale()); $templateMgr->assign('supportedLocales', $site->getSupportedLocales()); $localesComplete = array(); foreach (Locale::getAllLocales() as $key => $name) { $localesComplete[$key] = Locale::isLocaleComplete($key); } $templateMgr->assign('localesComplete', $localesComplete); $templateMgr->assign('installedLocales', $site->getInstalledLocales()); $templateMgr->assign('uninstalledLocales', array_diff(array_keys(Locale::getAllLocales()), $site->getInstalledLocales())); $templateMgr->assign('helpTopicId', 'site.siteManagement'); import('classes.i18n.LanguageAction'); $languageAction = new LanguageAction(); if ($languageAction->isDownloadAvailable()) { $templateMgr->assign('downloadAvailable', true); $templateMgr->assign('downloadableLocales', $languageAction->getDownloadableLocales()); } $templateMgr->display('admin/languages.tpl'); }
/** * @copydoc Form::fetch() */ function fetch($request) { $site = $request->getSite(); $allLocales = AppLocale::getAllLocales(); $installedLocales = $this->getData('installedLocales'); $notInstalledLocales = array_diff(array_keys($allLocales), $installedLocales); $templateMgr = TemplateManager::getManager($request); $templateMgr->assign('allLocales', $allLocales); $templateMgr->assign('notInstalledLocales', $notInstalledLocales); import('classes.i18n.LanguageAction'); $languageAction = new LanguageAction(); if ($languageAction->isDownloadAvailable()) { $downloadableLocales = $languageAction->getDownloadableLocales(); $downloadableLocaleLinks = array(); import('lib.pkp.classes.linkAction.request.AjaxAction'); $router = $request->getRouter(); foreach ($downloadableLocales as $locale => $name) { $downloadableLocaleLinks[$locale] = new LinkAction($locale, new AjaxAction($router->url($request, null, null, 'downloadLocale', array('locale' => $locale))), $name . ' (' . $locale . ')'); } $templateMgr->assign('downloadAvailable', true); $templateMgr->assign('downloadableLocaleLinks', $downloadableLocaleLinks); } return parent::fetch($request); }