]> source.dussan.org Git - redmine.git/commitdiff
Display more detailed error message when attempting to import malformed CSV file...
authorGo MAEDA <maeda@farend.jp>
Sat, 27 Feb 2021 07:46:35 +0000 (07:46 +0000)
committerGo MAEDA <maeda@farend.jp>
Sat, 27 Feb 2021 07:46:35 +0000 (07:46 +0000)
Patch by Go MAEDA.

git-svn-id: http://svn.redmine.org/redmine/trunk@20756 e93f8b46-1217-0410-a6f0-8f06a7374b81

52 files changed:
app/controllers/imports_controller.rb
config/locales/ar.yml
config/locales/az.yml
config/locales/bg.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/cs.yml
config/locales/da.yml
config/locales/de.yml
config/locales/el.yml
config/locales/en-GB.yml
config/locales/en.yml
config/locales/es-PA.yml
config/locales/es.yml
config/locales/et.yml
config/locales/eu.yml
config/locales/fa.yml
config/locales/fi.yml
config/locales/fr.yml
config/locales/gl.yml
config/locales/he.yml
config/locales/hr.yml
config/locales/hu.yml
config/locales/id.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/ko.yml
config/locales/lt.yml
config/locales/lv.yml
config/locales/mk.yml
config/locales/mn.yml
config/locales/nl.yml
config/locales/no.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/sk.yml
config/locales/sl.yml
config/locales/sq.yml
config/locales/sr-YU.yml
config/locales/sr.yml
config/locales/sv.yml
config/locales/th.yml
config/locales/tr.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/zh-TW.yml
config/locales/zh.yml
test/fixtures/files/unclosed_quoted_field.csv [new file with mode: 0644]
test/functional/imports_controller_test.rb

index d295f5ebc83fc77a079ca384e0aac10c1aaed1b4..0e97e06c38da8ef6675e0011b1842c350982b9e1 100644 (file)
@@ -55,7 +55,7 @@ class ImportsController < ApplicationController
 
   rescue CSV::MalformedCSVError, EncodingError => e
     if e.is_a?(CSV::MalformedCSVError) && e.message !~ /Invalid byte sequence/
-      flash.now[:error] = l(:error_invalid_csv_file_or_settings)
+      flash.now[:error] = l(:error_invalid_csv_file_or_settings, e.message)
     else
       flash.now[:error] = l(:error_invalid_file_encoding, :encoding => ERB::Util.h(@import.settings['encoding']))
     end
index c0129d5e5305b492a0f0c084361af84887ef0239..dfe84b4a6a8ee7b96e7c10e875a89b45ebcf6510 100644 (file)
@@ -1139,7 +1139,7 @@ ar:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index f5585b74337d19bdc50f7a6472d897d41f2863ca..d13f339dcf8fc33613180065452b5c088a7e8e76 100644 (file)
@@ -1231,7 +1231,7 @@ az:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 13fcc7127331de5926ccfe46c9f8148641178f7e..4beebba35b701139c46604759fafa8fd5ec9275f 100644 (file)
@@ -224,7 +224,7 @@ bg:
   warning_attachments_not_saved: "%{count} файла не бяха записани."
   error_password_expired: Вашата парола е с изтекъл срок или администраторът изисква да я смените.
   error_invalid_file_encoding: Файлът няма валидно %{encoding} кодиране.
-  error_invalid_csv_file_or_settings: Файлът не е CSV файл или не съответства на зададеното по-долу
+  error_invalid_csv_file_or_settings: Файлът не е CSV файл или не съответства на зададеното по-долу (%{value})
   error_can_not_read_import_file: Грешка по време на четене на импортирания файл
   error_attachment_extension_not_allowed: Файлове от тип %{extension} не са позволени
   error_ldap_bind_credentials: Невалидни LDAP име/парола
index aca92e7855f3d861bce8ced5564718b89c188f84..81e861cd5ead055b96cb5d10f268251d9f10e20b 100644 (file)
@@ -1152,7 +1152,7 @@ bs:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index b1ea5494fc6564e548486c6438d59e65dfb74367..55ac719dbee23f157cfdcedbed69f26f09781f64 100644 (file)
@@ -1134,7 +1134,7 @@ ca:
   notice_import_finished: "%{count} element/s han sigut importats"
   notice_import_finished_with_errors: "%{count} de %{total} elements no s'ha pogut importar"
   error_invalid_file_encoding: "El fitxer no utilitza una codificació valida (%{encoding})"
-  error_invalid_csv_file_or_settings: "El fitxer no es un CSV o no coincideix amb la configuració"
+  error_invalid_csv_file_or_settings: "El fitxer no es un CSV o no coincideix amb la configuració (%{value})"
   error_can_not_read_import_file: "S'ha produït un error mentre es llegia el fitxer a importar"
   permission_import_issues: "Importar assumptes"
   label_import_issues: "Importar assumptes"
index 707e7dddab5e46a9dd7be25d75c2f6d6066858ce..3ecc0f6e3239ee8d285f5ec3f815960e819e6f09 100644 (file)
@@ -1139,7 +1139,7 @@ cs:
   notice_import_finished_with_errors: "%{count} z %{total} položek nemohlo být naimportováno"
   error_invalid_file_encoding: Soubor není platným souborem s kódováním %{encoding}
   error_invalid_csv_file_or_settings: Soubor není CSV soubor nebo neodpovídá
-    níže uvedenému nastavení
+    níže uvedenému nastavení (%{value})
   error_can_not_read_import_file: Chyba při čtení souboru pro import
   permission_import_issues: Import úkolů
   label_import_issues: Import úkolů
index 5b9f50ab479194202722b4ce9be6cd5160afcef2..5fffef57173846ac39c985f4e2f48c1dd8e93c86 100644 (file)
@@ -1156,7 +1156,7 @@ da:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 618da6d5e7f7ef4f4847150db77f514f465083f0..081abd849e60f05eb612afaf641b9f323f1f4365 100644 (file)
@@ -1178,7 +1178,7 @@ de:
   notice_import_finished: "%{count} Einträge wurden importiert"
   notice_import_finished_with_errors: "%{count} von %{total} Einträgen konnten nicht importiert werden"
   error_invalid_file_encoding: Die Datei ist keine gültige %{encoding}-kodierte Datei
-  error_invalid_csv_file_or_settings: Die Datei ist keine CSV-Datei oder entspricht nicht den unten stehenden Einstellungen
+  error_invalid_csv_file_or_settings: Die Datei ist keine CSV-Datei oder entspricht nicht den unten stehenden Einstellungen (%{value})
   error_can_not_read_import_file: Beim Einlesen der Datei ist ein Fehler aufgetreten
   permission_import_issues: Tickets importieren
   label_import_issues: Tickets importieren
index b12d779e6d78eb9352f8c7e255fbc09277b9fe20..10034c67a3183ce605acfb8f2c4a11e77eccdd7f 100644 (file)
@@ -1139,7 +1139,7 @@ el:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 3d1fd17166c7607848f0bdf75c6edefaf238f38b..2998bb192be9a58a5cf98dc2fa477b2c38458e65 100644 (file)
@@ -1146,7 +1146,7 @@ en-GB:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 403b0f398ab0c2edc898d63b8b27412824fa5a9f..979417a32ec1ee83ed53ced0f259463c4d2add8f 100644 (file)
@@ -221,7 +221,7 @@ en:
   warning_attachments_not_saved: "%{count} file(s) could not be saved."
   error_password_expired: "Your password has expired or the administrator requires you to change it."
   error_invalid_file_encoding: "The file is not a valid %{encoding} encoded file"
-  error_invalid_csv_file_or_settings: "The file is not a CSV file or does not match the settings below"
+  error_invalid_csv_file_or_settings: "The file is not a CSV file or does not match the settings below (%{value})"
   error_can_not_read_import_file: "An error occurred while reading the file to import"
   error_attachment_extension_not_allowed: "Attachment extension %{extension} is not allowed"
   error_ldap_bind_credentials: "Invalid LDAP Account/Password"
index 8032f4cf56407734f82dc4f3e134a40fdaa3c1f6..4af7a25b730301ae30715513b8864faf770e3fa0 100644 (file)
@@ -1174,7 +1174,7 @@ es-PA:
   notice_import_finished_with_errors: "%{count} de %{total} elementos no pudieron ser importados"
   error_invalid_file_encoding: El archivo no utiliza %{encoding} válida
   error_invalid_csv_file_or_settings: El archivo no es un archivo CSV o no coincide con la
-    configuración
+    configuración (%{value})
   error_can_not_read_import_file: Ocurrió un error mientras se leía el archivo a importar
   permission_import_issues: Importar incidencias
   label_import_issues: Importar incidencias
index 0e088879648a4940024df9703e6e037bd8cb04cb..88a7add95940149d7138229a24ec04ef6f4a574c 100644 (file)
@@ -1172,7 +1172,7 @@ es:
   notice_import_finished_with_errors: "%{count} de %{total} elementos no pudieron ser importados"
   error_invalid_file_encoding: El archivo no utiliza %{encoding} válida
   error_invalid_csv_file_or_settings: El archivo no es un archivo CSV o no coincide con la
-    configuración
+    configuración (%{value})
   error_can_not_read_import_file: Ocurrió un error mientras se leía el archivo a importar
   permission_import_issues: Importar Peticiones
   label_import_issues: Importar petición
index 16ba8c3ecf9c686ead0962f85c64cba79a038615..e05bbd4dc46d7d2a23397202f952cc2cab944c4b 100644 (file)
@@ -1144,7 +1144,7 @@ et:
   notice_import_finished: "%{count} rida imporditud"
   notice_import_finished_with_errors: "%{count} rida %{total}st ei õnnestunud importida"
   error_invalid_file_encoding: "See fail ei ole õige %{encoding} kodeeringuga"
-  error_invalid_csv_file_or_settings: "See fail kas ei ole CSV formaadis või ei klapi allolevate sätetega"
+  error_invalid_csv_file_or_settings: "See fail kas ei ole CSV formaadis või ei klapi allolevate sätetega (%{value})"
   error_can_not_read_import_file: "Importfaili sisselugemisel ilmnes viga"
   permission_import_issues: "Impordi teemasid"
   label_import_issues: "Impordi teemad"
index c6f43c331e1f161741b87cd7129f4edc2702a9f2..f6b430551e814bb8a01bd35f42b7bbb2e66083f7 100644 (file)
@@ -1140,7 +1140,7 @@ eu:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 6e457e05d03ac1367535d642e72bafad086221aa..8c1cff258c967d98cb51b17d64807ae030b16b62 100644 (file)
@@ -218,7 +218,7 @@ fa:
   warning_attachments_not_saved: "%{count} پرونده نتوانست ذخیره شود."
   error_password_expired: "گذرواژه‌ی شما منقضی شده است یا راه‌بر درخواست تغییر آن را داده است."
   error_invalid_file_encoding: "این پرونده یک پرونده با کدگذاری %{encoding} نیست"
-  error_invalid_csv_file_or_settings: "این پرونده یک پرونده CSV نیست یا با تنظیمات زیر همخوان نیست."
+  error_invalid_csv_file_or_settings: "این پرونده یک پرونده CSV نیست یا با تنظیمات زیر همخوان نیست. (%{value})"
   error_can_not_read_import_file: "در هنگام خواندن پرونده برای ورود، خطایی رخ داد"
   error_attachment_extension_not_allowed: "پسوند %{extension} برای پیوست یک پسوند مجاز نیست"
   error_ldap_bind_credentials: "حساب/گذرواژه نامعتبر LDAP"
index ad967fcd333a59e95acdc6ee584d4edee701ad70..a6b351ccad8d7691df63a19eb0d37984cce416b6 100644 (file)
@@ -1160,7 +1160,7 @@ fi:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 07c4610d3c7701ffa939caf38c8d3d0f052230cb..e1f560714a93d8cf418442cc8a5b9b3647fc726d 100644 (file)
@@ -234,7 +234,7 @@ fr:
   warning_attachments_not_saved: "%{count} fichier(s) n'ont pas pu être sauvegardés."
   error_password_expired: "Votre mot de passe a expiré ou nécessite d'être changé."
   error_invalid_file_encoding: "Le fichier n'est pas un fichier %{encoding} valide"
-  error_invalid_csv_file_or_settings: "Le fichier n'est pas un fichier CSV ou n'est pas conforme aux paramètres sélectionnés"
+  error_invalid_csv_file_or_settings: "Le fichier n'est pas un fichier CSV ou n'est pas conforme aux paramètres sélectionnés (%{value})"
   error_can_not_read_import_file: "Une erreur est survenue lors de la lecture du fichier à importer"
   error_attachment_extension_not_allowed: "L'extension %{extension} n'est pas autorisée"
   error_ldap_bind_credentials: "Identifiant ou mot de passe LDAP incorrect"
index 12d13b4a06e09e92ef454094768d15e8cc7f08ec..7cdd18bfab475b082a3fe595c7f243e9a46991d9 100644 (file)
@@ -1147,7 +1147,7 @@ gl:
   notice_import_finished_with_errors: "%{count} dun total de %{total} elementos non puideron ser importados"
   error_invalid_file_encoding: O ficheiro non é un ficheiro codificado %{encoding} válido
   error_invalid_csv_file_or_settings: O ficheiro non é un arquivo CSV ou non coincide coas
-    opcións de abaixo
+    opcións de abaixo (%{value})
   error_can_not_read_import_file: Aconteceu un erro lendo o ficheiro a importar
   permission_import_issues: Importar peticións
   label_import_issues: Importar peticións
index a6a5e0c566ae7f34c6da003470f8eeb045a6079e..1047b2e845137cd4801b20cace456e8b23971e83 100644 (file)
@@ -1144,7 +1144,7 @@ he:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 542f8596b500b63dc7260d4d7f1811e51e4bd518..55b7413c085f21b421cf6506ed8c97da5f51c8b0 100644 (file)
@@ -1136,7 +1136,7 @@ hr:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index edeb8d6c8ca6bd536d0f7d8110c19c8b7baac59a..1e951535781b67490681b046ac7c018458f8d164 100644 (file)
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 127e0e9c4defb3869f115d77220f2026b1986d47..b095b183ed3b31c3d29267a38af2381dcd6b59f3 100644 (file)
@@ -1141,7 +1141,7 @@ id:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 8aaee8776b85b246623768c1220b060ad3140163..5273b9ba0ba592264bf387e13e75eddbba01ea27 100644 (file)
@@ -1134,7 +1134,7 @@ it:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Importa segnalazioni
index 91356fb91bf36b2b8cef119454b9a50be4445769..0e3ef0d7754ea3e5f6bf15efc6dd7a2d85fb51f5 100644 (file)
@@ -1162,7 +1162,7 @@ ja:
   notice_import_finished: "%{count}件のデータをすべてインポートしました"
   notice_import_finished_with_errors: "全%{total}件中%{count}件のデータがインポートできませんでした"
   error_invalid_file_encoding: このファイルのエンコーディングは正しい%{encoding}ではありません
-  error_invalid_csv_file_or_settings: このファイルはCSVファイルではないか、以下の設定と一致していません
+  error_invalid_csv_file_or_settings: このファイルはCSVファイルではないか、以下の設定と一致していません (%{value})
   error_can_not_read_import_file: インポート元のファイルを読み込み中にエラーが発生しました
   permission_import_issues: チケットのインポート
   label_import_issues: チケットのインポート
index be8b62ef0bb4dc62f20646acbcd616e0eb69a0f8..606023a6af4ad1fda24e6a074e9990b019107b59 100644 (file)
@@ -1180,7 +1180,7 @@ ko:
   notice_import_finished: "총 %{count} 건을 가져왔습니다"
   notice_import_finished_with_errors: "총 %{total} 건 중 %{count} 건을 가져오지 못했습니다"
   error_invalid_file_encoding: 이 파일은 정상적인 %{encoding} 파일이 아닙니다.
-  error_invalid_csv_file_or_settings: 이 파일은 CSV 파일이 아니거나 아래 조건에 맞지 않습니다.
+  error_invalid_csv_file_or_settings: 이 파일은 CSV 파일이 아니거나 아래 조건에 맞지 않습니다. (%{value})
   error_can_not_read_import_file: 가져오기 파일을 읽을 수 없습니다.
   permission_import_issues: 일감 가져오기
   label_import_issues: 일감 가져오기
index be71963c9ebd9e4bf49e4e7eac57e839e3394245..db112a8cf4bb0a85a2e108f9a89002eb595442ab 100644 (file)
@@ -218,7 +218,7 @@ lt:
   warning_attachments_not_saved: "%{count} byla(-ų) negali būti išsaugota."
   error_password_expired: "Jūsų slaptažodžio galiojimo laikas baigėsi arba administratorius reikalauja jūsų jį pasikeisti"
   error_invalid_file_encoding: "Failas nėra tinkamas %{encoding} koduotės failas"
-  error_invalid_csv_file_or_settings: "Failas nėra CSV failas arba neatitinka žemiau esančių nustatymų"
+  error_invalid_csv_file_or_settings: "Failas nėra CSV failas arba neatitinka žemiau esančių nustatymų (%{value})"
   error_can_not_read_import_file: "Iškilo klaida skaitant importuojamą failą"
   error_attachment_extension_not_allowed: "Priedo plėtinys %{extension} negalimas"
   error_ldap_bind_credentials: "Netinkamas LDAP Vartotojo vardas/Slaptažodis"
index 711e76fed2dbf2feb881cb9f1ae44f9a9393f3f1..6123c72329b4c7de848861c64e016510604456ac 100644 (file)
@@ -1133,7 +1133,7 @@ lv:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index c42637000fa77c5e96707dabc88d617e725b52b5..e0ccb957d93b95f13f0803c2be2b42b670b98189 100644 (file)
@@ -1139,7 +1139,7 @@ mk:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 0294fd3a8398741a16fb26c60b9f0bf46d4ba568..3706781cea5fdde805889c033a254e8a8ffc40b3 100644 (file)
@@ -1139,7 +1139,7 @@ mn:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index eee83d8ad24bbffe5b814f5425f76df605258ca2..dc1605bfc894e3a40f9c210252b526849e0b4551 100644 (file)
@@ -1116,7 +1116,7 @@ nl:
   notice_import_finished: "%{count} items werden geïmporteerd"
   notice_import_finished_with_errors: "%{count} van in totaal %{total} items kunnen niet geïmporteerd worden"
   error_invalid_file_encoding: Het bestand is geen geldig geëncodeerd %{encoding} bestand
-  error_invalid_csv_file_or_settings: Het bestand is geen CSV-bestand of voldoet niet aan onderstaande instellingen
+  error_invalid_csv_file_or_settings: Het bestand is geen CSV-bestand of voldoet niet aan onderstaande instellingen (%{value})
   error_can_not_read_import_file: Er is een fout opgetreden bij het inlezen van het bestand
   permission_import_issues: Issues importeren
   label_import_issues: Issues importeren
index ec8d2a69e2e5ad6b3798912ea0860ca565f9a869..7237c1db420cfb172a679f2ea1c44bae9962b2b7 100644 (file)
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 45fd617c1c8814050b35b7e2558856a8ad65d3bb..355fcbe6b83f6d513e97082ef58d848fb66faaaf 100644 (file)
@@ -1152,7 +1152,7 @@ pl:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 549b6b51ac7baeb875ae2fd2923e62817a05f002..254d3db312c17f8bee32574140d6ec607efadaa4 100644 (file)
@@ -1157,7 +1157,7 @@ pt-BR:
   notice_import_finished_with_errors: "%{count} fora de %{total} não puderam ser importados"
   error_invalid_file_encoding: O arquivo não é válido %{encoding} é a codificação do arquivo
   error_invalid_csv_file_or_settings: O arquivo não é um arquivo CSV ou não corresponde às
-    definições abaixo
+    definições abaixo (%{value})
   error_can_not_read_import_file: Ocorreu um erro ao ler o arquivo para importação
   permission_import_issues: Importar tarefas
   label_import_issues: Importar tarefas
index f03fae483cbf7ebacdc9730c947a0005d382fcf1..4a3c53ab2bda0fffebbe0ce3fdd5a26d235faecb 100644 (file)
@@ -1139,7 +1139,7 @@ pt:
   notice_import_finished: "%{count} registos foram importados"
   notice_import_finished_with_errors: "%{count} de %{total} registos não poderam ser importados"
   error_invalid_file_encoding: 'O ficheiro não possui a codificação correcta: {encoding}'
-  error_invalid_csv_file_or_settings: O ficheiro não é um ficheiro CSV ou não respeita as definições abaixo
+  error_invalid_csv_file_or_settings: O ficheiro não é um ficheiro CSV ou não respeita as definições abaixo (%{value})
   error_can_not_read_import_file: Ocorreu um erro ao ler o ficheiro a importar
   permission_import_issues: Importar tarefas
   label_import_issues: Importar tarefas
index f109471f77bef65bc8942bac672326393fc3ed83..b0ba10c9bc6454e57600425e87c8e1e5c5d6ecba 100644 (file)
@@ -1134,7 +1134,7 @@ ro:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index fd96860be12426c4832a4ba8ad05b009c5963b23..42bcfd0711194c5c77307f676ad1a796e6e22c42 100644 (file)
@@ -1238,7 +1238,7 @@ ru:
   notice_import_finished: "%{count} элемент(а, ов) были импортированы"
   notice_import_finished_with_errors: "%{count} из %{total} элемент(а, ов) не могут быть импортированы"
   error_invalid_file_encoding: Кодировка файла не соответствует выбранной %{encoding}
-  error_invalid_csv_file_or_settings: Файл не является файлом CSV или не соответствует представленным настройкам
+  error_invalid_csv_file_or_settings: Файл не является файлом CSV или не соответствует представленным настройкам (%{value})
   error_can_not_read_import_file: Во время чтения файла для импорта произошла ошибка
   permission_import_issues: Импорт задач
   label_import_issues: Импорт задач
index 168ee8bc806422ac99b86c2dc9595b9957ebeab2..25bbddfb2f83fbf7f566be7b95fce14c06d4e182 100644 (file)
@@ -1128,7 +1128,7 @@ sk:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index b20226c149b0e6b284a89e8f932677d8893c1928..d5436601b9dfbf5dd1889d0ae73b6d8c14453bb1 100644 (file)
@@ -1139,7 +1139,7 @@ sl:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 62c2a507a2d6b665a3ac62f3961f73d26f8a61a7..b7fc2f39379fa985621e9990f56bbc260bca8f63 100644 (file)
@@ -1135,7 +1135,7 @@ sq:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index a526b657c0dd328d0e39c85b6af7458db99ae5c5..2c2c59fbe1430eb3f122f8626ea20ae749ab464d 100644 (file)
@@ -1141,7 +1141,7 @@ sr-YU:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 7b461240f4cec5be0909a2d32a2238ca1402c03f..67f1f8a763b5220403667cf9bb7902854a6e5433 100644 (file)
@@ -1140,7 +1140,7 @@ sr:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index edaa427117e2ea0777e0eae165dbcff1e670eac7..da2b08ae49e642827d48c71baa44add95319e438 100644 (file)
@@ -1172,7 +1172,7 @@ sv:
   notice_import_finished_with_errors: "%{count} av %{total} artiklar kunde inte importeras"
   error_invalid_file_encoding: Filen är inte en %{encoding}-kodad fil
   error_invalid_csv_file_or_settings: Filen är inte en CSV-fil eller stämmer inte med
-    inställningarna nedan
+    inställningarna nedan (%{value})
   error_can_not_read_import_file: Fel vid läsning av fil att importera
   permission_import_issues: Importera ärenden
   label_import_issues: Importera ärenden
index c506745c3afd01efcf58cf2c0a27f1c90246c096..9f699ddc0a66b9683038d998efb8929b6f0d810f 100644 (file)
@@ -1135,7 +1135,7 @@ th:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index 0a9d3998e63e0725952d15a261de9c3ef120a1bd..a6c65fb128f64df1754eb4c544262c68aa625d2c 100644 (file)
@@ -1146,7 +1146,7 @@ tr:
   notice_import_finished: "%{count} kayıt içeri aktarıldı"
   notice_import_finished_with_errors: "%{total} kayıttan %{count} tanesi aktarılamadı"
   error_invalid_file_encoding: Dosyanın karakter kodlaması geçerli bir %{encoding} kodlaması değil.
-  error_invalid_csv_file_or_settings: Dosya CSV dosyası değil veya aşağıdaki ayarlara uymuyor
+  error_invalid_csv_file_or_settings: Dosya CSV dosyası değil veya aşağıdaki ayarlara uymuyor (%{value})
   error_can_not_read_import_file: İçeri aktarılacak dosyayı okurken bir hata oluştu
   permission_import_issues: İşleri içeri aktarma
   label_import_issues: İşleri içeri aktar
index 69532831330d99b82d29465ec3472647fb7ba2ec..6fc172dac7ba4809f445a9764050794acd0f2f0d 100644 (file)
@@ -1140,7 +1140,7 @@ uk:
   notice_import_finished: "%{count} елементи(ів) було імпортовано"
   notice_import_finished_with_errors: "%{count} з %{total} елементи(ів) неможливо імпортувати"
   error_invalid_file_encoding: Кодування файлу не відповідає видраній(ому) %{encoding}
-  error_invalid_csv_file_or_settings: Файл не є файлом CSV або не відповідає вибраним налаштуванням
+  error_invalid_csv_file_or_settings: Файл не є файлом CSV або не відповідає вибраним налаштуванням (%{value})
   error_can_not_read_import_file: Під час читання файлу для імпорту виникла помилка
   permission_import_issues: Імпорт задач
   label_import_issues: Імпорт задач
index b4bdb6da41797cb34d47ac35c122ec09134f6fbb..676a40da6ac43ace32cf4c41bda2624389d08ed7 100644 (file)
@@ -1191,7 +1191,7 @@ vi:
   notice_import_finished_with_errors: "%{count} out of %{total} items could not be imported"
   error_invalid_file_encoding: The file is not a valid %{encoding} encoded file
   error_invalid_csv_file_or_settings: The file is not a CSV file or does not match the
-    settings below
+    settings below (%{value})
   error_can_not_read_import_file: An error occurred while reading the file to import
   permission_import_issues: Import issues
   label_import_issues: Import issues
index efac938d56c57ae4ed8840ab184a2aeaa91e9ced..cc7cacd52b6b99bd6bd5d8a7f30970a61f600b6b 100644 (file)
   warning_attachments_not_saved: "%{count} 個附加檔案無法被儲存。"
   error_password_expired: "您的密碼已經過期或是管理員要求您變更密碼."
   error_invalid_file_encoding: "這個檔案不是一個有效的 %{encoding} 編碼檔案"
-  error_invalid_csv_file_or_settings: "這個檔案不是一個 CSV 檔案,或是未符合下面所列之設定值"
+  error_invalid_csv_file_or_settings: "這個檔案不是一個 CSV 檔案,或是未符合下面所列之設定值 (%{value})"
   error_can_not_read_import_file: "讀取匯入檔案時發生錯誤"
   error_attachment_extension_not_allowed: "附件之附檔名不允許使用 %{extension}"
   error_ldap_bind_credentials: "無效的 LDAP 帳號/密碼"
index 6dedbea182a6a0fa062180e462410a949ce15373..f6446c39f684d66147444f8b22b62cf7f015d75d 100644 (file)
@@ -1135,7 +1135,7 @@ zh:
   notice_import_finished: 成功导入 %{count} 个项目
   notice_import_finished_with_errors: 有 %{count} 个项目无法导入(共计 %{total} 个)
   error_invalid_file_encoding: 这不是一个有效的 %{encoding} 编码文件
-  error_invalid_csv_file_or_settings: 这不是一个CSV文件或者不符合以下设置
+  error_invalid_csv_file_or_settings: 这不是一个CSV文件或者不符合以下设置 (%{value})
   error_can_not_read_import_file: 读取导入文件时发生错误
   permission_import_issues: 问题导入
   label_import_issues: 问题导入
diff --git a/test/fixtures/files/unclosed_quoted_field.csv b/test/fixtures/files/unclosed_quoted_field.csv
new file mode 100644 (file)
index 0000000..101d17f
--- /dev/null
@@ -0,0 +1,2 @@
+subject;description
+foo;"Unclosed quoted field
\ No newline at end of file
index 8a69c7dee96699facf29ab7e31e806499cc09d9c..e4ef0d4c177c1df3ea892dff54614fda3e7a375b 100644 (file)
@@ -159,6 +159,27 @@ class ImportsControllerTest < Redmine::ControllerTest
     assert_select 'div#flash_error', /not a valid Shift_JIS encoded file/
   end
 
+  def test_post_settings_with_mailformed_csv_should_display_error
+    import = generate_import('unclosed_quoted_field.csv')
+
+    post(
+      :settings,
+      :params => {
+        :id => import.to_param,
+        :import_settings => {
+          :separator => ';',
+          :wrapper => '"',
+          :encoding => 'US-ASCII'
+        }
+      }
+    )
+    assert_response 200
+    import.reload
+    assert_nil import.total_items
+
+    assert_select 'div#flash_error', /The file is not a CSV file or does not match the settings below \([[:print:]]+\)/
+  end
+
   def test_get_mapping_should_display_mapping_form
     import = generate_import('import_iso8859-1.csv')
     import.settings = {'separator' => ";", 'wrapper' => '"', 'encoding' => "ISO-8859-1"}