diff --git a/controllers/admin/AdminTranslationsController.php b/controllers/admin/AdminTranslationsController.php index 3600f402b..862d7c7c4 100644 --- a/controllers/admin/AdminTranslationsController.php +++ b/controllers/admin/AdminTranslationsController.php @@ -579,22 +579,28 @@ class AdminTranslationsControllerCore extends AdminController else { $gz = new Archive_Tar($_FILES['file']['tmp_name'], true); - $iso_code = str_replace(array('.tar.gz', '.gzip'), '', $_FILES['file']['name']); - $themes_selected = Tools::getValue('theme', array(self::DEFAULT_THEME_NAME)); - $files_list = $gz->listContent(); - if ($gz->extract(_PS_TRANSLATIONS_DIR_.'../', false)) + $filename = $_FILES['file']['name']; + $iso_code = str_replace(array('.tar.gz', '.gzip'), '', $filename); + if (Validate::isLangIsoCode($iso_code)) { - AdminTranslationsController::checkAndAddMailsFiles($iso_code, $files_list); - $this->checkAndAddThemesFiles($files_list, $themes_selected); - AdminTranslationsController::addNewTabs($iso_code, $files_list); - if (Validate::isLanguageFileName($_FILES['file']['name'])) + $themes_selected = Tools::getValue('theme', array(self::DEFAULT_THEME_NAME)); + $files_list = $gz->listContent(); + if ($gz->extract(_PS_TRANSLATIONS_DIR_.'../', false)) { - if (!Language::checkAndAddLanguage($iso_code)) - $conf = 20; + AdminTranslationsController::checkAndAddMailsFiles($iso_code, $files_list); + $this->checkAndAddThemesFiles($files_list, $themes_selected); + AdminTranslationsController::addNewTabs($iso_code, $files_list); + if (Validate::isLanguageFileName($filename)) + { + if (!Language::checkAndAddLanguage($iso_code)) + $conf = 20; + } + $this->redirect(false, (isset($conf) ? $conf : '15')); } - $this->redirect(false, (isset($conf) ? $conf : '15')); + $this->errors[] = Tools::displayError('Archive cannot be extracted.'); } - $this->errors[] = Tools::displayError('Archive cannot be extracted.'); + else + $this->errors[] = sprintf(Tools::displayError('ISO CODE invalid "%1$s" for the following file: "%2$s"'), $iso_code, $filename); } } diff --git a/translations/fr/errors.php b/translations/fr/errors.php index fab100f9f..8a2b924eb 100644 --- a/translations/fr/errors.php +++ b/translations/fr/errors.php @@ -424,6 +424,7 @@ $_ERRORS['a34d208d4c1e25fa85739aa0b2f51553'] = 'Une erreur s\'est produite lors $_ERRORS['a4469e51691856c0d06b6cca6842666d'] = 'Une erreur est survenue lors de l\'envoi de l\'e-mail.'; $_ERRORS['a467de484bad00fe4980b05ac6a8af5d'] = 'Vous n\'avez pas la permission d\'utiliser ce module'; $_ERRORS['a478ec266116342449ae1705c79d5cc2'] = 'Type d\'archive inconnu'; +$_ERRORS['a4a9d544dda922c68fe127c1661441b2'] = 'ISO CODE invalide \"%1$s\" pour le fichier suivant \"%2$s\"'; $_ERRORS['a551c1b1a24beff63aa3cc70ea172351'] = 'Vous devez indiquer un nom afin de créer un bon de réduction'; $_ERRORS['a56b6c43645970e79a8098df1dfc9746'] = 'Cette adresse ne peut pas être effacée.'; $_ERRORS['a5df8bfce318a15ea55f18082b9b56c0'] = 'Vous n\'avez pas accès à ce produit.';