/** * @return string Returns the CKEditor language configuration */ protected function getLanguageOption() { $langPath = DIR_BASE . '/' . DIRNAME_PACKAGES . '/community_ckeditor/vendor/ckeditor/lang/'; $useLanguage = 'en'; $language = strtolower(str_replace('_', '-', Localization::activeLocale())); if (file_exists($langPath . $language . '.js')) { $useLanguage = $language; } elseif (file_exists($langPath . strtolower(Localization::activeLanguage()) . '.js')) { $useLanguage = strtolower(Localization::activeLanguage()); } return $useLanguage; }
public function setupLocalization(LocalizablePackageInterface $package, $locale = null, $translate = 'current') { if ($translate === 'current') { $translate = \Localization::getTranslate(); } if (is_object($translate)) { if (!isset($locale) || !strlen($locale)) { $locale = Localization::activeLocale(); } $languageFile = $package->getTranslationFile($locale); if (is_file($languageFile)) { $translate->addTranslationFile('gettext', $languageFile); } } }
<?php use Concrete\Core\Localization\Localization; header('Content-type: text/javascript; charset=UTF-8'); $locale = str_replace('_', '-', Localization::activeLocale()); if ($locale === 'en-US') { echo '// No needs to translate ' . $locale; } else { $language = Localization::activeLanguage(); $alternatives = array($locale); if (strcmp($locale, $language) !== 0) { $alternatives[] = $language; } $content = false; foreach ($alternatives as $alternative) { $path = DIR_BASE_CORE . '/' . DIRNAME_JAVASCRIPT . "/i18n/select2_locale_{$alternative}.js"; if (is_file($path) && is_readable($path)) { $content = @file_get_contents($path); if (is_string($content)) { break; } } } if (is_string($content)) { echo $content; } else { echo '// No select2 translations for ' . implode(', ', $alternatives); } }
/** * @return \Concrete\Core\Error\Error */ public function configure() { $error = \Core::make('helper/validation/error'); /* @var $error \Concrete\Core\Error\Error */ try { $val = Core::make('helper/validation/form'); $val->setData($this->post()); $val->addRequired("SITE", t("Please specify your site's name")); $val->addRequiredEmail("uEmail", t('Please specify a valid email address')); $val->addRequired("DB_DATABASE", t('You must specify a valid database name')); $val->addRequired("DB_SERVER", t('You must specify a valid database server')); $password = $_POST['uPassword']; $passwordConfirm = $_POST['uPasswordConfirm']; $uh = Core::make('helper/concrete/user'); $uh->validNewPassword($password, $error); if ($password) { if ($password != $passwordConfirm) { $error->add(t('The two passwords provided do not match.')); } } if (is_object($this->fileWriteErrors)) { $error = $this->fileWriteErrors; } $error = $this->validateDatabase($error); $error = $this->validateSampleContent($error); if ($val->test() && !$error->has()) { // write the config file $vh = Core::make('helper/validation/identifier'); $this->fp = @fopen(DIR_CONFIG_SITE . '/site_install.php', 'w+'); $this->fpu = @fopen(DIR_CONFIG_SITE . '/site_install_user.php', 'w+'); if ($this->fp) { $config = isset($_POST['SITE_CONFIG']) ? (array) $_POST['SITE_CONFIG'] : array(); $config['database'] = array('default-connection' => 'concrete', 'connections' => array('concrete' => array('driver' => 'c5_pdo_mysql', 'server' => $_POST['DB_SERVER'], 'database' => $_POST['DB_DATABASE'], 'username' => $_POST['DB_USERNAME'], 'password' => $_POST['DB_PASSWORD'], 'charset' => 'utf8'))); $renderer = new Renderer($config); fwrite($this->fp, $renderer->render()); fclose($this->fp); chmod(DIR_CONFIG_SITE . '/site_install.php', 0700); } else { throw new Exception(t('Unable to open config/app.php for writing.')); } if ($this->fpu) { $hasher = new PasswordHash(Config::get('concrete.user.password.hash_cost_log2'), Config::get('concrete.user.password.hash_portable')); $configuration = "<?php\n"; $configuration .= "define('INSTALL_USER_EMAIL', '" . $_POST['uEmail'] . "');\n"; $configuration .= "define('INSTALL_USER_PASSWORD_HASH', '" . $hasher->HashPassword($_POST['uPassword']) . "');\n"; $configuration .= "define('INSTALL_STARTING_POINT', '" . $this->post('SAMPLE_CONTENT') . "');\n"; $configuration .= "define('SITE', '" . addslashes($_POST['SITE']) . "');\n"; if (Localization::activeLocale() != '' && Localization::activeLocale() != 'en_US') { $configuration .= "define('SITE_INSTALL_LOCALE', '" . Localization::activeLocale() . "');\n"; } $res = fwrite($this->fpu, $configuration); fclose($this->fpu); chmod(DIR_CONFIG_SITE . '/site_install_user.php', 0700); if (PHP_SAPI != 'cli') { $this->redirect('/'); } } else { throw new Exception(t('Unable to open config/site_user.php for writing.')); } } else { if ($error->has()) { $this->set('error', $error); } else { $error = $val->getError(); $this->set('error', $val->getError()); } } } catch (Exception $ex) { $this->reset(); $this->set('error', $ex); $error->add($ex); } return $error; }
/** * Run startup and localization events on any installed packages. */ public function setupPackages() { $checkAfterStart = false; $config = $this['config']; foreach ($this->packages as $pkg) { // handle updates if ($config->get('concrete.updates.enable_auto_update_packages')) { $dbPkg = \Package::getByHandle($pkg->getPackageHandle()); $pkgInstalledVersion = $dbPkg->getPackageVersion(); $pkgFileVersion = $pkg->getPackageVersion(); if (version_compare($pkgFileVersion, $pkgInstalledVersion, '>')) { $currentLocale = Localization::activeLocale(); if ($currentLocale != 'en_US') { Localization::changeLocale('en_US'); } $dbPkg->upgradeCoreData(); $dbPkg->upgrade(); if ($currentLocale != 'en_US') { Localization::changeLocale($currentLocale); } } } $pkg->setupPackageLocalization(); if (method_exists($pkg, 'on_start')) { $pkg->on_start(); } if (method_exists($pkg, 'on_after_packages_start')) { $checkAfterStart = true; } } $config->set('app.bootstrap.packages_loaded', true); if ($checkAfterStart) { foreach ($this->packages as $pkg) { if (method_exists($pkg, 'on_after_packages_start')) { $pkg->on_after_packages_start(); } } } }
public static function getJQueryUIJavascript($setResponseHeaders = true) { if ($setResponseHeaders) { static::sendJavascriptHeader(); } $env = Environment::get(); /* @var $env \Concrete\Core\Foundation\Environment */ $alternatives = array(Localization::activeLocale()); if (Localization::activeLocale() !== Localization::activeLanguage()) { $alternatives[] = Localization::activeLanguage(); } $found = null; foreach ($alternatives as $alternative) { $r = $env->getRecord(DIRNAME_JAVASCRIPT . '/i18n/ui.datepicker-' . str_replace('_', '-', $alternative) . '.js'); if (is_file($r->file)) { $found = $r->file; break; } } if (isset($found)) { readfile($found); } else { echo '// No jQueryUI translations for ' . Localization::activeLocale(); } }
/** * Run startup and localization events on any installed packages. */ public function setupPackages() { foreach ($this->packages as $pkg) { // handle updates if (Config::get('concrete.updates.enable_auto_update_packages')) { $pkgInstalledVersion = $pkg->getPackageVersion(); $pkgFileVersion = $pkg->getPackageVersion(); if (version_compare($pkgFileVersion, $pkgInstalledVersion, '>')) { $currentLocale = Localization::activeLocale(); if ($currentLocale != 'en_US') { Localization::changeLocale('en_US'); } $pkg->upgradeCoreData(); $pkg->upgrade(); if ($currentLocale != 'en_US') { Localization::changeLocale($currentLocale); } } } $pkg->setupPackageLocalization(); if (method_exists($pkg, 'on_start')) { $pkg->on_start(); } } Config::set('app.bootstrap.packages_loaded', true); }
<?php use Concrete\Core\Localization\Localization; header('Content-type: text/javascript; charset=' . APP_CHARSET); $jh = Core::make('helper/json'); $locale = Localization::activeLocale(); ?> jQuery.Redactor.opts.langs[<?php echo $jh->encode($locale); ?> ] = { html: <?php echo $jh->encode(t('HTML')); ?> , video: <?php echo $jh->encode(t('Insert Video')); ?> , image: <?php echo $jh->encode(t('Insert Image')); ?> , table: <?php echo $jh->encode(t('Table')); ?> , link: <?php echo $jh->encode(t('Link')); ?> ,
/** * Run startup and localization events on any installed packages. */ public function setupPackages() { $pla = \Concrete\Core\Package\PackageList::get(); $pl = $pla->getPackages(); $cl = ClassLoader::getInstance(); /** @var \Package[] $pl */ foreach ($pl as $p) { $p->registerConfigNamespace(); if ($p->isPackageInstalled()) { $pkg = Package::getClass($p->getPackageHandle()); if (is_object($pkg) && !$pkg instanceof \Concrete\Core\Package\BrokenPackage) { $cl->registerPackage($pkg); // handle updates if (Config::get('concrete.updates.enable_auto_update_packages')) { $pkgInstalledVersion = $p->getPackageVersion(); $pkgFileVersion = $pkg->getPackageVersion(); if (version_compare($pkgFileVersion, $pkgInstalledVersion, '>')) { $currentLocale = Localization::activeLocale(); if ($currentLocale != 'en_US') { Localization::changeLocale('en_US'); } $p->upgradeCoreData(); $p->upgrade(); if ($currentLocale != 'en_US') { Localization::changeLocale($currentLocale); } } } $pkg->setupPackageLocalization(); if (method_exists($pkg, 'on_start')) { $pkg->on_start(); } } } } Config::set('app.bootstrap.packages_loaded', true); }