git-svn-id: http://redmine.rubyforge.org/svn/trunk@1591 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/0.8.0-RC1
def issues_to_csv(issues, project = nil) | def issues_to_csv(issues, project = nil) | ||||
ic = Iconv.new(l(:general_csv_encoding), 'UTF-8') | ic = Iconv.new(l(:general_csv_encoding), 'UTF-8') | ||||
decimal_separator = l(:general_csv_decimal_separator) | |||||
export = StringIO.new | export = StringIO.new | ||||
CSV::Writer.generate(export, l(:general_csv_separator)) do |csv| | CSV::Writer.generate(export, l(:general_csv_separator)) do |csv| | ||||
# csv header fields | # csv header fields | ||||
format_date(issue.start_date), | format_date(issue.start_date), | ||||
format_date(issue.due_date), | format_date(issue.due_date), | ||||
issue.done_ratio, | issue.done_ratio, | ||||
issue.estimated_hours, | |||||
issue.estimated_hours.to_s.gsub('.', decimal_separator), | |||||
format_time(issue.created_on), | format_time(issue.created_on), | ||||
format_time(issue.updated_on) | format_time(issue.updated_on) | ||||
] | ] |
def entries_to_csv(entries) | def entries_to_csv(entries) | ||||
ic = Iconv.new(l(:general_csv_encoding), 'UTF-8') | ic = Iconv.new(l(:general_csv_encoding), 'UTF-8') | ||||
decimal_separator = l(:general_csv_decimal_separator) | |||||
export = StringIO.new | export = StringIO.new | ||||
CSV::Writer.generate(export, l(:general_csv_separator)) do |csv| | CSV::Writer.generate(export, l(:general_csv_separator)) do |csv| | ||||
# csv header fields | # csv header fields | ||||
(entry.issue ? entry.issue.id : nil), | (entry.issue ? entry.issue.id : nil), | ||||
(entry.issue ? entry.issue.tracker : nil), | (entry.issue ? entry.issue.tracker : nil), | ||||
(entry.issue ? entry.issue.subject : nil), | (entry.issue ? entry.issue.subject : nil), | ||||
entry.hours, | |||||
entry.hours.to_s.gsub('.', decimal_separator), | |||||
entry.comments | entry.comments | ||||
] | ] | ||||
csv << fields.collect {|c| begin; ic.iconv(c.to_s); rescue; c.to_s; end } | csv << fields.collect {|c| begin; ic.iconv(c.to_s); rescue; c.to_s; end } |
general_text_yes: 'да' | general_text_yes: 'да' | ||||
general_lang_name: 'Bulgarian' | general_lang_name: 'Bulgarian' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: UTF-8 | general_csv_encoding: UTF-8 | ||||
general_pdf_encoding: UTF-8 | general_pdf_encoding: UTF-8 | ||||
general_day_names: Понеделник,Вторник,Сряда,Четвъртък,Петък,Събота,Неделя | general_day_names: Понеделник,Вторник,Сряда,Четвъртък,Петък,Събота,Неделя |
general_text_yes: 'ano' | general_text_yes: 'ano' | ||||
general_lang_name: 'Čeština' | general_lang_name: 'Čeština' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: UTF-8 | general_csv_encoding: UTF-8 | ||||
general_pdf_encoding: UTF-8 | general_pdf_encoding: UTF-8 | ||||
general_day_names: Pondělí,Úterý,Středa,Čtvrtek,Pátek,Sobota,Neděle | general_day_names: Pondělí,Úterý,Středa,Čtvrtek,Pátek,Sobota,Neděle |
general_text_yes: 'ja' | general_text_yes: 'ja' | ||||
general_lang_name: 'Danish (Dansk)' | general_lang_name: 'Danish (Dansk)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag,Søndag | general_day_names: Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag,Søndag |
general_text_yes: 'ja' | general_text_yes: 'ja' | ||||
general_lang_name: 'Deutsch' | general_lang_name: 'Deutsch' | ||||
general_csv_separator: ';' | general_csv_separator: ';' | ||||
general_csv_decimal_separator: ',' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag | general_day_names: Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag |
general_text_yes: 'yes' | general_text_yes: 'yes' | ||||
general_lang_name: 'English' | general_lang_name: 'English' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday | general_day_names: Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday |
general_text_yes: 'sí' | general_text_yes: 'sí' | ||||
general_lang_name: 'Español' | general_lang_name: 'Español' | ||||
general_csv_separator: ';' | general_csv_separator: ';' | ||||
general_csv_decimal_separator: ',' | |||||
general_csv_encoding: ISO-8859-15 | general_csv_encoding: ISO-8859-15 | ||||
general_pdf_encoding: ISO-8859-15 | general_pdf_encoding: ISO-8859-15 | ||||
general_day_names: Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo | general_day_names: Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo |
general_text_yes: 'kyllä' | general_text_yes: 'kyllä' | ||||
general_lang_name: 'Finnish (Suomi)' | general_lang_name: 'Finnish (Suomi)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Maanantai,Tiistai,Keskiviikko,Torstai,Perjantai,Lauantai,Sunnuntai | general_day_names: Maanantai,Tiistai,Keskiviikko,Torstai,Perjantai,Lauantai,Sunnuntai |
general_text_yes: 'oui' | general_text_yes: 'oui' | ||||
general_lang_name: 'Français' | general_lang_name: 'Français' | ||||
general_csv_separator: ';' | general_csv_separator: ';' | ||||
general_csv_decimal_separator: ',' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche | general_day_names: Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche |
general_text_yes: 'כן' | general_text_yes: 'כן' | ||||
general_lang_name: 'Hebrew (עברית)' | general_lang_name: 'Hebrew (עברית)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-8-I | general_csv_encoding: ISO-8859-8-I | ||||
general_pdf_encoding: ISO-8859-8-I | general_pdf_encoding: ISO-8859-8-I | ||||
general_day_names: שני,שלישי,רביעי,חמישי,שישי,שבת,ראשון | general_day_names: שני,שלישי,רביעי,חמישי,שישי,שבת,ראשון |
general_text_yes: 'igen' | general_text_yes: 'igen' | ||||
general_lang_name: 'Magyar' | general_lang_name: 'Magyar' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-2 | general_csv_encoding: ISO-8859-2 | ||||
general_pdf_encoding: ISO-8859-2 | general_pdf_encoding: ISO-8859-2 | ||||
general_day_names: Hétfő,Kedd,Szerda,Csütörtök,Péntek,Szombat,Vasárnap | general_day_names: Hétfő,Kedd,Szerda,Csütörtök,Péntek,Szombat,Vasárnap |
general_text_yes: 'si' | general_text_yes: 'si' | ||||
general_lang_name: 'Italiano' | general_lang_name: 'Italiano' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Lunedì,Martedì,Mercoledì,Giovedì,Venerdì,Sabato,Domenica | general_day_names: Lunedì,Martedì,Mercoledì,Giovedì,Venerdì,Sabato,Domenica |
general_text_yes: 'はい' | general_text_yes: 'はい' | ||||
general_lang_name: 'Japanese (日本語)' | general_lang_name: 'Japanese (日本語)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: SJIS | general_csv_encoding: SJIS | ||||
general_pdf_encoding: UTF-8 | general_pdf_encoding: UTF-8 | ||||
general_day_names: 月曜日,火曜日,水曜日,木曜日,金曜日,土曜日,日曜日 | general_day_names: 月曜日,火曜日,水曜日,木曜日,金曜日,土曜日,日曜日 |
general_text_yes: '예' | general_text_yes: '예' | ||||
general_lang_name: 'Korean (한국어)' | general_lang_name: 'Korean (한국어)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: CP949 | general_csv_encoding: CP949 | ||||
general_pdf_encoding: CP949 | general_pdf_encoding: CP949 | ||||
general_day_names: 월요일,화요일,수요일,목요일,금요일,토요일,일요일 | general_day_names: 월요일,화요일,수요일,목요일,금요일,토요일,일요일 |
general_text_yes: 'taip' | general_text_yes: 'taip' | ||||
general_lang_name: 'Lithuanian (lietuvių)' | general_lang_name: 'Lithuanian (lietuvių)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: UTF-8 | general_csv_encoding: UTF-8 | ||||
general_pdf_encoding: UTF-8 | general_pdf_encoding: UTF-8 | ||||
general_day_names: pirmadienis,antradienis,trečiadienis,ketvirtadienis,penktadienis,šeštadienis,sekmadienis | general_day_names: pirmadienis,antradienis,trečiadienis,ketvirtadienis,penktadienis,šeštadienis,sekmadienis |
general_text_yes: 'ja' | general_text_yes: 'ja' | ||||
general_lang_name: 'Nederlands' | general_lang_name: 'Nederlands' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Maandag, Dinsdag, Woensdag, Donderdag, Vrijdag, Zaterdag, Zondag | general_day_names: Maandag, Dinsdag, Woensdag, Donderdag, Vrijdag, Zaterdag, Zondag |
general_text_yes: 'ja' | general_text_yes: 'ja' | ||||
general_lang_name: 'Norwegian (Norsk bokmål)' | general_lang_name: 'Norwegian (Norsk bokmål)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag,Søndag | general_day_names: Mandag,Tirsdag,Onsdag,Torsdag,Fredag,Lørdag,Søndag |
general_text_yes: 'tak' | general_text_yes: 'tak' | ||||
general_lang_name: 'Polski' | general_lang_name: 'Polski' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-2 | general_csv_encoding: ISO-8859-2 | ||||
general_pdf_encoding: ISO-8859-2 | general_pdf_encoding: ISO-8859-2 | ||||
general_day_names: Poniedziałek,Wtorek,Środa,Czwartek,Piątek,Sobota,Niedziela | general_day_names: Poniedziałek,Wtorek,Środa,Czwartek,Piątek,Sobota,Niedziela |
general_text_yes: 'sim' | general_text_yes: 'sim' | ||||
general_lang_name: 'Português(Brasil)' | general_lang_name: 'Português(Brasil)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Segunda,Terça,Quarta,Quinta,Sexta,Sabado,Domingo | general_day_names: Segunda,Terça,Quarta,Quinta,Sexta,Sabado,Domingo |
general_text_yes: 'sim' | general_text_yes: 'sim' | ||||
general_lang_name: 'Português' | general_lang_name: 'Português' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Segunda,Terça,Quarta,Quinta,Sexta,Sábado,Domingo | general_day_names: Segunda,Terça,Quarta,Quinta,Sexta,Sábado,Domingo |
general_text_yes: 'da' | general_text_yes: 'da' | ||||
general_lang_name: 'Română' | general_lang_name: 'Română' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Luni,Marti,Miercuri,Joi,Vineri,Sambata,Duminica | general_day_names: Luni,Marti,Miercuri,Joi,Vineri,Sambata,Duminica |
general_text_yes: 'Да' | general_text_yes: 'Да' | ||||
general_lang_name: 'Russian (Русский)' | general_lang_name: 'Russian (Русский)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: UTF-8 | general_csv_encoding: UTF-8 | ||||
general_pdf_encoding: UTF-8 | general_pdf_encoding: UTF-8 | ||||
general_day_names: Понедельник,Вторник,Среда,Четверг,Пятница,Суббота,Воскресенье | general_day_names: Понедельник,Вторник,Среда,Четверг,Пятница,Суббота,Воскресенье |
general_text_yes: 'da' | general_text_yes: 'da' | ||||
general_lang_name: 'Srpski' | general_lang_name: 'Srpski' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Ponedeljak, Utorak, Sreda, četvrtak, Petak, Subota, Nedelja | general_day_names: Ponedeljak, Utorak, Sreda, četvrtak, Petak, Subota, Nedelja |
general_text_yes: 'ja' | general_text_yes: 'ja' | ||||
general_lang_name: 'Svenska' | general_lang_name: 'Svenska' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: ISO-8859-1 | general_csv_encoding: ISO-8859-1 | ||||
general_pdf_encoding: ISO-8859-1 | general_pdf_encoding: ISO-8859-1 | ||||
general_day_names: Måndag,Tisdag,Onsdag,Torsdag,Fredag,Lördag,Söndag | general_day_names: Måndag,Tisdag,Onsdag,Torsdag,Fredag,Lördag,Söndag |
general_text_yes: 'ใช่' | general_text_yes: 'ใช่' | ||||
general_lang_name: 'Thai (ไทย)' | general_lang_name: 'Thai (ไทย)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: Windows-874 | general_csv_encoding: Windows-874 | ||||
general_pdf_encoding: cp874 | general_pdf_encoding: cp874 | ||||
general_day_names: จันทร์,อังคาร,พุธ,พฤหัสบดี,ศุกร์,เสาร์,อาทิตย์ | general_day_names: จันทร์,อังคาร,พุธ,พฤหัสบดี,ศุกร์,เสาร์,อาทิตย์ |
general_text_yes: 'Так' | general_text_yes: 'Так' | ||||
general_lang_name: 'Ukrainian (Українська)' | general_lang_name: 'Ukrainian (Українська)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: UTF-8 | general_csv_encoding: UTF-8 | ||||
general_pdf_encoding: UTF-8 | general_pdf_encoding: UTF-8 | ||||
general_day_names: Понеділок,Вівторок,Середа,Четвер,П'ятниця,Субота,Неділя | general_day_names: Понеділок,Вівторок,Середа,Четвер,П'ятниця,Субота,Неділя |
general_text_yes: '是' | general_text_yes: '是' | ||||
general_lang_name: 'Traditional Chinese (繁體中文)' | general_lang_name: 'Traditional Chinese (繁體中文)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: Big5 | general_csv_encoding: Big5 | ||||
general_pdf_encoding: Big5 | general_pdf_encoding: Big5 | ||||
general_day_names: 星期一,星期二,星期三,星期四,星期五,星期六,星期日 | general_day_names: 星期一,星期二,星期三,星期四,星期五,星期六,星期日 |
general_text_yes: '是' | general_text_yes: '是' | ||||
general_lang_name: 'Simplified Chinese (简体中文)' | general_lang_name: 'Simplified Chinese (简体中文)' | ||||
general_csv_separator: ',' | general_csv_separator: ',' | ||||
general_csv_decimal_separator: '.' | |||||
general_csv_encoding: gb2312 | general_csv_encoding: gb2312 | ||||
general_pdf_encoding: gb2312 | general_pdf_encoding: gb2312 | ||||
general_day_names: 星期一,星期二,星期三,星期四,星期五,星期六,星期日 | general_day_names: 星期一,星期二,星期三,星期四,星期五,星期六,星期日 |