diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index edbe77d0d..8ef9ac46e 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -800,7 +800,7 @@
"25": "The attribute name only supports English letters and digits",
"26": "Please initialize the data repo key first in [Settings - About - Data repo key]",
"27": "Uploading [%v]",
- "28": "TODO",
+ "28": "The network is abnormal, please try again later",
"29": "This feature requires paid subscription (If you have subscribed, please refresh or log in again in settings - account)",
"30": "Failed to obtain cloud info",
"31": "Account authentication failed, please login again",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 013e5c2e7..e855429cf 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -800,7 +800,7 @@
"25": "El nombre del atributo sólo admite letras y dígitos en inglés",
"26": "Por favor, inicialice primero la clave de repositorio de datos en [Configuración - Acerca de - Clave de repositorio de datos]",
"27": "Subiendo [%v]",
- "28": "TODO",
+ "28": "La red es anómala, inténtalo de nuevo más tarde",
"29": "Esta función requiere una suscripción de pago (Si se ha suscrito, actualice o vuelva a conectarse en configuración - cuenta)",
"30": "No se pudo obtener la información de la nube",
"31": "Falló la autentificación de la cuenta, por favor, inicie sesión de nuevo",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index 02f93b7c7..e4262dab1 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -800,7 +800,7 @@
"25": "Le nom de l'attribut ne supporte que les lettres et les chiffres anglais.",
"26": "Veuillez d'abord initialiser la clé du référentiel de données dans [Paramètres - À propos - Clé du référentiel de données]",
"27": "Téléchargement de [%v]",
- "28": "TODO",
+ "28": "Le réseau est anormal, veuillez réessayer plus tard",
"29": "Cette fonctionnalité nécessite un abonnement payant (Si vous êtes déjà abonné, Rafraîchissez ou connectez - vous à nouveau dans Paramètres - compte)",
"30": "Échec de l'obtention des informations sur le cloud",
"31": "L'authentification du compte a échoué, veuillez vous reconnecter",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index e74258c52..3d10512ce 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -800,7 +800,7 @@
"25": "屬性名僅支援英文字母和阿拉伯數字",
"26": "請先在 [設置 - 關於 - 數據倉庫密鑰] 中初始化數據倉庫密鑰",
"27": "正在上傳 [%v]",
- "28": "TODO",
+ "28": "網絡異常,請稍後再試",
"29": "該功能需要付費訂閱(如果你已經訂閱,請在設定-帳號中重繪或者重新登入)",
"30": "獲取雲端資訊失敗",
"31": "帳號鑒權失敗,請重新登入帳號",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index 4eeb6cdde..7e855bb4f 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -801,7 +801,7 @@
"25": "属性名仅支持英文字母和阿拉伯数字",
"26": "请先在 [设置 - 关于 - 数据仓库密钥] 中初始化数据仓库密钥",
"27": "正在上传 [%v]",
- "28": "TODO",
+ "28": "网络异常,请稍后再试",
"29": "该功能需要付费订阅(如果你已经订阅,请在 设置 - 账号中刷新或者重新登录)",
"30": "获取云端信息失败",
"31": "账号鉴权失败,请重新登录账号",
diff --git a/kernel/model/search.go b/kernel/model/search.go
index 4b30e2160..f5ca2adcc 100644
--- a/kernel/model/search.go
+++ b/kernel/model/search.go
@@ -161,7 +161,7 @@ func FindReplace(keyword, replacement string, ids []string) (err error) {
renameRootTitles[n.ID] = strings.ReplaceAll(title, keyword, replacement)
renameRoots = append(renameRoots, n)
}
- case ast.NodeText, ast.NodeLinkText, ast.NodeLinkTitle, ast.NodeCodeSpanContent, ast.NodeCodeBlockCode, ast.NodeInlineMathContent, ast.NodeMathBlockContent:
+ case ast.NodeText, ast.NodeLinkDest, ast.NodeLinkText, ast.NodeLinkTitle, ast.NodeCodeSpanContent, ast.NodeCodeBlockCode, ast.NodeInlineMathContent, ast.NodeMathBlockContent:
if bytes.Contains(n.Tokens, []byte(keyword)) {
n.Tokens = bytes.ReplaceAll(n.Tokens, []byte(keyword), []byte(replacement))
}
diff --git a/kernel/model/sync.go b/kernel/model/sync.go
index 60627b913..62f72699b 100644
--- a/kernel/model/sync.go
+++ b/kernel/model/sync.go
@@ -344,6 +344,8 @@ func formatErrorMsg(err error) string {
msg = Conf.Language(24)
} else if strings.Contains(msgLowerCase, "net/http: request canceled while waiting for connection") || strings.Contains(msgLowerCase, "exceeded while awaiting") || strings.Contains(msgLowerCase, "context deadline exceeded") {
msg = Conf.Language(24)
+ } else if strings.Contains(msgLowerCase, "connection was forcibly closed") {
+ msg = Conf.Language(28)
} else if strings.Contains(msgLowerCase, "cloud object not found") {
msg = Conf.Language(129)
}