/** * Installs the selected languages. */ protected function installLanguage() { $this->initDB(); foreach (self::$selectedLanguages as $language) { // get language.xml file name $filename = TMP_DIR . 'install/lang/' . $language . '.xml'; // check the file if (!file_exists($filename)) { throw new SystemException("unable to find language file '" . $filename . "'"); } // open the file $xml = new XML(); $xml->load($filename); // import xml LanguageEditor::importFromXML($xml, 0); } // set default language $language = LanguageFactory::getInstance()->getLanguageByCode(in_array(self::$selectedLanguageCode, self::$selectedLanguages) ? self::$selectedLanguageCode : self::$selectedLanguages[0]); LanguageFactory::getInstance()->makeDefault($language->languageID); // rebuild language cache LanguageCacheBuilder::getInstance()->reset(); // go to next step $this->gotoNextStep('createUser'); }
/** * @see \wcf\form\IForm::validate() */ public function validate() { parent::validate(); // check file if (!file_exists($this->filename)) { throw new UserInputException('languageFile'); } // try to import try { // open xml document $xml = new XML(); $xml->load($this->filename); // import xml document $this->language = LanguageEditor::importFromXML($xml, -1); } catch (SystemException $e) { throw new UserInputException($this->importField, $e->getMessage()); } }
/** * Installs the selected languages. */ protected function installLanguage() { $this->initDB(); foreach (self::$selectedLanguages as $language) { // get language.xml file name $filename = TMP_DIR . 'install/lang/' . $language . '.xml'; // check the file if (!file_exists($filename)) { throw new SystemException("unable to find language file '" . $filename . "'"); } // open the file $xml = new XML(); $xml->load($filename); // import xml LanguageEditor::importFromXML($xml, 0); } // set default language $language = LanguageFactory::getInstance()->getLanguageByCode(in_array(self::$selectedLanguageCode, self::$selectedLanguages) ? self::$selectedLanguageCode : self::$selectedLanguages[0]); LanguageFactory::getInstance()->makeDefault($language->languageID); // assign all languages to package id 0 $sql = "SELECT\tlanguageID\n\t\t\tFROM\twcf" . WCF_N . "_language"; $statement = self::getDB()->prepareStatement($sql); $statement->execute(); $languages = array(); while ($row = $statement->fetchArray()) { $languages[] = $row['languageID']; } if (count($languages) > 0) { $sql = "INSERT INTO\twcf" . WCF_N . "_language_to_package\n\t\t\t\t\t\t(languageID)\n\t\t\t\tVALUES\t\t(?)"; $statement = self::getDB()->prepareStatement($sql); foreach ($languages as $languageID) { $statement->execute(array($languageID)); } } // rebuild language cache CacheHandler::getInstance()->clearResource('languages'); // go to next step $this->gotoNextStep('createUser'); }
/** * @see wcf\form\Form::validate() */ public function validate() { parent::validate(); if ($this->mode == 'copy') { // language code if (empty($this->languageCode)) { throw new UserInputException('languageCode'); } // if (LanguageFactory::getInstance()->getLanguageByCode($this->languageCode)) { throw new UserInputException('languageCode', 'notUnique'); } // source language id if (empty($this->sourceLanguageID)) { throw new UserInputException('sourceLanguageID'); } // get language $this->sourceLanguage = LanguageFactory::getInstance()->getLanguage($this->sourceLanguageID); if (!$this->sourceLanguage->languageID) { throw new UserInputException('sourceLanguageID'); } } else { // check file if (!file_exists($this->filename)) { throw new UserInputException('languageFile'); } // try to import try { // open xml document $xml = new XML(); $xml->load($this->filename); // import xml document $this->language = LanguageEditor::importFromXML($xml, PACKAGE_ID); } catch (SystemException $e) { throw new UserInputException($this->importField, $e->getMessage()); } } }