diff --git a/batch.py b/batch.py
index 1725f40..0722b0c 100644
--- a/batch.py
+++ b/batch.py
@@ -78,10 +78,10 @@ def layout_translate(self):
.set_encoding(encoding))
else:
input_encoding = QLabel(_('Default'))
- table.setCellWidget(row, 2, input_encoding)
+ table.setCellWidget(row, 1, input_encoding)
input_fmt = InputFormat(ebook.files.keys())
- table.setCellWidget(row, 1, input_fmt)
+ table.setCellWidget(row, 2, input_fmt)
output_format = OutputFormat()
table.setCellWidget(row, 3, output_format)
diff --git a/lib/config.py b/lib/config.py
index 57d0537..84942e5 100644
--- a/lib/config.py
+++ b/lib/config.py
@@ -16,6 +16,7 @@
'cache_enabled': True,
'cache_path': None,
'log_translation': True,
+ 'show_notification': True,
'translation_position': None,
'column_gap': {
'_type': 'percentage',
diff --git a/lib/conversion.py b/lib/conversion.py
index 73d0191..e450882 100644
--- a/lib/conversion.py
+++ b/lib/conversion.py
@@ -332,13 +332,13 @@ def callback(payload):
kwargs = {'args': ['ebook-viewer', output_path]}
payload('ebook-viewer', kwargs=kwargs)
- self.gui.proceed_question(
- callback,
- self.gui.job_manager.launch_gui_app,
- job.log_path,
- _('Ebook Translation Log'),
- _('Translation Completed'),
- _('The translation of "{}" was completed. '
- 'Do you want to open the book?').format(ebook_title),
- log_is_file=True,
- icon=self.icon)
+ if self.config.get('show_notification', True):
+ self.gui.proceed_question(
+ callback,
+ self.gui.job_manager.launch_gui_app,
+ job.log_path,
+ _('Ebook Translation Log'),
+ _('Translation Completed'),
+ _('The translation of "{}" was completed. '
+ 'Do you want to open the book?').format(ebook_title),
+ log_is_file=True, icon=self.icon, auto_hide_after=5)
diff --git a/setting.py b/setting.py
index 62d8816..6564e0d 100644
--- a/setting.py
+++ b/setting.py
@@ -295,12 +295,23 @@ def change_input_format(format):
log_layout.addStretch(1)
misc_layout.addWidget(log_group, 1)
+ # Notification
+ notice_group = QGroupBox(_('Notification'))
+ notice_layout = QHBoxLayout(notice_group)
+ notice = QCheckBox(_('Enable'))
+ notice_layout.addWidget(notice)
+ misc_layout.addWidget(notice_group, 1)
+
layout.addWidget(misc_widget)
- log_translation.setChecked(self.config.get('log_translation'))
+ log_translation.setChecked(self.config.get('log_translation', True))
log_translation.toggled.connect(
lambda checked: self.config.update(log_translation=checked))
+ notice.setChecked(self.config.get('show_notification', True))
+ notice.toggled.connect(
+ lambda checked: self.config.update(show_notification=checked))
+
# Search path
path_group = QGroupBox(_('Search Paths'))
path_layout = QVBoxLayout(path_group)
diff --git a/tests/test_config.py b/tests/test_config.py
index d1c1985..9dcc7ec 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -21,6 +21,7 @@ def test_default(self):
'cache_enabled': True,
'cache_path': None,
'log_translation': True,
+ 'show_notification': True,
'translation_position': None,
'column_gap': {
'_type': 'percentage',
diff --git a/translations/es.po b/translations/es.po
index d0478bd..29054a2 100644
--- a/translations/es.po
+++ b/translations/es.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ebook Translator Calibre Plugin\n"
"Report-Msgid-Bugs-To: bookfere@gmail.com\n"
-"POT-Creation-Date: 2024-04-12 23:49+0800\n"
+"POT-Creation-Date: 2024-04-13 10:33+0800\n"
"PO-Revision-Date: 2023-04-17 14:17+0800\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -566,6 +566,9 @@ msgstr ""
msgid "Show translation"
msgstr "Mostrar traducción"
+msgid "Notification"
+msgstr ""
+
msgid "Search Paths"
msgstr ""
diff --git a/translations/fr.po b/translations/fr.po
index ca7d134..2fedb12 100644
--- a/translations/fr.po
+++ b/translations/fr.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ebook Translator Calibre Plugin\n"
"Report-Msgid-Bugs-To: bookfere@gmail.com\n"
-"POT-Creation-Date: 2024-04-12 23:49+0800\n"
+"POT-Creation-Date: 2024-04-13 10:33+0800\n"
"PO-Revision-Date: 2023-10-01 15:35-0400\n"
"Last-Translator: PoP\n"
@@ -575,6 +575,9 @@ msgstr "Registre de travail"
msgid "Show translation"
msgstr "Montrer la traduction"
+msgid "Notification"
+msgstr ""
+
msgid "Search Paths"
msgstr ""
diff --git a/translations/message.pot b/translations/message.pot
index 8365ffc..c8809c9 100644
--- a/translations/message.pot
+++ b/translations/message.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ebook Translator Calibre Plugin\n"
"Report-Msgid-Bugs-To: bookfere@gmail.com\n"
-"POT-Creation-Date: 2024-04-12 23:49+0800\n"
+"POT-Creation-Date: 2024-04-13 10:33+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -51,7 +51,7 @@ msgstr ""
msgid "Input Format"
msgstr ""
-#: advanced.py:261 advanced.py:712 batch.py:58 setting.py:369
+#: advanced.py:261 advanced.py:713 batch.py:58 setting.py:380
msgid "Target Language"
msgstr ""
@@ -71,156 +71,156 @@ msgstr ""
msgid "There is no content that needs to be translated."
msgstr ""
-#: advanced.py:436
+#: advanced.py:437
msgid "Loading ebook data, please wait..."
msgstr ""
-#: advanced.py:465
+#: advanced.py:466
msgid "Review"
msgstr ""
-#: advanced.py:466
+#: advanced.py:467
msgid "Log"
msgstr ""
-#: advanced.py:467
+#: advanced.py:468
msgid "Errors"
msgstr ""
-#: advanced.py:493
+#: advanced.py:494
msgid "All"
msgstr ""
-#: advanced.py:495 components/indicator.py:14
+#: advanced.py:496 components/indicator.py:14
msgid "Non-aligned"
msgstr ""
-#: advanced.py:496 advanced.py:802 components/indicator.py:13
+#: advanced.py:497 advanced.py:803 components/indicator.py:13
#: components/table.py:94
msgid "Translated"
msgstr ""
-#: advanced.py:497 components/indicator.py:15 components/table.py:83
+#: advanced.py:498 components/indicator.py:15 components/table.py:83
msgid "Untranslated"
msgstr ""
-#: advanced.py:500
+#: advanced.py:501
msgid "keyword for filtering"
msgstr ""
-#: advanced.py:579
+#: advanced.py:580
msgid "Total items: {}"
msgstr ""
-#: advanced.py:580 lib/translation.py:240
+#: advanced.py:581 lib/translation.py:240
msgid "Character count: {}"
msgstr ""
-#: advanced.py:589
+#: advanced.py:590
msgid "Non-aligned items: {}"
msgstr ""
-#: advanced.py:623 cache.py:92 cache.py:182 components/engine.py:201
+#: advanced.py:624 cache.py:92 cache.py:182 components/engine.py:201
#: components/table.py:164
msgid "Delete"
msgstr ""
-#: advanced.py:624
+#: advanced.py:625
msgid "Translate All"
msgstr ""
-#: advanced.py:625
+#: advanced.py:626
msgid "Translate Selected"
msgstr ""
-#: advanced.py:650 advanced.py:665
+#: advanced.py:651 advanced.py:666
msgid "Stop"
msgstr ""
-#: advanced.py:655
+#: advanced.py:656
msgid "Are you sure you want to stop the translation progress?"
msgstr ""
-#: advanced.py:659
+#: advanced.py:660
msgid "Stopping..."
msgstr ""
-#: advanced.py:690
+#: advanced.py:691
msgid "Cache Status"
msgstr ""
-#: advanced.py:693
+#: advanced.py:694
msgid "Disabled"
msgstr ""
-#: advanced.py:693
+#: advanced.py:694
msgid "Enabled"
msgstr ""
-#: advanced.py:700 setting.py:328
+#: advanced.py:701 setting.py:339
msgid "Translation Engine"
msgstr ""
-#: advanced.py:706 batch.py:58 setting.py:368
+#: advanced.py:707 batch.py:58 setting.py:379
msgid "Source Language"
msgstr ""
-#: advanced.py:718
+#: advanced.py:719
msgid "Custom Ebook Title"
msgstr ""
-#: advanced.py:723
+#: advanced.py:724
msgid "By default, title metadata will be translated."
msgstr ""
-#: advanced.py:752
+#: advanced.py:753
msgid "Output Ebook"
msgstr ""
-#: advanced.py:754
+#: advanced.py:755
msgid "Output"
msgstr ""
-#: advanced.py:803
+#: advanced.py:804
msgid "The ebook has not been translated yet."
msgstr ""
-#: advanced.py:807
+#: advanced.py:808
msgid ""
"The number of lines in some translation units differs between the original "
"text and the translated text. Are you sure you want to output without "
"checking alignment?"
msgstr ""
-#: advanced.py:842
+#: advanced.py:843
msgid "No translation yet"
msgstr ""
-#: advanced.py:894 components/engine.py:207 setting.py:98
+#: advanced.py:895 components/engine.py:207 setting.py:98
msgid "Save"
msgstr ""
-#: advanced.py:969
+#: advanced.py:974
msgid "Your changes have been saved."
msgstr ""
-#: advanced.py:981
+#: advanced.py:986
msgid "Translation log"
msgstr ""
-#: advanced.py:992
+#: advanced.py:997
msgid "Error log"
msgstr ""
-#: advanced.py:1012
+#: advanced.py:1017
msgid "Are you sure you want to translate all {:n} paragraphs?"
msgstr ""
-#: advanced.py:1038
+#: advanced.py:1045
msgid "Are you sure you want to cancel the preparation progress?"
msgstr ""
-#: advanced.py:1049
+#: advanced.py:1056
msgid "Are you sure you want to cancel the translation progress?"
msgstr ""
@@ -244,7 +244,7 @@ msgstr ""
msgid "Unknown"
msgstr ""
-#: batch.py:160 cache.py:130 setting.py:1176
+#: batch.py:160 cache.py:130 setting.py:1187
msgid "The specified path does not exist."
msgstr ""
@@ -394,7 +394,7 @@ msgstr ""
msgid "Feedback"
msgstr ""
-#: components/lang.py:34 engines/base.py:71 setting.py:1238
+#: components/lang.py:34 engines/base.py:71 setting.py:1249
msgid "Auto detect"
msgstr ""
@@ -412,8 +412,8 @@ msgid ""
"for more control and customization."
msgstr ""
-#: components/mode.py:41 components/mode.py:51 setting.py:158 setting.py:901
-#: setting.py:920 setting.py:968
+#: components/mode.py:41 components/mode.py:51 setting.py:158 setting.py:912
+#: setting.py:931 setting.py:979
msgid "Choose"
msgstr ""
@@ -427,7 +427,7 @@ msgid ""
"the translation process and saving time."
msgstr ""
-#: components/table.py:40 setting.py:771
+#: components/table.py:40 setting.py:782
msgid "Original"
msgstr ""
@@ -462,7 +462,7 @@ msgstr ""
msgid "Baidu"
msgstr ""
-#: engines/base.py:21 setting.py:349
+#: engines/base.py:21 setting.py:360
msgid "API Keys"
msgstr ""
@@ -590,19 +590,19 @@ msgstr ""
msgid "completed"
msgstr ""
-#: lib/conversion.py:339 tests/test_convertion.py:103
+#: lib/conversion.py:340 tests/test_convertion.py:103
#: tests/test_convertion.py:169 tests/test_convertion.py:235
#: tests/test_convertion.py:289
msgid "Ebook Translation Log"
msgstr ""
-#: lib/conversion.py:340 tests/test_convertion.py:104
+#: lib/conversion.py:341 tests/test_convertion.py:104
#: tests/test_convertion.py:170 tests/test_convertion.py:236
#: tests/test_convertion.py:290
msgid "Translation Completed"
msgstr ""
-#: lib/conversion.py:341 tests/test_convertion.py:106
+#: lib/conversion.py:342 tests/test_convertion.py:106
#: tests/test_convertion.py:172 tests/test_convertion.py:238
#: tests/test_convertion.py:292
msgid "The translation of \"{}\" was completed. Do you want to open the book?"
@@ -712,7 +712,7 @@ msgstr ""
msgid "Merge to Translate"
msgstr ""
-#: setting.py:208 setting.py:229 setting.py:273 setting.py:965
+#: setting.py:208 setting.py:229 setting.py:273 setting.py:301 setting.py:976
msgid "Enable"
msgstr ""
@@ -732,7 +732,7 @@ msgstr ""
msgid "Port"
msgstr ""
-#: setting.py:255 setting.py:331
+#: setting.py:255 setting.py:342
msgid "Test"
msgstr ""
@@ -752,312 +752,317 @@ msgstr ""
msgid "Show translation"
msgstr ""
-#: setting.py:305
+#: setting.py:299
+msgid "Notification"
+msgstr ""
+
+#: setting.py:316
msgid "Search Paths"
msgstr ""
-#: setting.py:308
+#: setting.py:319
msgid "The plugin will search for external programs via these paths."
msgstr ""
-#: setting.py:332 setting.py:582 setting.py:586 setting.py:593 setting.py:598
+#: setting.py:343 setting.py:593 setting.py:597 setting.py:604 setting.py:609
msgid "Custom"
msgstr ""
-#: setting.py:339
+#: setting.py:350
msgid "Usage Tip"
msgstr ""
-#: setting.py:353 setting.py:998 setting.py:1041 setting.py:1100
-#: setting.py:1117
+#: setting.py:364 setting.py:1009 setting.py:1052 setting.py:1111
+#: setting.py:1128
msgid "Tip: "
msgstr ""
-#: setting.py:354
+#: setting.py:365
msgid "API keys will auto-switch if the previous one is unavailable."
msgstr ""
-#: setting.py:364
+#: setting.py:375
msgid "Preferred Language"
msgstr ""
-#: setting.py:375
+#: setting.py:386
msgid "HTTP Request"
msgstr ""
-#: setting.py:387
+#: setting.py:398
msgid "Concurrency limit"
msgstr ""
-#: setting.py:388
+#: setting.py:399
msgid "Interval (seconds)"
msgstr ""
-#: setting.py:389
+#: setting.py:400
msgid "Attempt times"
msgstr ""
-#: setting.py:390
+#: setting.py:401
msgid "Timeout (seconds)"
msgstr ""
-#: setting.py:394
+#: setting.py:405
msgid "Abort Translation"
msgstr ""
-#: setting.py:398
+#: setting.py:409
msgid "Max errors"
msgstr ""
-#: setting.py:401
+#: setting.py:412
msgid "The number of consecutive errors to abort translation."
msgstr ""
-#: setting.py:413
+#: setting.py:424
msgid "Tune Gemini"
msgstr ""
-#: setting.py:420 setting.py:467
+#: setting.py:431 setting.py:478
msgid "Prompt"
msgstr ""
-#: setting.py:450 setting.py:507
+#: setting.py:461 setting.py:518
msgid "Sampling"
msgstr ""
-#: setting.py:469
+#: setting.py:480
msgid "Endpoint"
msgstr ""
-#: setting.py:478
+#: setting.py:489
msgid "Model"
msgstr ""
-#: setting.py:512
+#: setting.py:523
msgid "Enable streaming text like in ChatGPT"
msgstr ""
-#: setting.py:513
+#: setting.py:524
msgid "Stream"
msgstr ""
-#: setting.py:556
+#: setting.py:567
msgid "Tune ChatGPT"
msgstr ""
-#: setting.py:559
+#: setting.py:570
msgid "Tune Claude"
msgstr ""
-#: setting.py:576
+#: setting.py:587
msgid "The model depends on your Azure project."
msgstr ""
-#: setting.py:752
+#: setting.py:763
msgid "Below original"
msgstr ""
-#: setting.py:754
+#: setting.py:765
msgid "Above original"
msgstr ""
-#: setting.py:756 setting.py:758
+#: setting.py:767 setting.py:769
msgid "Beta"
msgstr ""
-#: setting.py:756
+#: setting.py:767
msgid "Right to original"
msgstr ""
-#: setting.py:758
+#: setting.py:769
msgid "Left to original"
msgstr ""
-#: setting.py:759
+#: setting.py:770
msgid "With no original"
msgstr ""
-#: setting.py:778
+#: setting.py:789
msgid "Translation"
msgstr ""
-#: setting.py:795
+#: setting.py:806
msgid "Column Gap"
msgstr ""
-#: setting.py:805
+#: setting.py:816
msgid "Percentage"
msgstr ""
-#: setting.py:806
+#: setting.py:817
msgid "Space count"
msgstr ""
-#: setting.py:837
+#: setting.py:848
msgid "Translation Position"
msgstr ""
-#: setting.py:889
+#: setting.py:900
msgid "Original Text Color"
msgstr ""
-#: setting.py:894 setting.py:912 setting.py:990 setting.py:1091 setting.py:1109
+#: setting.py:905 setting.py:923 setting.py:1001 setting.py:1102
+#: setting.py:1120
msgid "e.g.,"
msgstr ""
-#: setting.py:908
+#: setting.py:919
msgid "Translation Text Color"
msgstr ""
-#: setting.py:963
+#: setting.py:974
msgid "Translation Glossary"
msgstr ""
-#: setting.py:967
+#: setting.py:978
msgid "Choose a glossary file"
msgstr ""
-#: setting.py:986
+#: setting.py:997
msgid "Priority Element"
msgstr ""
-#: setting.py:995
+#: setting.py:1006
msgid "CSS selectors for priority elements. One rule per line:"
msgstr ""
-#: setting.py:999
+#: setting.py:1010
msgid "Stop further extraction once elements match these rules."
msgstr ""
-#: setting.py:1003
+#: setting.py:1014
msgid "Ignore Paragraph"
msgstr ""
-#: setting.py:1009
+#: setting.py:1020
msgid "Scope"
msgstr ""
-#: setting.py:1010
+#: setting.py:1021
msgid "Text only"
msgstr ""
-#: setting.py:1012
+#: setting.py:1023
msgid "HTML element"
msgstr ""
-#: setting.py:1019
+#: setting.py:1030
msgid "Mode"
msgstr ""
-#: setting.py:1020
+#: setting.py:1031
msgid "Normal"
msgstr ""
-#: setting.py:1022
+#: setting.py:1033
msgid "Normal (case-sensitive)"
msgstr ""
-#: setting.py:1023
+#: setting.py:1034
msgid "Regular Expression"
msgstr ""
-#: setting.py:1042
+#: setting.py:1053
msgid "Do not translate elements that contain these keywords."
msgstr ""
-#: setting.py:1068
+#: setting.py:1079
msgid "Exclude paragraph by keyword. One keyword per line:"
msgstr ""
-#: setting.py:1069
+#: setting.py:1080
msgid "Exclude paragraph by case-sensitive keyword. One keyword per line:"
msgstr ""
-#: setting.py:1071
+#: setting.py:1082
msgid "Exclude paragraph by regular expression pattern. One pattern per line:"
msgstr ""
-#: setting.py:1087
+#: setting.py:1098
msgid "Ignore Element"
msgstr ""
-#: setting.py:1097
+#: setting.py:1108
msgid "CSS selectors to exclude elements. One rule per line:"
msgstr ""
-#: setting.py:1101
+#: setting.py:1112
msgid "Do not translation elements that matches these rules."
msgstr ""
-#: setting.py:1105
+#: setting.py:1116
msgid "Reserve Element"
msgstr ""
-#: setting.py:1114
+#: setting.py:1125
msgid "CSS selectors to reserve elements. One rule per line:"
msgstr ""
-#: setting.py:1118
+#: setting.py:1129
msgid "Keep elements that match these rules for extraction."
msgstr ""
-#: setting.py:1122
+#: setting.py:1133
msgid "Ebook Metadata"
msgstr ""
-#: setting.py:1126
+#: setting.py:1137
msgid "Append target language to title metadata"
msgstr ""
-#: setting.py:1128
+#: setting.py:1139
msgid "Set target language code to language metadata"
msgstr ""
-#: setting.py:1131
+#: setting.py:1142
msgid "Subjects of ebook (one subject per line)"
msgstr ""
-#: setting.py:1132
+#: setting.py:1143
msgid "Language Mark"
msgstr ""
-#: setting.py:1133
+#: setting.py:1144
msgid "Language Code"
msgstr ""
-#: setting.py:1134
+#: setting.py:1145
msgid "Append Subjects"
msgstr ""
-#: setting.py:1155 setting.py:1190
+#: setting.py:1166 setting.py:1201
msgid "Proxy host or port is incorrect."
msgstr ""
-#: setting.py:1157
+#: setting.py:1168
msgid "The proxy is available."
msgstr ""
-#: setting.py:1158
+#: setting.py:1169
msgid "The proxy is not available."
msgstr ""
-#: setting.py:1248
+#: setting.py:1259
msgid "the prompt must include {}."
msgstr ""
-#: setting.py:1277 setting.py:1284
+#: setting.py:1288 setting.py:1295
msgid "Invalid color value."
msgstr ""
-#: setting.py:1293
+#: setting.py:1304
msgid "The specified glossary file does not exist."
msgstr ""
-#: setting.py:1304 setting.py:1329 setting.py:1342
+#: setting.py:1315 setting.py:1340 setting.py:1353
msgid "{} is not a valid CSS seletor."
msgstr ""
-#: setting.py:1317
+#: setting.py:1328
msgid "{} is not a valid regular expression."
msgstr ""
diff --git a/translations/pt.po b/translations/pt.po
index 1e8fc56..2580720 100644
--- a/translations/pt.po
+++ b/translations/pt.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ebook Translator Calibre Plugin\n"
"Report-Msgid-Bugs-To: bookfere@gmail.com\n"
-"POT-Creation-Date: 2024-04-12 23:49+0800\n"
+"POT-Creation-Date: 2024-04-13 10:33+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: none\n"
@@ -577,6 +577,9 @@ msgstr "Registro de Tarefas"
msgid "Show translation"
msgstr "Mostrar tradução"
+msgid "Notification"
+msgstr ""
+
msgid "Search Paths"
msgstr "Procurar Caminhos"
diff --git a/translations/tr.po b/translations/tr.po
index f159339..f97a3fd 100644
--- a/translations/tr.po
+++ b/translations/tr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ebook Translator Calibre Plugin\n"
"Report-Msgid-Bugs-To: bookfere@gmail.com\n"
-"POT-Creation-Date: 2024-04-12 23:49+0800\n"
+"POT-Creation-Date: 2024-04-13 10:33+0800\n"
"PO-Revision-Date: 2024-03-23 15:12+0300\n"
"Last-Translator: DogancanYr \n"
"Language-Team: Turkish \n"
@@ -579,6 +579,9 @@ msgstr "İş Günlüğü"
msgid "Show translation"
msgstr "Çeviriyi göster"
+msgid "Notification"
+msgstr ""
+
msgid "Search Paths"
msgstr "Arama Yolları"
diff --git a/translations/zh_CN.mo b/translations/zh_CN.mo
index 64cf527..a7f8e8d 100644
Binary files a/translations/zh_CN.mo and b/translations/zh_CN.mo differ
diff --git a/translations/zh_CN.po b/translations/zh_CN.po
index 34fd50c..c3513ee 100644
--- a/translations/zh_CN.po
+++ b/translations/zh_CN.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ebook Translator Calibre Plugin\n"
"Report-Msgid-Bugs-To: bookfere@gmail.com\n"
-"POT-Creation-Date: 2024-04-12 23:49+0800\n"
+"POT-Creation-Date: 2024-04-13 10:33+0800\n"
"PO-Revision-Date: 2023-04-17 14:17+0800\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -568,6 +568,9 @@ msgstr "任务日志"
msgid "Show translation"
msgstr "显示译文"
+msgid "Notification"
+msgstr "通知"
+
msgid "Search Paths"
msgstr "搜索路径"
diff --git a/translations/zh_TW.po b/translations/zh_TW.po
index bdc2c09..0b786b9 100644
--- a/translations/zh_TW.po
+++ b/translations/zh_TW.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Ebook Translator Calibre Plugin\n"
"Report-Msgid-Bugs-To: bookfere@gmail.com\n"
-"POT-Creation-Date: 2024-04-12 23:49+0800\n"
+"POT-Creation-Date: 2024-04-13 10:33+0800\n"
"PO-Revision-Date: 2023-04-25 15:36+0800\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -564,6 +564,9 @@ msgstr "工作記錄"
msgid "Show translation"
msgstr "顯示譯文"
+msgid "Notification"
+msgstr ""
+
msgid "Search Paths"
msgstr ""
diff --git a/ui.py b/ui.py
index f78b34e..d1880b0 100644
--- a/ui.py
+++ b/ui.py
@@ -53,6 +53,7 @@ def genesis(self):
menu.addAction(_('Batch Mode'), self.show_batch_translation)
menu.addSeparator()
menu.addAction(_('Cache'), self.show_cache)
+ menu.addSeparator()
menu.addAction(_('Setting'), self.show_setting)
menu.addAction(_('About'), self.show_about)