diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | po/ja.po | 116 | ||||
-rw-r--r-- | src/prefs_template.c | 39 |
3 files changed, 104 insertions, 55 deletions
@@ -1,3 +1,7 @@ +2010-07-21 + + * src/prefs_template.c: confirm on cancel if templates are modified. + 2010-07-20 * src/importcsv.c: added 'Alias' attribute. @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: sylpheed\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-07-16 15:59+0900\n" +"POT-Creation-Date: 2010-07-21 11:42+0900\n" "PO-Revision-Date: 1999-10-12\n" "Last-Translator: Hiroyuki Yamamoto <hiro-y@kcn.ne.jp>\n" "Language-Team: Japanese <ja@li.org>\n" @@ -830,7 +830,7 @@ msgid "Address" msgstr "アドレス" #: src/addressadd.c:198 src/addressbook.c:726 src/editaddress.c:629 -#: src/editaddress.c:695 src/editgroup.c:268 src/importcsv.c:125 +#: src/editaddress.c:695 src/editgroup.c:268 src/importcsv.c:126 msgid "Remarks" msgstr "備考" @@ -1008,17 +1008,17 @@ msgid "Search:" msgstr "検索:" #: src/addressbook.c:789 src/compose.c:3270 src/headerview.c:55 -#: src/prefs_folder_item.c:339 src/prefs_template.c:179 +#: src/prefs_folder_item.c:339 src/prefs_template.c:190 msgid "To:" msgstr "宛先:" #: src/addressbook.c:793 src/compose.c:3287 src/headerview.c:56 -#: src/prefs_folder_item.c:356 src/prefs_template.c:181 +#: src/prefs_folder_item.c:356 src/prefs_template.c:192 msgid "Cc:" msgstr "Cc:" #: src/addressbook.c:797 src/compose.c:3304 src/prefs_folder_item.c:367 -#: src/prefs_template.c:183 +#: src/prefs_template.c:194 msgid "Bcc:" msgstr "Bcc:" @@ -1026,7 +1026,7 @@ msgstr "Bcc:" #: src/addressbook.c:818 src/addressbook.c:1894 src/editaddress.c:719 #: src/editaddress.c:853 src/prefs_actions.c:266 #: src/prefs_display_header.c:280 src/prefs_display_header.c:336 -#: src/prefs_template.c:239 src/prefs_toolbar.c:65 +#: src/prefs_template.c:253 src/prefs_toolbar.c:65 msgid "Delete" msgstr "削除" @@ -1188,7 +1188,7 @@ msgstr "アドレス帳変換" msgid "Interface" msgstr "インタフェース" -#: src/addressbook.c:3720 src/importcsv.c:671 src/importldif.c:478 +#: src/addressbook.c:3720 src/importcsv.c:676 src/importldif.c:478 msgid "Address Book" msgstr "アドレス帳" @@ -1656,7 +1656,7 @@ msgstr "このメールを以下のアドレスに送信してもよろしいで msgid "From:" msgstr "差出人:" -#: src/compose.c:3237 src/headerview.c:58 src/prefs_template.c:187 +#: src/compose.c:3237 src/headerview.c:58 src/prefs_template.c:198 msgid "Subject:" msgstr "件名:" @@ -1935,28 +1935,28 @@ msgstr "名前と値を指定する必要があります。" msgid "Edit Person Data" msgstr "人物のデータを編集" -#: src/editaddress.c:578 src/importcsv.c:122 +#: src/editaddress.c:578 src/importcsv.c:123 msgid "Display Name" msgstr "表示名" -#: src/editaddress.c:584 src/editaddress.c:588 src/importcsv.c:121 +#: src/editaddress.c:584 src/editaddress.c:588 src/importcsv.c:122 msgid "Last Name" msgstr "姓" -#: src/editaddress.c:585 src/editaddress.c:587 src/importcsv.c:120 +#: src/editaddress.c:585 src/editaddress.c:587 src/importcsv.c:121 msgid "First Name" msgstr "名" -#: src/editaddress.c:590 src/importcsv.c:123 +#: src/editaddress.c:590 src/importcsv.c:124 msgid "Nick Name" msgstr "ニックネーム" #: src/editaddress.c:627 src/editaddress.c:677 src/editaddress.c:887 -#: src/editgroup.c:267 src/importcsv.c:124 +#: src/editgroup.c:267 src/importcsv.c:125 msgid "E-Mail Address" msgstr "電子メール アドレス" -#: src/editaddress.c:628 src/editaddress.c:686 +#: src/editaddress.c:628 src/editaddress.c:686 src/importcsv.c:127 msgid "Alias" msgstr "別名" @@ -2090,7 +2090,7 @@ msgid "Edit JPilot Entry" msgstr "JPilotエントリを編集" #: src/editjpilot.c:289 src/editldap.c:349 src/editvcard.c:202 -#: src/importcsv.c:691 src/importldif.c:498 src/prefs_account_dialog.c:1863 +#: src/importcsv.c:696 src/importldif.c:498 src/prefs_account_dialog.c:1863 #: src/prefs_common_dialog.c:2164 msgid " ... " msgstr " ... " @@ -2647,112 +2647,112 @@ msgstr "インポートするフォルダを選択" msgid "Select importing file" msgstr "インポートするファイルを選択" -#: src/importcsv.c:151 src/importldif.c:122 +#: src/importcsv.c:153 src/importldif.c:122 msgid "Please specify address book name and file to import." msgstr "インポートするアドレス帳の名前とファイルを指定して下さい。" -#: src/importcsv.c:154 +#: src/importcsv.c:156 msgid "Select and reorder CSV field names to import." msgstr "インポートするCSVフィールド名を選択して並べ替えてください。" -#: src/importcsv.c:157 src/importldif.c:128 +#: src/importcsv.c:159 src/importldif.c:128 msgid "File imported." msgstr "ファイルをインポートしました。" -#: src/importcsv.c:513 src/importldif.c:317 +#: src/importcsv.c:518 src/importldif.c:317 msgid "Please select a file." msgstr "ファイルを選択してください。" -#: src/importcsv.c:519 src/importldif.c:323 +#: src/importcsv.c:524 src/importldif.c:323 msgid "Address book name must be supplied." msgstr "アドレス帳の名前を指定する必要があります。" -#: src/importcsv.c:528 +#: src/importcsv.c:533 msgid "Error reading CSV fields." msgstr "CSVファイルの読み込み中にエラーが発生しました。" -#: src/importcsv.c:554 +#: src/importcsv.c:559 msgid "CSV file imported successfully." msgstr "CSVファイルは正しく読み込まれました。" -#: src/importcsv.c:616 +#: src/importcsv.c:621 msgid "Select CSV File" msgstr "CSVファイルの選択" -#: src/importcsv.c:682 src/importldif.c:489 +#: src/importcsv.c:687 src/importldif.c:489 msgid "File Name" msgstr "ファイル名" -#: src/importcsv.c:700 +#: src/importcsv.c:705 msgid "Comma-separated" msgstr "カンマ区切り" -#: src/importcsv.c:704 +#: src/importcsv.c:709 msgid "Tab-separated" msgstr "タブ区切り" -#: src/importcsv.c:735 src/importldif.c:530 +#: src/importcsv.c:740 src/importldif.c:530 msgid "S" msgstr "S" -#: src/importcsv.c:736 +#: src/importcsv.c:741 msgid "CSV Field" msgstr "CSVフィールド" -#: src/importcsv.c:737 +#: src/importcsv.c:742 msgid "Address Book Field" msgstr "アドレス帳のフィールド" -#: src/importcsv.c:754 +#: src/importcsv.c:759 msgid "Reorder address book fields with the Up and Down button." msgstr "アドレス帳のフィールドを上・下ボタンで並べ替えてください。" -#: src/importcsv.c:789 src/prefs_actions.c:310 src/prefs_customheader.c:279 +#: src/importcsv.c:794 src/prefs_actions.c:310 src/prefs_customheader.c:279 #: src/prefs_display_header.c:287 src/prefs_display_items.c:233 #: src/prefs_summary_column.c:301 msgid "Up" msgstr " ↑ " -#: src/importcsv.c:791 src/prefs_actions.c:316 src/prefs_customheader.c:285 +#: src/importcsv.c:796 src/prefs_actions.c:316 src/prefs_customheader.c:285 #: src/prefs_display_header.c:293 src/prefs_display_items.c:237 #: src/prefs_summary_column.c:305 msgid "Down" msgstr " ↓ " -#: src/importcsv.c:833 src/importldif.c:653 +#: src/importcsv.c:838 src/importldif.c:653 msgid "Address Book :" msgstr "アドレス帳 :" -#: src/importcsv.c:843 src/importldif.c:663 +#: src/importcsv.c:848 src/importldif.c:663 msgid "File Name :" msgstr "ファイル名 :" -#: src/importcsv.c:854 src/importldif.c:673 +#: src/importcsv.c:859 src/importldif.c:673 msgid "Records :" msgstr "レコード :" -#: src/importcsv.c:882 +#: src/importcsv.c:887 msgid "Import CSV file into Address Book" msgstr "CSVファイルをアドレス帳へインポート" #. Button panel -#: src/importcsv.c:914 src/importldif.c:733 src/prefs_toolbar.c:74 +#: src/importcsv.c:919 src/importldif.c:733 src/prefs_toolbar.c:74 msgid "Next" msgstr "次へ" -#: src/importcsv.c:915 src/importldif.c:734 src/prefs_toolbar.c:77 +#: src/importcsv.c:920 src/importldif.c:734 src/prefs_toolbar.c:77 msgid "Prev" msgstr "前へ" -#: src/importcsv.c:947 src/importldif.c:766 +#: src/importcsv.c:952 src/importldif.c:766 msgid "File Info" msgstr "ファイル情報" -#: src/importcsv.c:948 +#: src/importcsv.c:953 msgid "Fields" msgstr "フィールド" -#: src/importcsv.c:949 src/importldif.c:768 +#: src/importcsv.c:954 src/importldif.c:768 msgid "Finish" msgstr "完了" @@ -4745,7 +4745,7 @@ msgstr " 文法のヘルプ " msgid "Registered actions" msgstr "登録済みアクション" -#: src/prefs_actions.c:423 src/prefs_template.c:326 +#: src/prefs_actions.c:423 src/prefs_template.c:342 msgid "(New)" msgstr "(新規)" @@ -6116,7 +6116,7 @@ msgstr "サブフォルダにも適用する" msgid "use also on reply" msgstr "返信時にも使用" -#: src/prefs_folder_item.c:378 src/prefs_template.c:185 +#: src/prefs_folder_item.c:378 src/prefs_template.c:196 msgid "Reply-To:" msgstr "Reply-To:" @@ -6194,45 +6194,53 @@ msgstr "" "サマリビューに表示する項目を選択してください。\n" "上・下ボタンで項目の順番を変更することができます。" -#: src/prefs_template.c:164 +#: src/prefs_template.c:173 msgid "Template name" msgstr "テンプレート名" -#: src/prefs_template.c:227 +#: src/prefs_template.c:241 msgid "Register" msgstr "登録" -#: src/prefs_template.c:233 +#: src/prefs_template.c:247 msgid " Substitute " msgstr " 置換 " -#: src/prefs_template.c:245 +#: src/prefs_template.c:259 msgid " Symbols " msgstr " 記号 " -#: src/prefs_template.c:259 +#: src/prefs_template.c:273 msgid "Registered templates" msgstr "登録済みテンプレート" -#: src/prefs_template.c:281 +#: src/prefs_template.c:295 msgid "Templates" msgstr "テンプレート" -#: src/prefs_template.c:402 +#: src/prefs_template.c:413 +msgid "Templates are modified" +msgstr "テンプレートが変更されています" + +#: src/prefs_template.c:414 +msgid "Really discard modification to templates?" +msgstr "テンプレートの変更を破棄してもいいですか?" + +#: src/prefs_template.c:434 msgid "Template" msgstr "テンプレート" -#: src/prefs_template.c:479 +#: src/prefs_template.c:513 msgid "Template format error." msgstr "テンプレートの書式が不正です。" -#: src/prefs_template.c:565 +#: src/prefs_template.c:601 msgid "Delete template" msgstr "テンプレートの削除" -#: src/prefs_template.c:566 +#: src/prefs_template.c:602 msgid "Do you really want to delete this template?" -msgstr "本当にこのテンプレートを削除してもいいですか?" +msgstr "このテンプレートを削除してもいいですか?" #: src/prefs_toolbar.c:39 msgid "---- Separator ----" diff --git a/src/prefs_template.c b/src/prefs_template.c index 4d2d3764..d64a9356 100644 --- a/src/prefs_template.c +++ b/src/prefs_template.c @@ -1,7 +1,7 @@ /* * Sylpheed templates subsystem * Copyright (C) 2001 Alexander Barinov - * Copyright (C) 2001-2006 Hiroyuki Yamamoto + * Copyright (C) 2001-2010 Hiroyuki Yamamoto * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -55,6 +55,9 @@ static struct Templates { GtkWidget *confirm_area; GtkWidget *ok_btn; GtkWidget *cancel_btn; + + gboolean entry_modified; + gboolean list_modified; } templates; /* widget creating functions */ @@ -71,6 +74,8 @@ static gint prefs_template_deleted_cb (GtkWidget *widget, static gboolean prefs_template_key_pressed_cb (GtkWidget *widget, GdkEventKey *event, gpointer data); +static void prefs_template_changed_cb (GtkEditable *editable, + gpointer data); static void prefs_template_cancel_cb (void); static void prefs_template_ok_cb (void); static void prefs_template_select_cb (GtkCList *clist, @@ -105,6 +110,8 @@ void prefs_template_open(void) gtk_widget_show(entry); \ gtk_table_attach(GTK_TABLE(table), entry, 1, 2, row, (row + 1), \ GTK_EXPAND|GTK_SHRINK|GTK_FILL, 0, 0, 0); \ + g_signal_connect(G_OBJECT(entry), "changed", \ + G_CALLBACK(prefs_template_changed_cb), NULL); \ } static void prefs_template_window_create(void) @@ -138,6 +145,8 @@ static void prefs_template_window_create(void) GtkWidget *ok_btn; GtkWidget *cancel_btn; + GtkTextBuffer *buffer; + gchar *title[1]; /* main window */ @@ -168,6 +177,8 @@ static void prefs_template_window_create(void) entry_name = gtk_entry_new(); gtk_widget_show(entry_name); gtk_box_pack_start(GTK_BOX(hbox1), entry_name, TRUE, TRUE, 0); + g_signal_connect(G_OBJECT(entry_name), "changed", + G_CALLBACK(prefs_template_changed_cb), NULL); /* table for headers */ table = gtk_table_new(5, 2, FALSE); @@ -203,6 +214,9 @@ static void prefs_template_window_create(void) gtk_widget_set_size_request(text_value, 360, 120); gtk_container_add(GTK_CONTAINER(scroll2), text_value); gtk_text_view_set_editable(GTK_TEXT_VIEW(text_value), TRUE); + buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_value)); + g_signal_connect(G_OBJECT(buffer), "changed", + G_CALLBACK(prefs_template_changed_cb), NULL); /* vbox for buttons and templates list */ vbox2 = gtk_vbox_new(FALSE, 6); @@ -304,6 +318,8 @@ static void prefs_template_window_create(void) templates.confirm_area = confirm_area; templates.ok_btn = ok_btn; templates.cancel_btn = cancel_btn; + templates.entry_modified = FALSE; + templates.list_modified = FALSE; } static void prefs_template_window_setup(void) @@ -339,6 +355,9 @@ static void prefs_template_window_setup(void) g_slist_free(tmpl_list); gtk_clist_thaw(clist); + + templates.entry_modified = FALSE; + templates.list_modified = FALSE; } static void prefs_template_clear(void) @@ -370,6 +389,11 @@ static gboolean prefs_template_key_pressed_cb(GtkWidget *widget, return FALSE; } +static void prefs_template_changed_cb(GtkEditable *editable, gpointer data) +{ + templates.entry_modified = TRUE; +} + static void prefs_template_ok_cb(void) { GSList *tmpl_list; @@ -385,6 +409,14 @@ static void prefs_template_ok_cb(void) static void prefs_template_cancel_cb(void) { + if (templates.entry_modified || templates.list_modified) { + if (alertpanel(_("Templates are modified"), + _("Really discard modification to templates?"), + GTK_STOCK_YES, GTK_STOCK_NO, NULL) + != G_ALERTDEFAULT) + return; + } + prefs_template_clear(); gtk_widget_hide(templates.window); main_window_popup(main_window_get()); @@ -426,6 +458,8 @@ static void prefs_template_select_cb(GtkCList *clist, gint row, gint column, gtk_text_buffer_set_text(buffer, "", 0); gtk_text_buffer_get_start_iter(buffer, &iter); gtk_text_buffer_insert(buffer, &iter, tmpl->value, -1); + + templates.entry_modified = FALSE; } static GSList *prefs_template_get_list(void) @@ -527,6 +561,8 @@ static gint prefs_template_clist_set_row(gint row) } gtk_clist_set_row_data(clist, row, tmpl); + templates.list_modified = TRUE; + return row; } @@ -570,4 +606,5 @@ static void prefs_template_delete_cb(void) tmpl = gtk_clist_get_row_data(clist, row); template_free(tmpl); gtk_clist_remove(clist, row); + templates.list_modified = TRUE; } |