Spaces:
Sleeping
Sleeping
Keldos
commited on
Commit
•
c5e6e9b
1
Parent(s):
b25e7e2
feat: 禁止手动重命名包含特殊字符
Browse files- ChuanhuChatbot.py +1 -0
- locale/en_US.json +1 -0
- locale/ja_JP.json +1 -0
- locale/ko_KR.json +1 -0
- locale/ru_RU.json +1 -0
- locale/sv_SE.json +1 -0
- web_assets/html/web_config.html +1 -0
- web_assets/javascript/chat-list.js +16 -5
- web_assets/javascript/localization.js +3 -0
ChuanhuChatbot.py
CHANGED
@@ -469,6 +469,7 @@ with gr.Blocks(theme=small_and_beautiful_theme) as demo:
|
|
469 |
regenerate_i18n=i18n("重新生成"),
|
470 |
deleteRound_i18n=i18n("删除这轮问答"),
|
471 |
renameChat_i18n=i18n("重命名该对话"),
|
|
|
472 |
))
|
473 |
with gr.Box(elem_id="fake-gradio-components", visible=False):
|
474 |
updateChuanhuBtn = gr.Button(
|
|
|
469 |
regenerate_i18n=i18n("重新生成"),
|
470 |
deleteRound_i18n=i18n("删除这轮问答"),
|
471 |
renameChat_i18n=i18n("重命名该对话"),
|
472 |
+
validFileName_i18n=i18n("请输入有效的文件名,不要包含以下特殊字符:"),
|
473 |
))
|
474 |
with gr.Box(elem_id="fake-gradio-components", visible=False):
|
475 |
updateChuanhuBtn = gr.Button(
|
locale/en_US.json
CHANGED
@@ -55,6 +55,7 @@
|
|
55 |
"你真的要删除 ": "Are you sure you want to delete ",
|
56 |
" 吗?": " ?",
|
57 |
"重命名该对话": "Rename this chat",
|
|
|
58 |
"🔄 检查更新...": "🔄 Check for Update...",
|
59 |
"您使用的就是最新版!": "You are using the latest version!",
|
60 |
"正在尝试更新...": "Trying to update...",
|
|
|
55 |
"你真的要删除 ": "Are you sure you want to delete ",
|
56 |
" 吗?": " ?",
|
57 |
"重命名该对话": "Rename this chat",
|
58 |
+
"请输入有效的文件名,不要包含以下特殊字符:": "Please enter a valid file name, do not include the following special characters: ",
|
59 |
"🔄 检查更新...": "🔄 Check for Update...",
|
60 |
"您使用的就是最新版!": "You are using the latest version!",
|
61 |
"正在尝试更新...": "Trying to update...",
|
locale/ja_JP.json
CHANGED
@@ -55,6 +55,7 @@
|
|
55 |
"你真的要删除 ": "本当に ",
|
56 |
" 吗?": " を削除してもよろしいですか?",
|
57 |
"重命名该对话": "会話の名前を変更",
|
|
|
58 |
"🔄 检查更新...": "🔄 アップデートをチェック...",
|
59 |
"您使用的就是最新版!": "最新バージョンを使用しています!",
|
60 |
"正在尝试更新...": "更新を試みています...",
|
|
|
55 |
"你真的要删除 ": "本当に ",
|
56 |
" 吗?": " を削除してもよろしいですか?",
|
57 |
"重命名该对话": "会話の名前を変更",
|
58 |
+
"请输入有效的文件名,不要包含以下特殊字符:": "有効なファイル名を入力してください。以下の特殊文字は使用しないでください:",
|
59 |
"🔄 检查更新...": "🔄 アップデートをチェック...",
|
60 |
"您使用的就是最新版!": "最新バージョンを使用しています!",
|
61 |
"正在尝试更新...": "更新を試みています...",
|
locale/ko_KR.json
CHANGED
@@ -55,6 +55,7 @@
|
|
55 |
"你真的要删除 ": "정말로 ",
|
56 |
" 吗?": " 을(를) 삭제하시겠습니까?",
|
57 |
"重命名该对话": "대화 이름 변경",
|
|
|
58 |
"🔄 检查更新...": "🔄 업데이트 확인...",
|
59 |
"您使用的就是最新版!": "최신 버전을 사용하고 있습니다!",
|
60 |
"正在尝试更新...": "업데이트를 시도 중...",
|
|
|
55 |
"你真的要删除 ": "정말로 ",
|
56 |
" 吗?": " 을(를) 삭제하시겠습니까?",
|
57 |
"重命名该对话": "대화 이름 변경",
|
58 |
+
"请输入有效的文件名,不要包含以下特殊字符:": "유효한 파일 이름을 입력하세요. 다음 특수 문자는 포함하지 마세요: ",
|
59 |
"🔄 检查更新...": "🔄 업데이트 확인...",
|
60 |
"您使用的就是最新版!": "최신 버전을 사용하고 있습니다!",
|
61 |
"正在尝试更新...": "업데이트를 시도 중...",
|
locale/ru_RU.json
CHANGED
@@ -55,6 +55,7 @@
|
|
55 |
"你真的要删除 ": "Вы уверены, что хотите удалить ",
|
56 |
" 吗?": " ?",
|
57 |
"重命名该对话": "Переименовать этот диалог",
|
|
|
58 |
"🔄 检查更新...": "🔄 Проверить обновления...",
|
59 |
"您使用的就是最新版!": "Вы используете последнюю версию!",
|
60 |
"正在尝试更新...": "Попытка обновления...",
|
|
|
55 |
"你真的要删除 ": "Вы уверены, что хотите удалить ",
|
56 |
" 吗?": " ?",
|
57 |
"重命名该对话": "Переименовать этот диалог",
|
58 |
+
"请输入有效的文件名,不要包含以下特殊字符:": "Введите действительное имя файла, не содержащее следующих специальных символов: ",
|
59 |
"🔄 检查更新...": "🔄 Проверить обновления...",
|
60 |
"您使用的就是最新版!": "Вы используете последнюю версию!",
|
61 |
"正在尝试更新...": "Попытка обновления...",
|
locale/sv_SE.json
CHANGED
@@ -55,6 +55,7 @@
|
|
55 |
"你真的要删除 ": "Är du säker på att du vill ta bort ",
|
56 |
" 吗?": " ?",
|
57 |
"重命名该对话": "Byt namn på dialogen",
|
|
|
58 |
"🔄 检查更新...": "🔄 Sök efter uppdateringar...",
|
59 |
"您使用的就是最新版!": "Du använder den senaste versionen!",
|
60 |
"正在尝试更新...": "Försöker uppdatera...",
|
|
|
55 |
"你真的要删除 ": "Är du säker på att du vill ta bort ",
|
56 |
" 吗?": " ?",
|
57 |
"重命名该对话": "Byt namn på dialogen",
|
58 |
+
"请输入有效的文件名,不要包含以下特殊字符:": "Ange ett giltigt filnamn, använd inte följande specialtecken: ",
|
59 |
"🔄 检查更新...": "🔄 Sök efter uppdateringar...",
|
60 |
"您使用的就是最新版!": "Du använder den senaste versionen!",
|
61 |
"正在尝试更新...": "Försöker uppdatera...",
|
web_assets/html/web_config.html
CHANGED
@@ -16,5 +16,6 @@
|
|
16 |
<span id="regenerate_i18n">{regenerate_i18n}</span>
|
17 |
<span id="deleteRound_i18n">{deleteRound_i18n}</span>
|
18 |
<span id="renameChat_i18n">{renameChat_i18n}</span>
|
|
|
19 |
</div>
|
20 |
</div>
|
|
|
16 |
<span id="regenerate_i18n">{regenerate_i18n}</span>
|
17 |
<span id="deleteRound_i18n">{deleteRound_i18n}</span>
|
18 |
<span id="renameChat_i18n">{renameChat_i18n}</span>
|
19 |
+
<span id="validFileName_i18n">{validFileName_i18n}</span>
|
20 |
</div>
|
21 |
</div>
|
web_assets/javascript/chat-list.js
CHANGED
@@ -54,16 +54,27 @@ function setChatList() {
|
|
54 |
return;
|
55 |
}
|
56 |
|
|
|
57 |
function saveChatHistory(a, b, c, d) {
|
58 |
var fileName = b;
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
|
|
|
|
|
|
|
|
64 |
}
|
65 |
}
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
const selectedChatBtns = `
|
68 |
<button id="history-rename-btn"><svg class="icon-need-hover" stroke="currentColor" fill="none" stroke-width="2" height="18px" width="18px" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg></button>
|
69 |
<button id="history-delete-btn"><svg class="icon-need-hover" stroke="currentColor" fill="none" stroke-width="2" height="18px" width="18px" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg></button>
|
|
|
54 |
return;
|
55 |
}
|
56 |
|
57 |
+
|
58 |
function saveChatHistory(a, b, c, d) {
|
59 |
var fileName = b;
|
60 |
+
|
61 |
+
while (true) {
|
62 |
+
fileName = prompt(renameChat_i18n, fileName);
|
63 |
+
|
64 |
+
if (isValidFileName(fileName)) {
|
65 |
+
return [a, fileName, c, d];
|
66 |
+
} else {
|
67 |
+
alert(validFileName_i18n + "!@#$%^&*()<>?/\\|}{~:");
|
68 |
+
}
|
69 |
}
|
70 |
}
|
71 |
|
72 |
+
function isValidFileName(fileName) {
|
73 |
+
// 使用正则表达式来检查文件名是否包含不合格字符
|
74 |
+
var regex = /[!@#$%^&*()<>?/\\|}{~:]/;
|
75 |
+
return !regex.test(fileName) && fileName.trim() !== "";
|
76 |
+
}
|
77 |
+
|
78 |
const selectedChatBtns = `
|
79 |
<button id="history-rename-btn"><svg class="icon-need-hover" stroke="currentColor" fill="none" stroke-width="2" height="18px" width="18px" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg></button>
|
80 |
<button id="history-delete-btn"><svg class="icon-need-hover" stroke="currentColor" fill="none" stroke-width="2" height="18px" width="18px" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg></button>
|
web_assets/javascript/localization.js
CHANGED
@@ -12,6 +12,8 @@ var updateSuccess_i18n;
|
|
12 |
var updateFailure_i18n;
|
13 |
var regenerate_i18n;
|
14 |
var deleteRound_i18n;
|
|
|
|
|
15 |
|
16 |
function setLoclize() {
|
17 |
forView_i18n = gradioApp().querySelector('#forView_i18n').innerText;
|
@@ -24,6 +26,7 @@ function setLoclize() {
|
|
24 |
regenerate_i18n = gradioApp().querySelector('#regenerate_i18n').innerText;
|
25 |
deleteRound_i18n = gradioApp().querySelector('#deleteRound_i18n').innerText;
|
26 |
renameChat_i18n = gradioApp().querySelector('#renameChat_i18n').innerText;
|
|
|
27 |
}
|
28 |
|
29 |
function i18n(msg) {
|
|
|
12 |
var updateFailure_i18n;
|
13 |
var regenerate_i18n;
|
14 |
var deleteRound_i18n;
|
15 |
+
var renameChat_i18n;
|
16 |
+
var validFileName_i18n;
|
17 |
|
18 |
function setLoclize() {
|
19 |
forView_i18n = gradioApp().querySelector('#forView_i18n').innerText;
|
|
|
26 |
regenerate_i18n = gradioApp().querySelector('#regenerate_i18n').innerText;
|
27 |
deleteRound_i18n = gradioApp().querySelector('#deleteRound_i18n').innerText;
|
28 |
renameChat_i18n = gradioApp().querySelector('#renameChat_i18n').innerText;
|
29 |
+
validFileName_i18n = gradioApp().querySelector('#validFileName_i18n').innerText;
|
30 |
}
|
31 |
|
32 |
function i18n(msg) {
|