diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json index 372a05f64..7b5e0dd5e 100644 --- a/app/appearance/langs/ar_SA.json +++ b/app/appearance/langs/ar_SA.json @@ -414,7 +414,7 @@ "confirmPassword": "لقد تذكرت كلمة المرور بالفعل", "passwordNoMatch": "كلمات المرور التي تم إدخالها مرتين غير متطابقة", "cloudConfigTip": "الرجاء التهيئة في [الإعدادات - السحابة]", - "confirmUninstall": "‫هل أنت متأكد من أنك تريد إلغاء تثبيت ${name}؟‬", + "confirmUninstall": "تأكيد إلغاء التثبيت ${name}؟
سيؤدي إلغاء التثبيت إلى حذف جميع الإعدادات والبيانات المرتبطة. يُرجى توخي الحيطة!", "scrollGetMore": "مرر لأعلى ولأسفل لتحميل المزيد", "flashcardNewCard": "جديد", "flashcardReviewCard": "قديم", diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json index e48d97034..ff4a6aa5d 100644 --- a/app/appearance/langs/de_DE.json +++ b/app/appearance/langs/de_DE.json @@ -414,7 +414,7 @@ "confirmPassword": "Ich habe das Passwort bereits gemerkt", "passwordNoMatch": "Die zweimal eingegebenen Passwörter stimmen nicht überein", "cloudConfigTip": "Bitte in [Einstellungen - Cloud] konfigurieren", - "confirmUninstall": "Sind Sie sicher, dass Sie ${name} deinstallieren möchten?", + "confirmUninstall": "Deinstallation von ${name} bestätigen?
Die Deinstallation entfernt alle zugehörigen Einstellungen und Daten. Bitte vorsichtig vorgehen!", "scrollGetMore": "Scrollen Sie nach oben und unten, um mehr zu laden", "flashcardNewCard": "Neu", "flashcardReviewCard": "Alt", diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 8099c9bb7..3ce56111d 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -414,7 +414,7 @@ "confirmPassword": "I have already remembered the password", "passwordNoMatch": "The passwords entered twice do not match", "cloudConfigTip": "Please configure in [Settings - Cloud]", - "confirmUninstall": "Are you sure you want to uninstall ${name}?", + "confirmUninstall": "Confirm uninstall of ${name}?
Uninstalling will remove all related settings and data. Proceed with caution!", "scrollGetMore": "Scroll up and down to load more", "flashcardNewCard": "New", "flashcardReviewCard": "Old", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index cdce0017b..c36785667 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -414,7 +414,7 @@ "confirmPassword": "Ya he recordado la contraseña", "passwordNoMatch": "Las contraseñas ingresadas dos veces no coinciden", "cloudConfigTip": "Configure en [Configuración - Nube]", - "confirmUninstall": "¿Está seguro de que desea desinstalar ${name}?", + "confirmUninstall": "¿Confirmar la desinstalación de ${name}?
La desinstalación eliminará todas las configuraciones y datos relacionados. ¡Proceda con precaución!", "scrollGetMore": "Desplácese hacia arriba y hacia abajo para cargar más", "flashcardNewCard": "Nueva Tarjeta", "flashcardReviewCard": "Vieja Tarjeta", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 811a78a63..c3e5c085b 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -414,7 +414,7 @@ "confirmPassword": "J'ai déjà retenu le mot de passe", "passwordNoMatch": "Les mots de passe saisis deux fois ne correspondent pas", "cloudConfigTip": "Veuillez configurer dans [Paramètres - Cloud]", - "confirmUninstall": "Êtes-vous sûr de vouloir désinstaller ${name} ?", + "confirmUninstall": "Confirmer la désinstallation de ${name} ?
La désinstallation supprimera toutes les configurations et données associées. Veuillez faire preuve de prudence !", "scrollGetMore": "Faites défiler de haut en bas pour en charger plus", "flashcardNewCard": "Nouvelle carte", "flashcardReviewCard": "Ancienne carte", diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json index fc09ee165..265c0e0d2 100644 --- a/app/appearance/langs/he_IL.json +++ b/app/appearance/langs/he_IL.json @@ -414,7 +414,7 @@ "confirmPassword": "אני כבר זוכר את הסיסמה", "passwordNoMatch": "הסיסמאות שהזנת לא תואמות", "cloudConfigTip": "אנא הגדר ב[הגדרות - ענן]", - "confirmUninstall": "האם אתה בטוח שברצונך להסיר את ${name}?", + "confirmUninstall": "לאשר הסרה של ${name}?
ההסרה תמחק את כל ההגדרות והנתונים הקשורים. יש לפעול בזהירות!", "scrollGetMore": "גלול למעלה ולמטה כדי לטעון יותר", "flashcardNewCard": "חדש", "flashcardReviewCard": "ישן", diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json index 59efc5759..f708f309a 100644 --- a/app/appearance/langs/it_IT.json +++ b/app/appearance/langs/it_IT.json @@ -414,7 +414,7 @@ "confirmPassword": "Ho già memorizzato la password", "passwordNoMatch": "Le password inserite non coincidono", "cloudConfigTip": "Configura in [Impostazioni - Cloud]", - "confirmUninstall": "Sei sicuro di voler disinstallare ${name}?", + "confirmUninstall": "Confermi la disinstallazione di ${name}?
La disinstallazione rimuoverà tutte le impostazioni e i dati correlati. Procedere con cautela!", "scrollGetMore": "Scorri su e giù per caricare di più", "flashcardNewCard": "Nuova", "flashcardReviewCard": "Vecchia", diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json index 058c54578..2855d2b6c 100644 --- a/app/appearance/langs/ja_JP.json +++ b/app/appearance/langs/ja_JP.json @@ -414,7 +414,7 @@ "confirmPassword": "パスワードはすでに覚えています", "passwordNoMatch": "入力されたパスワードが一致しません", "cloudConfigTip": "[設定] - [クラウド] で設定してください", - "confirmUninstall": "${name} をアンインストールしてもよろしいですか?", + "confirmUninstall": "本当に ${name} をアンインストールしてもよろしいですか?
アンインストールすると関連するすべての設定とデータが削除されます。ご注意ください!", "scrollGetMore": "さらに読み込むには上下にスクロールしてください", "flashcardNewCard": "新しいカード", "flashcardReviewCard": "古いカード", diff --git a/app/appearance/langs/ko_KR.json b/app/appearance/langs/ko_KR.json index d65c8e6c5..8dce7d03c 100644 --- a/app/appearance/langs/ko_KR.json +++ b/app/appearance/langs/ko_KR.json @@ -414,7 +414,7 @@ "confirmPassword": "비밀번호를 이미 기억했습니다", "passwordNoMatch": "두 번 입력한 비밀번호가 일치하지 않습니다", "cloudConfigTip": "[설정 - 클라우드]에서 구성하세요", - "confirmUninstall": "${name}을(를) 제거하시겠습니까?", + "confirmUninstall": "정말로 ${name} 을(를) 제거하시겠습니까?
제거하면 모든 관련 설정 및 데이터가 삭제됩니다. 신중하게 결정하세요!", "scrollGetMore": "위아래로 스크롤하여 더 불러오기", "flashcardNewCard": "신규", "flashcardReviewCard": "이전", diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json index b2a2b4177..146329ec6 100644 --- a/app/appearance/langs/pl_PL.json +++ b/app/appearance/langs/pl_PL.json @@ -414,7 +414,7 @@ "confirmPassword": "Zapamiętałem już hasło", "passwordNoMatch": "Wprowadzone dwa hasła się nie zgadzają", "cloudConfigTip": "Proszę skonfigurować w [Ustawienia - Chmura]", - "confirmUninstall": "Czy na pewno chcesz odinstalować ${name}?", + "confirmUninstall": "Czy na pewno odinstalować ${name}?
Odinstalowanie usunie wszystkie powiązane ustawienia i dane. Proszę zachować ostrożność!", "scrollGetMore": "Przewiń w górę i w dół, aby załadować więcej", "flashcardNewCard": "Nowa", "flashcardReviewCard": "Stara", diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json index 51c6c64e0..1a9091291 100644 --- a/app/appearance/langs/pt_BR.json +++ b/app/appearance/langs/pt_BR.json @@ -414,7 +414,7 @@ "confirmPassword": "Eu já lembrei a senha", "passwordNoMatch": "As senhas inseridas não coincidem", "cloudConfigTip": "Por favor, configure em [Configurações - Nuvem]", - "confirmUninstall": "Tem certeza que deseja desinstalar ${name}?", + "confirmUninstall": "Confirmar desinstalação de ${name}?
A desinstalação removerá todas as configurações e dados relacionados. Proceda com cautela!", "scrollGetMore": "Role para cima e para baixo para carregar mais", "flashcardNewCard": "Novo", "flashcardReviewCard": "Antigo", diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json index 128fe9505..2323229d6 100644 --- a/app/appearance/langs/ru_RU.json +++ b/app/appearance/langs/ru_RU.json @@ -414,7 +414,7 @@ "confirmPassword": "Я уже запомнил пароль", "passwordNoMatch": "Введенные два пароля не совпадают", "cloudConfigTip": "Пожалуйста, настройте в [Настройки - Облако]", - "confirmUninstall": "Вы уверены, что хотите удалить ${name}?", + "confirmUninstall": "Подтвердить удаление ${name}?
Удаление удалит все связанные настройки и данные. Пожалуйста, действуйте осторожно!", "scrollGetMore": "Прокрутите вверх и вниз, чтобы загрузить больше", "flashcardNewCard": "Новая", "flashcardReviewCard": "Старая", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 933347449..de19e686d 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -414,7 +414,7 @@ "confirmPassword": "我已經牢記密碼了", "passwordNoMatch": "兩次輸入的密碼不一致", "cloudConfigTip": "請在 [設置 - 雲端] 中進行配置", - "confirmUninstall": "確定卸載 ${name} ?", + "confirmUninstall": "確定卸載 ${name} ?
卸載會刪除所有相關設定和資料,請謹慎決定!", "scrollGetMore": "上下滾動即可加載更多內容", "flashcardNewCard": "新卡", "flashcardReviewCard": "舊卡", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index e332bb290..757f1322a 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -414,7 +414,7 @@ "confirmPassword": "我已经牢记密码了", "passwordNoMatch": "两次输入的密码不一致", "cloudConfigTip": "请在 [设置 - 云端] 中进行配置", - "confirmUninstall": "确定卸载 ${name} ?", + "confirmUninstall": "确定卸载 ${name} ?
卸载会删除所有相关配置和数据,请谨慎决定!", "scrollGetMore": "上下滚动即可加载更多内容", "flashcardNewCard": "新卡", "flashcardReviewCard": "旧卡", diff --git a/kernel/model/block.go b/kernel/model/block.go index 1eae22dcd..1425cb146 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -230,14 +230,26 @@ func GetBlockSiblingID(id string) (parent, previous, next string) { return } - if ast.NodeListItem != parentBlock.Type { - if parentBlock = treenode.ParentBlock(parentBlock); nil != parentBlock { - parent = parentBlock.ID - if ast.NodeDocument == parentBlock.Type { - parent = treenode.FirstLeafBlock(parentBlock).ID - } + parentCount := 0 + for ; nil != parentBlock; parentBlock = treenode.ParentBlock(parentBlock) { + if ast.NodeDocument == parentBlock.Type { + break } + + if ast.NodeList == parentBlock.Type || ast.NodeBlockquote == parentBlock.Type || ast.NodeSuperBlock == parentBlock.Type || ast.NodeCallout == parentBlock.Type { + parentCount++ + continue + } + + if ast.NodeListItem == parentBlock.Type { + if 1 > parentCount { + parentBlock = treenode.ParentBlock(parentBlock) + } + parentBlock = treenode.ParentBlock(parentBlock) + } + break } + parent = treenode.FirstLeafBlock(parentBlock).ID parentBlock = treenode.ParentBlock(current) for ; nil != parentBlock; parentBlock = treenode.ParentBlock(parentBlock) {