From 0dc8f1752d4f35cd38ae53d7828940823909af78 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 23 Feb 2024 23:32:23 +0800 Subject: [PATCH 1/4] :art: Candidate values of the database relation fields are no longer subject to view filtering https://github.com/siyuan-note/siyuan/issues/10411 --- kernel/av/av.go | 21 +++++++++++++++++++++ kernel/model/attribute_view.go | 8 +++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/kernel/av/av.go b/kernel/av/av.go index d3e28f377..f7f55bb2e 100644 --- a/kernel/av/av.go +++ b/kernel/av/av.go @@ -305,6 +305,27 @@ func SaveAttributeView(av *AttributeView) (err error) { } // 数据订正 + + // 值去重 + blockValues := av.GetBlockKeyValues() + blockIDs := map[string]bool{} + var duplicatedValueIDs []string + for _, blockValue := range blockValues.Values { + if !blockIDs[blockValue.BlockID] { + blockIDs[blockValue.BlockID] = true + } else { + duplicatedValueIDs = append(duplicatedValueIDs, blockValue.ID) + } + } + var tmp []*Value + for _, blockValue := range blockValues.Values { + if !gulu.Str.Contains(blockValue.ID, duplicatedValueIDs) { + tmp = append(tmp, blockValue) + } + } + blockValues.Values = tmp + + // 视图值去重 for _, view := range av.Views { if nil != view.Table { // 行去重 diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index b9795a045..70bf634d8 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -49,12 +49,18 @@ func GetAttributeViewPrimaryKeyValues(avID string, page, pageSize int) (attribut attributeViewName = attrView.Name keyValues = attrView.GetBlockKeyValues() - // 不在视图中的值要过滤掉 + // 过滤掉不在视图中的值 tmp := map[string]*av.Value{} for _, kv := range keyValues.Values { for _, view := range attrView.Views { switch view.LayoutType { case av.LayoutTypeTable: + if !kv.IsDetached { + if nil == treenode.GetBlockTree(kv.BlockID) { + break + } + } + if gulu.Str.Contains(kv.Block.ID, view.Table.RowIDs) { tmp[kv.Block.ID] = kv } From 882466e10d64c47a094859f93d1d6bb08dcf8d76 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 24 Feb 2024 10:33:00 +0800 Subject: [PATCH 2/4] :art: Flashcard support review mode https://github.com/siyuan-note/siyuan/issues/10303 --- app/appearance/langs/en_US.json | 5 +++++ app/appearance/langs/es_ES.json | 5 +++++ app/appearance/langs/fr_FR.json | 5 +++++ app/appearance/langs/zh_CHT.json | 5 +++++ app/appearance/langs/zh_CN.json | 5 +++++ app/src/config/flashcard.ts | 17 +++++++++++++++-- app/src/types/index.d.ts | 1 + kernel/conf/flashcard.go | 2 ++ kernel/model/flashcard.go | 25 ++++++++++++++++++++----- 9 files changed, 63 insertions(+), 7 deletions(-) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 85b8622d4..f0b616f82 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1,4 +1,9 @@ { + "reviewMode": "Review mode", + "reviewModeTip": "Select the order in which new and old cards appear during review", + "reviewMode0": "New and old mix", + "reviewMode1": "New first", + "reviewMode2": "Old first", "fileAnnoRefPlaceholder": "Please enter block ID", "addToDatabase": "Add to Database", "clearContext": "Clear context", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 59c25e9eb..4514ed217 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1,4 +1,9 @@ { + "reviewMode": "Modo de revisión", + "reviewModeTip": "Seleccione el orden en que aparecen las tarjetas nuevas y antiguas durante la revisión", + "reviewMode0": "Nuevo y viejo mezclado", + "reviewMode1": "Nuevo primero", + "reviewMode2": "Viejo primero", "fileAnnoRefPlaceholder": "Ingrese el ID del bloque", "addToDatabase": "Agregar a la base de datos", "clearContext": "Borrar contexto", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index b5cc7d9f1..1b2a87bcc 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1,4 +1,9 @@ { + "reviewMode": "Mode de révision", + "reviewModeTip": "Sélectionnez l'ordre dans lequel les nouvelles et anciennes cartes apparaissent lors de la révision", + "reviewMode0": "Nouveau et ancien mélange", + "reviewMode1": "Nouveau d'abord", + "reviewMode2": "Ancien d'abord", "fileAnnoRefPlaceholder": "Veuillez saisir l'ID de bloc", "addToDatabase": "Ajouter à la base de données", "clearContext": "Effacer le contexte", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 46067e612..eb478b460 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1,4 +1,9 @@ { + "reviewMode": "複習模式", + "reviewModeTip": "選擇複習時新卡和舊卡出現的順序", + "reviewMode0": "新舊混合", + "reviewMode1": "新卡優先", + "reviewMode2": "舊卡優先", "fileAnnoRefPlaceholder": "請輸入區塊 ID", "addToDatabase": "新增至資料庫", "clearContext": "清空上下文", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 7dbde13d2..42834a091 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1,4 +1,9 @@ { + "reviewMode": "复习模式", + "reviewModeTip": "选择复习时新卡和旧卡出现的顺序", + "reviewMode0": "新旧混合", + "reviewMode1": "新卡优先", + "reviewMode2": "旧卡优先", "fileAnnoRefPlaceholder": "请输入块 ID", "addToDatabase": "添加到数据库", "clearContext": "清空上下文", diff --git a/app/src/config/flashcard.ts b/app/src/config/flashcard.ts index adb80903e..5be878b04 100644 --- a/app/src/config/flashcard.ts +++ b/app/src/config/flashcard.ts @@ -42,7 +42,19 @@ export const flashcard = { -`; + +
+
+ ${window.siyuan.languages.reviewMode} +
${window.siyuan.languages.reviewModeTip}
+
+ + +
`; /// #if MOBILE responsiveHTML = `${responsiveHTML}
${window.siyuan.languages.flashcardNewCardLimit} @@ -119,9 +131,10 @@ export const flashcard = { return responsiveHTML; }, bindEvent: () => { - flashcard.element.querySelectorAll("input").forEach((item) => { + flashcard.element.querySelectorAll("input, select.b3-select").forEach((item) => { item.addEventListener("change", () => { fetchPost("/api/setting/setFlashcard", { + reviewMode: parseInt((flashcard.element.querySelector("#reviewMode") as HTMLSelectElement).value), newCardLimit: parseInt((flashcard.element.querySelector("#newCardLimit") as HTMLInputElement).value), reviewCardLimit: parseInt((flashcard.element.querySelector("#reviewCardLimit") as HTMLInputElement).value), mark: (flashcard.element.querySelector("#mark") as HTMLInputElement).checked, diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts index 0de21a661..f731dda7e 100644 --- a/app/src/types/index.d.ts +++ b/app/src/types/index.d.ts @@ -716,6 +716,7 @@ interface IConfig { superBlock: boolean heading: boolean deck: boolean + reviewMode: number requestRetention: number maximumInterval: number weights: string diff --git a/kernel/conf/flashcard.go b/kernel/conf/flashcard.go index 85e7021bd..d56bb42e2 100644 --- a/kernel/conf/flashcard.go +++ b/kernel/conf/flashcard.go @@ -30,6 +30,7 @@ type Flashcard struct { SuperBlock bool `json:"superBlock"` // 是否启用超级块制卡 https://github.com/siyuan-note/siyuan/issues/7702 Heading bool `json:"heading"` // 是否启用标题块制卡 https://github.com/siyuan-note/siyuan/issues/9005 Deck bool `json:"deck"` // 是否启用卡包制卡 https://github.com/siyuan-note/siyuan/issues/7724 + ReviewMode int `json:"reviewMode"` // 复习模式,0:新旧混合,1:新卡优先,2:旧卡优先 https://github.com/siyuan-note/siyuan/issues/10303 // Apply result optimized by FSRS optimizer https://github.com/siyuan-note/siyuan/issues/9309 RequestRetention float64 `json:"requestRetention"` @@ -55,6 +56,7 @@ func NewFlashcard() *Flashcard { SuperBlock: true, Heading: true, Deck: false, + ReviewMode: 0, RequestRetention: param.RequestRetention, MaximumInterval: int(param.MaximumInterval), Weights: weightsBuilder.String(), diff --git a/kernel/model/flashcard.go b/kernel/model/flashcard.go index 711e155ae..2ff66c32f 100644 --- a/kernel/model/flashcard.go +++ b/kernel/model/flashcard.go @@ -490,7 +490,7 @@ func GetNotebookDueFlashcards(boxID string, reviewedCardIDs []string) (ret []*Fl return } - cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, treeBlockIDs, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit) + cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, treeBlockIDs, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit, Conf.Flashcard.ReviewMode) now := time.Now() for _, card := range cards { ret = append(ret, newFlashcard(card, card.BlockID(), builtinDeckID, now)) @@ -535,7 +535,7 @@ func GetTreeDueFlashcards(rootID string, reviewedCardIDs []string) (ret []*Flash } } - cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, treeBlockIDs, newCardLimit, reviewCardLimit) + cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, treeBlockIDs, newCardLimit, reviewCardLimit, Conf.Flashcard.ReviewMode) now := time.Now() for _, card := range cards { ret = append(ret, newFlashcard(card, card.BlockID(), builtinDeckID, now)) @@ -606,7 +606,7 @@ func getDueFlashcards(deckID string, reviewedCardIDs []string) (ret []*Flashcard return } - cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, nil, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit) + cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, nil, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit, Conf.Flashcard.ReviewMode) now := time.Now() for _, card := range cards { ret = append(ret, newFlashcard(card, card.BlockID(), deckID, now)) @@ -623,7 +623,7 @@ func getDueFlashcards(deckID string, reviewedCardIDs []string) (ret []*Flashcard func getAllDueFlashcards(reviewedCardIDs []string) (ret []*Flashcard, unreviewedCount, unreviewedNewCardCount, unreviewedOldCardCount int) { now := time.Now() for _, deck := range Decks { - cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, nil, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit) + cards, unreviewedCnt, unreviewedNewCardCnt, unreviewedOldCardCnt := getDeckDueCards(deck, reviewedCardIDs, nil, Conf.Flashcard.NewCardLimit, Conf.Flashcard.ReviewCardLimit, Conf.Flashcard.ReviewMode) unreviewedCount += unreviewedCnt unreviewedNewCardCount += unreviewedNewCardCnt unreviewedOldCardCount += unreviewedOldCardCnt @@ -988,8 +988,10 @@ func getDeckIDs() (deckIDs []string) { return } -func getDeckDueCards(deck *riff.Deck, reviewedCardIDs, blockIDs []string, newCardLimit, reviewCardLimit int) (ret []riff.Card, unreviewedCount, unreviewedNewCardCountInRound, unreviewedOldCardCountInRound int) { +func getDeckDueCards(deck *riff.Deck, reviewedCardIDs, blockIDs []string, newCardLimit, reviewCardLimit, reviewMode int) (ret []riff.Card, unreviewedCount, unreviewedNewCardCountInRound, unreviewedOldCardCountInRound int) { ret = []riff.Card{} + var retNew, retOld []riff.Card + dues := deck.Dues() var tmp []riff.Card @@ -1060,15 +1062,28 @@ func getDeckDueCards(deck *riff.Deck, reviewedCardIDs, blockIDs []string, newCar } newCount++ + retNew = append(retNew, c) } else { if reviewCount >= reviewCardLimit { continue } reviewCount++ + retOld = append(retOld, c) } ret = append(ret, c) } + + switch reviewMode { + case 1: // 优先复习新卡 + ret = nil + ret = append(ret, retNew...) + ret = append(ret, retOld...) + case 2: // 优先复习旧卡 + ret = nil + ret = append(ret, retOld...) + ret = append(ret, retNew...) + } return } From 325e3f33e7bf0f8c83b6d7f21f159a1122d97c1f Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 24 Feb 2024 10:41:01 +0800 Subject: [PATCH 3/4] :memo: Update Flashcard related text: Review card -> Old card --- app/appearance/langs/en_US.json | 6 +++--- app/appearance/langs/es_ES.json | 6 +++--- app/appearance/langs/fr_FR.json | 6 +++--- app/appearance/langs/zh_CHT.json | 6 +++--- app/appearance/langs/zh_CN.json | 6 +++--- .../20210808180303-xaduj2o/20221223221636-ms2b4w9.sy | 6 +++--- .../20210808180321-hbvl5c2/20221223215557-o6gfsoy.sy | 6 +++--- .../20211226121203-rjjngpz/20221223221501-mops33i.sy | 6 +++--- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index f0b616f82..3ea085aea 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -219,7 +219,7 @@ "confirmUninstall": "Are you sure you want to uninstall ${name}?", "scrollGetMore": "Don't panic... scroll up and down to load more", "flashcardNewCard": "New", - "flashcardReviewCard": "Review", + "flashcardReviewCard": "Old", "flashcardDueCard": "Due", "flashcardCard": "Total", "plugin": "Plugin", @@ -248,8 +248,8 @@ "nextDue": "Next Due", "flashcardNewCardLimit": "New Card Limit", "flashcardNewCardLimitTip": "If there are many new cards, you can set the number of new cards to review through this item", - "flashcardReviewCardLimit": "Review Card Limit", - "flashcardReviewCardLimitTip": "If there are many review cards, you can set the number of review through this item", + "flashcardReviewCardLimit": "Old Card Limit", + "flashcardReviewCardLimitTip": "If there are many old cards, you can set the number of old cards to review through this item", "flashcardMark": "Mark Carding", "flashcardMarkTip": "After enabling, the mark is recognized as fill in the blank", "flashcardList": "List Carding", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 4514ed217..eda140214 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -219,7 +219,7 @@ "confirmUninstall": "¿Está seguro de que desea desinstalar ${name}?", "scrollGetMore": "No se asuste... desplácese hacia arriba y hacia abajo para cargar más", "flashcardNewCard": "Nueva Tarjeta", - "flashcardReviewCard": "Revisar Tarjeta", + "flashcardReviewCard": "Vieja Tarjeta", "flashcardDueCard": "Tarjeta debida", "flashcardCard": "Todos", "plugin": "Complemento", @@ -248,8 +248,8 @@ "nextDue": "Revisa la próxima vez", "flashcardNewCardLimit": "Límite de tarjeta nueva", "flashcardNewCardLimitTip": "Si hay muchas tarjetas nuevas, puede establecer la cantidad de tarjetas nuevas para revisar a través de este elemento", - "flashcardReviewCardLimit": "Revisar límite de tarjeta", - "flashcardReviewCardLimitTip": "Si hay muchas tarjetas de revisión, puede establecer el número de revisión a través de este elemento", + "flashcardReviewCardLimit": "Límite de tarjeta antigua", + "flashcardReviewCardLimitTip": "Si hay muchas tarjetas antiguas, puede configurar la cantidad de reseñas a través de este elemento", "flashcardMark": "Marcar cardado", "flashcardMarkTip": "Después de habilitar, la marca se reconoce como un espacio en blanco", "flashcardList": "Lista de tarjetas", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 1b2a87bcc..aa8db66e9 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -219,7 +219,7 @@ "confirmUninstall": "Êtes-vous sûr de vouloir désinstaller ${name} ?", "scrollGetMore": "Ne paniquez pas... faites défiler de haut en bas pour en charger plus", "flashcardNewCard": "Nouvelle carte", - "flashcardReviewCard": "Revoir la carte", + "flashcardReviewCard": "Ancienne carte", "flashcardDueCard": "Carte due", "flashcardCard": "Tous", "plugin": "Plugin", @@ -248,8 +248,8 @@ "nextDue": "Revoir la prochaine fois", "flashcardNewCardLimit": "Nouvelle limite de carte", "flashcardNewCardLimitTip": "S'il y a beaucoup de nouvelles cartes, vous pouvez définir le nombre de nouvelles cartes à examiner via cet élément", - "flashcardReviewCardLimit": "Revoir la limite de la carte", - "flashcardReviewCardLimitTip": "S'il y a plusieurs cartes d'avis, vous pouvez définir le nombre d'avis via cet élément", + "flashcardReviewCardLimit": "Ancienne limite de carte", + "flashcardReviewCardLimitTip": "S'il existe de nombreuses anciennes cartes, vous pouvez définir le nombre d'avis via cet élément", "flashcardMark": "Carte de marque", "flashcardMarkTip": "Après l'activation, la marque est reconnue comme remplissant le blanc", "flashcardList": "Fiche de liste", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index eb478b460..ad49fd912 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -219,7 +219,7 @@ "confirmUninstall": "確定卸載 ${name} ?", "scrollGetMore": "不要驚慌...上下滾動即可加載更多內容", "flashcardNewCard": "新卡", - "flashcardReviewCard": "複習卡", + "flashcardReviewCard": "舊卡", "flashcardDueCard": "到期卡", "flashcardCard": "所有", "plugin": "插件", @@ -248,8 +248,8 @@ "nextDue": "下次複習", "flashcardNewCardLimit": "新卡上限", "flashcardNewCardLimitTip": "如果新卡較多,可以通過該項設置新卡複習的數量", - "flashcardReviewCardLimit": "復習卡上限", - "flashcardReviewCardLimitTip": "如果復習卡較多,可以通過該項設置復習的數量", + "flashcardReviewCardLimit": "舊卡上限", + "flashcardReviewCardLimitTip": "如果舊卡較多,可以通過該項設置復習的數量", "flashcardMark": "標記制卡", "flashcardMarkTip": "啟用後支持標記制卡,標記的文字被識別為挖空填空", "flashcardList": "列表塊制卡", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 42834a091..8dbbda991 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -219,7 +219,7 @@ "confirmUninstall": "确定卸载 ${name} ?", "scrollGetMore": "不要惊慌...上下滚动即可加载更多内容", "flashcardNewCard": "新卡", - "flashcardReviewCard": "复习卡", + "flashcardReviewCard": "旧卡", "flashcardDueCard": "到期卡", "flashcardCard": "所有", "plugin": "插件", @@ -248,8 +248,8 @@ "nextDue": "下次复习", "flashcardNewCardLimit": "新卡上限", "flashcardNewCardLimitTip": "如果新卡较多,可以通过该项设置新卡复习的数量", - "flashcardReviewCardLimit": "复习卡上限", - "flashcardReviewCardLimitTip": "如果复习卡较多,可以通过该项设置复习的数量", + "flashcardReviewCardLimit": "旧卡上限", + "flashcardReviewCardLimitTip": "如果旧卡较多,可以通过该项设置复习的数量", "flashcardMark": "标记制卡", "flashcardMarkTip": "启用后支持标记制卡,标记的文本被识别为挖空填空", "flashcardList": "列表块制卡", diff --git a/app/guide/20210808180117-6v0mkxr/20200923234011-ieuun1p/20210808180303-xaduj2o/20221223221636-ms2b4w9.sy b/app/guide/20210808180117-6v0mkxr/20200923234011-ieuun1p/20210808180303-xaduj2o/20221223221636-ms2b4w9.sy index 23c8c2aa4..ab52f1c24 100644 --- a/app/guide/20210808180117-6v0mkxr/20200923234011-ieuun1p/20210808180303-xaduj2o/20221223221636-ms2b4w9.sy +++ b/app/guide/20210808180117-6v0mkxr/20200923234011-ieuun1p/20210808180303-xaduj2o/20221223221636-ms2b4w9.sy @@ -6,7 +6,7 @@ "icon": "1f4f8", "id": "20221223221636-ms2b4w9", "title": "Flashcards", - "updated": "20240128113415" + "updated": "20240224103857" }, "Children": [ { @@ -539,7 +539,7 @@ "Type": "NodeParagraph", "Properties": { "id": "20240128112016-je04b7i", - "updated": "20240128112236" + "updated": "20240224103857" }, "Children": [ { @@ -576,7 +576,7 @@ { "Type": "NodeTextMark", "TextMarkType": "kbd", - "TextMarkTextContent": "Review Card Limit" + "TextMarkTextContent": "Old Card Limit" }, { "Type": "NodeText", diff --git a/app/guide/20210808180117-czj9bvb/20200812220555-lj3enxa/20210808180321-hbvl5c2/20221223215557-o6gfsoy.sy b/app/guide/20210808180117-czj9bvb/20200812220555-lj3enxa/20210808180321-hbvl5c2/20221223215557-o6gfsoy.sy index d6103dd77..1e805cd67 100644 --- a/app/guide/20210808180117-czj9bvb/20200812220555-lj3enxa/20210808180321-hbvl5c2/20221223215557-o6gfsoy.sy +++ b/app/guide/20210808180117-czj9bvb/20200812220555-lj3enxa/20210808180321-hbvl5c2/20221223215557-o6gfsoy.sy @@ -6,7 +6,7 @@ "icon": "1f4f8", "id": "20221223215557-o6gfsoy", "title": "闪卡", - "updated": "20240128112938" + "updated": "20240224103816" }, "Children": [ { @@ -535,7 +535,7 @@ "Type": "NodeParagraph", "Properties": { "id": "20240128110950-exhbssa", - "updated": "20240128111232" + "updated": "20240224103816" }, "Children": [ { @@ -572,7 +572,7 @@ { "Type": "NodeTextMark", "TextMarkType": "kbd", - "TextMarkTextContent": "复习卡上限" + "TextMarkTextContent": "旧卡上限" }, { "Type": "NodeText", diff --git a/app/guide/20211226090932-5lcq56f/20211226115423-d5z1joq/20211226121203-rjjngpz/20221223221501-mops33i.sy b/app/guide/20211226090932-5lcq56f/20211226115423-d5z1joq/20211226121203-rjjngpz/20221223221501-mops33i.sy index 3ee83211a..4dda181b7 100644 --- a/app/guide/20211226090932-5lcq56f/20211226115423-d5z1joq/20211226121203-rjjngpz/20221223221501-mops33i.sy +++ b/app/guide/20211226090932-5lcq56f/20211226115423-d5z1joq/20211226121203-rjjngpz/20221223221501-mops33i.sy @@ -6,7 +6,7 @@ "icon": "1f4f8", "id": "20221223221501-mops33i", "title": "閃卡", - "updated": "20240128113519" + "updated": "20240224103933" }, "Children": [ { @@ -535,7 +535,7 @@ "Type": "NodeParagraph", "Properties": { "id": "20240128111910-2n2j702", - "updated": "20240128111941" + "updated": "20240224103933" }, "Children": [ { @@ -572,7 +572,7 @@ { "Type": "NodeTextMark", "TextMarkType": "kbd", - "TextMarkTextContent": "複習卡上限" + "TextMarkTextContent": "舊卡上限" }, { "Type": "NodeText", From 4e343e4125872fa79da7cdc70f0ba5ac4341df56 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 24 Feb 2024 10:42:54 +0800 Subject: [PATCH 4/4] :memo: Update Flashcard related text: Review card -> Old card --- app/appearance/langs/es_ES.json | 2 +- app/appearance/langs/fr_FR.json | 2 +- app/appearance/langs/zh_CHT.json | 2 +- app/appearance/langs/zh_CN.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index eda140214..cc9c44333 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -249,7 +249,7 @@ "flashcardNewCardLimit": "Límite de tarjeta nueva", "flashcardNewCardLimitTip": "Si hay muchas tarjetas nuevas, puede establecer la cantidad de tarjetas nuevas para revisar a través de este elemento", "flashcardReviewCardLimit": "Límite de tarjeta antigua", - "flashcardReviewCardLimitTip": "Si hay muchas tarjetas antiguas, puede configurar la cantidad de reseñas a través de este elemento", + "flashcardReviewCardLimitTip": "Si hay muchas tarjetas antiguas, puede configurar la cantidad de tarjetas antiguas para revisar a través de este elemento", "flashcardMark": "Marcar cardado", "flashcardMarkTip": "Después de habilitar, la marca se reconoce como un espacio en blanco", "flashcardList": "Lista de tarjetas", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index aa8db66e9..29ead4854 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -249,7 +249,7 @@ "flashcardNewCardLimit": "Nouvelle limite de carte", "flashcardNewCardLimitTip": "S'il y a beaucoup de nouvelles cartes, vous pouvez définir le nombre de nouvelles cartes à examiner via cet élément", "flashcardReviewCardLimit": "Ancienne limite de carte", - "flashcardReviewCardLimitTip": "S'il existe de nombreuses anciennes cartes, vous pouvez définir le nombre d'avis via cet élément", + "flashcardReviewCardLimitTip": "S'il y a beaucoup d'anciennes cartes, vous pouvez définir le nombre d'anciennes cartes à examiner via cet élément", "flashcardMark": "Carte de marque", "flashcardMarkTip": "Après l'activation, la marque est reconnue comme remplissant le blanc", "flashcardList": "Fiche de liste", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index ad49fd912..a3556f762 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -249,7 +249,7 @@ "flashcardNewCardLimit": "新卡上限", "flashcardNewCardLimitTip": "如果新卡較多,可以通過該項設置新卡複習的數量", "flashcardReviewCardLimit": "舊卡上限", - "flashcardReviewCardLimitTip": "如果舊卡較多,可以通過該項設置復習的數量", + "flashcardReviewCardLimitTip": "如果舊卡較多,可以通過該項設置舊卡復習的數量", "flashcardMark": "標記制卡", "flashcardMarkTip": "啟用後支持標記制卡,標記的文字被識別為挖空填空", "flashcardList": "列表塊制卡", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 8dbbda991..15309682b 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -249,7 +249,7 @@ "flashcardNewCardLimit": "新卡上限", "flashcardNewCardLimitTip": "如果新卡较多,可以通过该项设置新卡复习的数量", "flashcardReviewCardLimit": "旧卡上限", - "flashcardReviewCardLimitTip": "如果旧卡较多,可以通过该项设置复习的数量", + "flashcardReviewCardLimitTip": "如果旧卡较多,可以通过该项设置旧卡复习的数量", "flashcardMark": "标记制卡", "flashcardMarkTip": "启用后支持标记制卡,标记的文本被识别为挖空填空", "flashcardList": "列表块制卡",