/** * Imports one message string to the database * * @param String $languageCode The language code * @param String $category The category of the translation * @param String $source Message source * @param String $translation Message translation * @return Integer Id of the added translation or false * @throws NotSupportedException */ public static function importOneMessage($languageCode, $category, $source, $translation) { assert('is_string($languageCode) && !empty($languageCode)'); assert('is_string($category) && !empty($category)'); assert('is_string($source) && !empty($source)'); assert('is_string($translation) && !empty($translation)'); if (!is_string($languageCode) || empty($languageCode) || !is_string($category) || empty($category) || !is_string($source) || empty($source) || !is_string($translation) || empty($translation)) { throw new NotSupportedException(); } try { $sourceModel = MessageSource::getByCategoryAndSource($category, $source); } catch (NotFoundException $e) { $sourceModel = MessageSource::addNewSource($category, $source); } try { $translationModel = MessageTranslation::getBySourceIdAndLangCode($sourceModel->id, $languageCode); $translationModel->updateTranslation($translation); } catch (NotFoundException $e) { $translationModel = MessageTranslation::addNewTranslation($languageCode, $sourceModel, $translation); } return $translationModel->id; }