/** * Getter for the language object for an object that has translations * I impemented it a a static method because it would be redundantly declared * in any multilanguage DataObject * * @param HasManyList $componentset has_many relation to be searched for the right translation * @param string $locale locale eg. de_DE, en_NZ, ... * * @return DataObject|false * * @author Roland Lehmann <*****@*****.**> * @since 03.01.2012 */ public static function getLanguage($componentset, $locale = false) { $lang = false; if ($locale == false) { $locale = Translatable::get_current_locale(); } if ($componentset->find('Locale', $locale)) { $lang = $componentset->find('Locale', $locale); } elseif (SilvercartConfig::useDefaultLanguageAsFallback()) { if ($componentset->find('Locale', SilvercartConfig::DefaultLanguage())) { $lang = $componentset->find('Locale', SilvercartConfig::DefaultLanguage()); } } return $lang; }
/** * Returns the language for the given locale if exists * * @param string $locale Locale to get language for * * @return bool * * @author Sebastian Diel <*****@*****.**> * @since 03.07.2012 */ public function getLanguageFor($locale) { $useDefaultLanguageAsFallback = SilvercartConfig::$useDefaultLanguageAsFallback; SilvercartConfig::$useDefaultLanguageAsFallback = false; $language = SilvercartLanguageHelper::getLanguage($this->getLanguageRelation(), $locale); SilvercartConfig::$useDefaultLanguageAsFallback = $useDefaultLanguageAsFallback; return $language; }
/** * Determin wether the default language should be used for multilingual DataObjects * in case a translation does not exist. * * @return bool * * @author Roland Lehmann <*****@*****.**> * @since 04.01.2012 */ public static function useDefaultLanguageAsFallback() { if (is_null(self::$useDefaultLanguageAsFallback)) { if (!self::getConfig() === false) { self::$useDefaultLanguageAsFallback = self::getConfig()->useDefaultLanguageAsFallback; } } return self::$useDefaultLanguageAsFallback; }