/**
  * 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;
 }