X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=filter.c;h=62394ca0cf2c1b05fca28541c600b3b1b99e4603;hb=2f465ba5e73ba05745d23f0fca9d5bdb1b350d8c;hp=34f35b1ac0e7ff39ff85230b4cd938d9c21588cc;hpb=f997c8381e0dbcf45fc396bc94e38538c1272dcf;p=pkg%2Fabook.git diff --git a/filter.c b/filter.c index 34f35b1..62394ca 100644 --- a/filter.c +++ b/filter.c @@ -19,9 +19,11 @@ #include "abook.h" #include "database.h" #include "edit.h" +#include "gettext.h" #include "list.h" #include "misc.h" #include "options.h" +#include "ui.h" #include "xmalloc.h" #include @@ -59,35 +61,37 @@ static int mutt_alias_export(FILE *out, struct db_enumerator e); static int elm_alias_export(FILE *out, struct db_enumerator e); static int text_export_database(FILE *out, struct db_enumerator e); static int spruce_export_database(FILE *out, struct db_enumerator e); +static int wl_export_database(FILE *out, struct db_enumerator e); /* * end of function declarations */ struct abook_input_filter i_filters[] = { - { "abook", "abook native format", parse_database }, - { "ldif", "ldif / Netscape addressbook", ldif_parse_file }, - { "mutt", "mutt alias", mutt_parse_file }, - { "pine", "pine addressbook", pine_parse_file }, - { "csv", "comma separated values", csv_parse_file }, - { "allcsv", "comma separated all values", allcsv_parse_file }, - { "palmcsv", "Palm comma separated values", palmcsv_parse_file }, + { "abook", N_("abook native format"), parse_database }, + { "ldif", N_("ldif / Netscape addressbook"), ldif_parse_file }, + { "mutt", N_("mutt alias"), mutt_parse_file }, + { "pine", N_("pine addressbook"), pine_parse_file }, + { "csv", N_("comma separated values"), csv_parse_file }, + { "allcsv", N_("comma separated values (all fields)"), allcsv_parse_file }, + { "palmcsv", N_("Palm comma separated values"), palmcsv_parse_file }, { "\0", NULL, NULL } }; struct abook_output_filter e_filters[] = { - { "abook", "abook native format", write_database }, - { "ldif", "ldif / Netscape addressbook (.4ld)", ldif_export_database }, - { "mutt", "mutt alias", mutt_alias_export }, - { "html", "html document", html_export_database }, - { "pine", "pine addressbook", pine_export_database }, - { "gcrd", "GnomeCard (VCard) addressbook", gcrd_export_database }, - { "csv", "comma separated values", csv_export_database }, - { "allcsv", "comma separated all values", allcsv_export_database }, - { "palmcsv", "Palm comma separated values", palm_export_database}, - { "elm", "elm alias", elm_alias_export }, - { "text", "plain text", text_export_database }, - { "spruce", "Spruce address book", spruce_export_database }, + { "abook", N_("abook native format"), write_database }, + { "ldif", N_("ldif / Netscape addressbook (.4ld)"), ldif_export_database }, + { "mutt", N_("mutt alias"), mutt_alias_export }, + { "html", N_("html document"), html_export_database }, + { "pine", N_("pine addressbook"), pine_export_database }, + { "gcrd", N_("GnomeCard (VCard) addressbook"), gcrd_export_database }, + { "csv", N_("comma separated values"), csv_export_database }, + { "allcsv", N_("comma separated values (all fields)"), allcsv_export_database }, + { "palmcsv", N_("Palm comma separated values"), palm_export_database}, + { "elm", N_("elm alias"), elm_alias_export }, + { "text", N_("plain text"), text_export_database }, + { "wl", N_("Wanderlust address book"), wl_export_database }, + { "spruce", N_("Spruce address book"), spruce_export_database }, { "\0", NULL, NULL } }; @@ -100,17 +104,17 @@ print_filters() { int i; - puts("input:"); + puts(_("input:")); for(i=0; *i_filters[i].filtname ; i++) printf("\t%s\t%s\n", i_filters[i].filtname, - i_filters[i].desc); + gettext(i_filters[i].desc)); putchar('\n'); - puts("output:"); + puts(_("output:")); for(i=0; *e_filters[i].filtname ; i++) printf("\t%s\t%s\n", e_filters[i].filtname, - e_filters[i].desc); + gettext(e_filters[i].desc)); putchar('\n'); } @@ -172,17 +176,17 @@ import_screen() clear(); refresh_statusline(); - headerline("import database"); + headerline(_("import database")); - mvaddstr(3, 1, "please select a filter"); + mvaddstr(3, 1, _("please select a filter")); for(i=0; *i_filters[i].filtname ; i++) mvprintw(5 + i, 6, "%c -\t%s\t%s\n", 'a' + i, i_filters[i].filtname, - i_filters[i].desc); + gettext(i_filters[i].desc)); - mvprintw(6 + i, 6, "x -\tcancel"); + mvprintw(6 + i, 6, _("x -\tcancel")); } int @@ -203,16 +207,16 @@ import_database() mvaddstr(5+filter, 2, "->"); - filename = ask_filename("Filename: "); + filename = ask_filename(_("Filename: ")); if(!filename) { refresh_screen(); return 2; } if(i_read_file(filename, i_filters[filter].func )) - statusline_msg("Error occured while opening the file"); + statusline_msg(_("Error occured while opening the file")); else if(tmp == items) - statusline_msg("Hmm.., file seems not to be a valid file"); + statusline_msg(_("File does not seem to be a valid addressbook")); refresh_screen(); free(filename); @@ -289,17 +293,17 @@ export_screen() refresh_statusline(); - headerline("export database"); + headerline(_("export database")); - mvaddstr(3, 1, "please select a filter"); + mvaddstr(3, 1, _("please select a filter")); for(i = 0; *e_filters[i].filtname ; i++) mvprintw(5 + i, 6, "%c -\t%s\t%s\n", 'a' + i, e_filters[i].filtname, - e_filters[i].desc); + gettext(e_filters[i].desc)); - mvprintw(6 + i, 6, "x -\tcancel"); + mvprintw(6 + i, 6, _("x -\tcancel")); } int @@ -318,29 +322,33 @@ export_database() return 1; } - mvaddstr(5+filter, 2, "->"); + mvaddstr(5 + filter, 2, "->"); if(selected_items()) { - statusline_addstr("Export All/Selected/Cancel (A/s/c)"); - switch( tolower(getch()) ) { - case 's': + switch(statusline_askchoice( + _("Export ll, export elected, or ancel?"), + S_("keybindings:all/selected/cancel|asc"), 3)) { + case 1: + break; + case 2: enum_mode = ENUM_SELECTED; break; - case 'c': - clear_statusline(); + case 0: + case 3: + refresh_screen(); return 1; } clear_statusline(); } - filename = ask_filename("Filename: "); + filename = ask_filename(_("Filename: ")); if(!filename) { refresh_screen(); return 2; } if( e_write_file(filename, e_filters[filter].func, enum_mode)) - statusline_msg("Error occured while exporting"); + statusline_msg(_("Error occured while exporting")); refresh_screen(); free(filename); @@ -787,7 +795,7 @@ ldif_export_database(FILE *out, struct db_enumerator e) int j; get_first_email(email, e.item); - tmp = mkstr("cn=%s,mail=%s", database[e.item][NAME], email); + tmp = strdup_printf("cn=%s,mail=%s", database[e.item][NAME], email); ldif_fput_type_and_value(out, "dn", tmp); free(tmp); @@ -1808,3 +1816,34 @@ spruce_export_database (FILE *out, struct db_enumerator e) * end of Spruce export filter */ +/* + * wanderlust addressbook export filter + */ + +static int +wl_export_database(FILE *out, struct db_enumerator e) +{ + char emails[MAX_EMAILS][MAX_EMAIL_LEN]; + + fprintf (out, "# Wanderlust address book written by %s\n\n", PACKAGE); + db_enumerate_items(e) { + split_emailstr(e.item, emails); + if (**emails) { + fprintf(out, + "%s\t\"%s\"\t\"%s\"\n", + *emails, + safe_str(database[e.item][NICK]), + safe_str(database[e.item][NAME]) + ); + } + } + + fprintf (out, "\n# End of address book file.\n"); + + return 0; +} + +/* + * end of wanderlust addressbook export filter + */ +