Skip to content

Commit 75252fd

Browse files
committed
名单设置/导入新增重名检测与自动重命名
1 parent 571c388 commit 75252fd

File tree

10 files changed

+514
-0
lines changed

10 files changed

+514
-0
lines changed

CHANGELOG/v2.3.0/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ v2.3 - Shiroko (砂狼白子) release 1
99
- 新增 **独立名单配置**,点名/闪抽/抽奖按名单可独立配置
1010
- 新增 **抽取方式**,抽奖支持数量模式
1111
- 新增 **名单设置**,支持批量配置数量(仅抽奖),以及支持配置标签(点名、抽奖)
12+
- 新增 **名单导入**,支持批量导入名单,且能检测并自动重命名重复项
1213

1314
## 💡 功能优化
1415

app/Language/modules/lottery_list.py

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,22 @@
2020
"name": "以下奖池名称包含非法字符或为保留字: {names}",
2121
"description": "奖池名称验证失败时的错误提示",
2222
},
23+
"duplicate_names_title": {
24+
"name": "发现重复名称",
25+
"description": "名称重复对话框标题",
26+
},
27+
"duplicate_names_message": {
28+
"name": "检测到 {count} 个重复的奖池名称:\n{names}\n\n请选择返回编辑,或自动将重复项重命名为“_1/_2…”格式。",
29+
"description": "名称重复对话框内容",
30+
},
31+
"duplicate_names_rename_button": {
32+
"name": "自动重命名",
33+
"description": "名称重复对话框自动重命名按钮文本",
34+
},
35+
"duplicate_names_edit_button": {
36+
"name": "返回编辑",
37+
"description": "名称重复对话框返回编辑按钮文本",
38+
},
2339
"save_error": {
2440
"name": "保存奖池名称失败",
2541
"description": "保存奖池名称时的错误提示",
@@ -128,6 +144,22 @@
128144
"name": "The following pool names include invalid characters or reserved words: {names}",
129145
"description": "Error hint when prize name validation failed",
130146
},
147+
"duplicate_names_title": {
148+
"name": "Duplicate names found",
149+
"description": "Dialog title when duplicate names are detected",
150+
},
151+
"duplicate_names_message": {
152+
"name": "Detected {count} duplicate pool names:\n{names}\n\nChoose to go back and edit, or automatically rename duplicates with “_1/_2…” suffix.",
153+
"description": "Dialog content when duplicate names are detected",
154+
},
155+
"duplicate_names_rename_button": {
156+
"name": "Auto rename",
157+
"description": "Auto rename button text for duplicate names dialog",
158+
},
159+
"duplicate_names_edit_button": {
160+
"name": "Back to edit",
161+
"description": "Back to edit button text for duplicate names dialog",
162+
},
131163
"save_error": {
132164
"name": "Failed to save pool name",
133165
"description": "Error hint when saving pool name",
@@ -254,6 +286,22 @@
254286
"name": "以下の賞プール名に不正な文字または予約語が含まれています: {names}",
255287
"description": "賞プール名検証失敗時のエラーヒント",
256288
},
289+
"duplicate_names_title": {
290+
"name": "重複名が見つかりました",
291+
"description": "重複名検出ダイアログのタイトル",
292+
},
293+
"duplicate_names_message": {
294+
"name": "{count}個の重複した賞プール名が検出されました:\n{names}\n\n編集に戻るか、重複項目を“_1/_2…”の形式で自動リネームしてください。",
295+
"description": "重複名検出ダイアログの内容",
296+
},
297+
"duplicate_names_rename_button": {
298+
"name": "自動リネーム",
299+
"description": "重複名検出ダイアログの自動リネームボタン",
300+
},
301+
"duplicate_names_edit_button": {
302+
"name": "編集に戻る",
303+
"description": "重複名検出ダイアログの編集に戻るボタン",
304+
},
257305
"save_error": {
258306
"name": "賞プール名の保存に失敗しました",
259307
"description": "賞プール名保存時のエラーヒント",
@@ -459,6 +507,22 @@
459507
"description": "未选择奖池名称列错误信息",
460508
},
461509
"no_id_column": {"name": "请选择序号列", "description": "未选择序号列错误信息"},
510+
"duplicate_names_title": {
511+
"name": "发现重复名称",
512+
"description": "导入时名称重复对话框标题",
513+
},
514+
"duplicate_names_message": {
515+
"name": "检测到 {count} 个重复的奖池名称:\n{names}\n\n请选择返回编辑,或自动将重复项重命名为“_1/_2…”格式。",
516+
"description": "导入时名称重复对话框内容",
517+
},
518+
"duplicate_names_rename_button": {
519+
"name": "自动重命名",
520+
"description": "导入时名称重复对话框自动重命名按钮文本",
521+
},
522+
"duplicate_names_edit_button": {
523+
"name": "返回编辑",
524+
"description": "导入时名称重复对话框返回编辑按钮文本",
525+
},
462526
"import_success_title": {
463527
"name": "导入成功",
464528
"description": "导入成功对话框标题",
@@ -617,6 +681,22 @@
617681
"name": "Please select serial number column",
618682
"description": "Error: No serial number column selected",
619683
},
684+
"duplicate_names_title": {
685+
"name": "Duplicate names found",
686+
"description": "Dialog title when duplicate names are detected during import",
687+
},
688+
"duplicate_names_message": {
689+
"name": "Detected {count} duplicate pool names:\n{names}\n\nChoose to go back and edit, or automatically rename duplicates with “_1/_2…” suffix.",
690+
"description": "Dialog content when duplicate names are detected during import",
691+
},
692+
"duplicate_names_rename_button": {
693+
"name": "Auto rename",
694+
"description": "Auto rename button text for duplicate names dialog during import",
695+
},
696+
"duplicate_names_edit_button": {
697+
"name": "Back to edit",
698+
"description": "Back to edit button text for duplicate names dialog during import",
699+
},
620700
"import_success_title": {
621701
"name": "Import success",
622702
"description": "Import successful dialog title",
@@ -781,6 +861,22 @@
781861
"name": "番号列を選択してください",
782862
"description": "番号列が選択されていないエラー情報",
783863
},
864+
"duplicate_names_title": {
865+
"name": "重複名が見つかりました",
866+
"description": "インポート時の重複名検出ダイアログのタイトル",
867+
},
868+
"duplicate_names_message": {
869+
"name": "{count}個の重複した賞プール名が検出されました:\n{names}\n\n編集に戻るか、重複項目を“_1/_2…”の形式で自動リネームしてください。",
870+
"description": "インポート時の重複名検出ダイアログの内容",
871+
},
872+
"duplicate_names_rename_button": {
873+
"name": "自動リネーム",
874+
"description": "インポート時の重複名検出ダイアログの自動リネームボタン",
875+
},
876+
"duplicate_names_edit_button": {
877+
"name": "編集に戻る",
878+
"description": "インポート時の重複名検出ダイアログの編集に戻るボタン",
879+
},
784880
"import_success_title": {
785881
"name": "インポート成功",
786882
"description": "インポート成功ダイアログのタイトル",
@@ -842,6 +938,22 @@
842938
"name": "以下奖品名称包含非法字符或为保留字: {names}",
843939
"description": "奖品名称验证失败时的错误提示",
844940
},
941+
"duplicate_names_title": {
942+
"name": "发现重复名称",
943+
"description": "名称重复对话框标题",
944+
},
945+
"duplicate_names_message": {
946+
"name": "检测到 {count} 个重复的奖品名称:\n{names}\n\n请选择返回编辑,或自动将重复项重命名为“_1/_2…”格式。",
947+
"description": "名称重复对话框内容",
948+
},
949+
"duplicate_names_rename_button": {
950+
"name": "自动重命名",
951+
"description": "名称重复对话框自动重命名按钮文本",
952+
},
953+
"duplicate_names_edit_button": {
954+
"name": "返回编辑",
955+
"description": "名称重复对话框返回编辑按钮文本",
956+
},
845957
"save_error": {
846958
"name": "保存奖品名称失败",
847959
"description": "保存奖品名称时的错误提示",
@@ -959,6 +1071,22 @@
9591071
"name": "The following prize names include invalid characters or reserved words: {names}",
9601072
"description": "Error hint when the prize name validation failed",
9611073
},
1074+
"duplicate_names_title": {
1075+
"name": "Duplicate names found",
1076+
"description": "Dialog title when duplicate names are detected",
1077+
},
1078+
"duplicate_names_message": {
1079+
"name": "Detected {count} duplicate prize names:\n{names}\n\nChoose to go back and edit, or automatically rename duplicates with “_1/_2…” suffix.",
1080+
"description": "Dialog content when duplicate names are detected",
1081+
},
1082+
"duplicate_names_rename_button": {
1083+
"name": "Auto rename",
1084+
"description": "Auto rename button text for duplicate names dialog",
1085+
},
1086+
"duplicate_names_edit_button": {
1087+
"name": "Back to edit",
1088+
"description": "Back to edit button text for duplicate names dialog",
1089+
},
9621090
"save_error": {
9631091
"name": "Failed to save prize name",
9641092
"description": "Error hint when saving prize name",
@@ -1082,6 +1210,22 @@
10821210
"name": "以下の賞品名に不正な文字または予約語が含まれています: {names}",
10831211
"description": "賞品名検証失敗時のエラーヒント",
10841212
},
1213+
"duplicate_names_title": {
1214+
"name": "重複名が見つかりました",
1215+
"description": "重複名検出ダイアログのタイトル",
1216+
},
1217+
"duplicate_names_message": {
1218+
"name": "{count}個の重複した賞品名が検出されました:\n{names}\n\n編集に戻るか、重複項目を“_1/_2…”の形式で自動リネームしてください。",
1219+
"description": "重複名検出ダイアログの内容",
1220+
},
1221+
"duplicate_names_rename_button": {
1222+
"name": "自動リネーム",
1223+
"description": "重複名検出ダイアログの自動リネームボタン",
1224+
},
1225+
"duplicate_names_edit_button": {
1226+
"name": "編集に戻る",
1227+
"description": "重複名検出ダイアログの編集に戻るボタン",
1228+
},
10851229
"save_error": {
10861230
"name": "賞品名の保存に失敗しました",
10871231
"description": "賞品名保存時のエラーヒント",

0 commit comments

Comments
 (0)