/**
  * @see	\wcf\system\cache\builder\AbstractCacheBuilder::rebuild()
  */
 public function rebuild(array $parameters)
 {
     $data = array('codes' => array(), 'countryCodes' => array(), 'languages' => array(), 'default' => 0, 'categories' => array(), 'categoryIDs' => array(), 'multilingualismEnabled' => false);
     // get languages
     $languageList = new LanguageList();
     $languageList->readObjects();
     $data['languages'] = $languageList->getObjects();
     foreach ($languageList->getObjects() as $language) {
         // default language
         if ($language->isDefault) {
             $data['default'] = $language->languageID;
         }
         // multilingualism
         if ($language->hasContent) {
             $data['multilingualismEnabled'] = true;
         }
         // language code to language id
         $data['codes'][$language->languageCode] = $language->languageID;
         // country code to language id
         $data['countryCode'][$language->languageID] = $language->countryCode;
     }
     DatabaseObject::sort($data['languages'], 'languageName');
     // get language categories
     $languageCategoryList = new LanguageCategoryList();
     $languageCategoryList->readObjects();
     foreach ($languageCategoryList->getObjects() as $languageCategory) {
         $data['categories'][$languageCategory->languageCategory] = $languageCategory;
         $data['categoryIDs'][$languageCategory->languageCategoryID] = $languageCategory->languageCategory;
     }
     return $data;
 }
 /**
  * Returns all available content languages for given package.
  *
  * @param 	integer		$packageID
  * @return	array<wcf\data\language\Language>
  */
 public function getContentLanguages($packageID = PACKAGE_ID)
 {
     $availableLanguages = array();
     if (isset($this->cache['packages'][$packageID])) {
         foreach ($this->cache['packages'][$packageID] as $availableLanguageID) {
             if ($this->cache['languages'][$availableLanguageID]->hasContent) {
                 $availableLanguages[$availableLanguageID] = $this->getLanguage($availableLanguageID);
             }
         }
     }
     DatabaseObject::sort($availableLanguages, 'languageName');
     return $availableLanguages;
 }