mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 15:32:23 -04:00
Add help entries for FSRS options
This commit is contained in:
parent
bfe340c163
commit
6e177851cc
3 changed files with 95 additions and 6 deletions
|
@ -342,6 +342,48 @@ deck-config-estimated-retention = Estimated retention: { $num }
|
||||||
deck-config-complete = { $num }% complete.
|
deck-config-complete = { $num }% complete.
|
||||||
deck-config-reschedule-cards-on-change = Reschedule cards on change
|
deck-config-reschedule-cards-on-change = Reschedule cards on change
|
||||||
|
|
||||||
|
deck-config-fsrs-tooltip =
|
||||||
|
The Free Spaced Repetition Scheduler (FSRS) is an alternative to Anki's legacy SuperMemo 2 (SM2) scheduler.
|
||||||
|
By more accurately determining when you are likely to forget, it can help you remember
|
||||||
|
more material in the same amount of time. This setting is shared by all deck presets.
|
||||||
|
deck-config-desired-retention-tooltip =
|
||||||
|
The default value of 0.9 will schedule cards so you have a 90% chance of remembering them when
|
||||||
|
they come up for review again. If you increase this value, Anki will show cards more frequently
|
||||||
|
to increase the chances of you remembering them. If you decrease the value, Anki will show cards
|
||||||
|
less frequently, and you will forget more of them. Be conservative when adjusting this - higher
|
||||||
|
values will greatly increase your workload, and lower values can be demoralizing when you forget
|
||||||
|
a lot of material.
|
||||||
|
deck-config-sm2-retention-tooltip =
|
||||||
|
If your actual retention before switching to FSRS was significantly different from 0.9, adjusting
|
||||||
|
this value will allow Anki to better estimate your memory state when it encounters cards that are
|
||||||
|
missing review logs. Since review logs typically won't be missing unless you explicitly deleted them
|
||||||
|
to free up space, most users will not need to adjust this.
|
||||||
|
deck-config-weights-tooltip =
|
||||||
|
Model weights affect how cards are scheduled. Once you've accumulated 1000+ reviews, you can optimize
|
||||||
|
the weights below.
|
||||||
|
deck-config-reschedule-cards-on-change-tooltip =
|
||||||
|
This option controls whether the due dates of cards will be changed when you enable FSRS, or change
|
||||||
|
the weights. The default is not to reschedule cards: future reviews will use the new scheduling, but
|
||||||
|
there will be no immediate change to your workload. If rescheduling is enabled, the due dates of cards
|
||||||
|
will be changed. Depending on your desired retention, this can result in a large number of cards becoming
|
||||||
|
due, so is not recommended when first switching from SM2.
|
||||||
|
deck-config-compute-optimal-weights-tooltip =
|
||||||
|
Once you've done 1000+ reviews in Anki, you can use the Optimize button to analyze your review history,
|
||||||
|
and automatically generate weights that are optimal for your memory and the content you're studying.
|
||||||
|
If you have decks that vary wildly in difficulty, it is recommended to assign them separate presets, as
|
||||||
|
the weights for easy decks and hard decks will be different. There is no need to optimize your weights
|
||||||
|
frequently - once every few months is sufficient.
|
||||||
|
|
||||||
|
By default, weights will be calculated from the review history of all decks using the current preset. You can
|
||||||
|
optionally adjust the search before calculating the weights, if you'd like to alter which cards are used for
|
||||||
|
optimizing the weights.
|
||||||
|
deck-config-compute-optimal-retention-tooltip =
|
||||||
|
This tool assumes you're starting with 0 cards, and will attempt to calculate the amount of material you'll
|
||||||
|
be able to retain in the given time frame. The estimated retention will greatly depend on your inputs, and
|
||||||
|
if it significantly differs from 0.9, it's a sign that the time you've allocated each day is either too low
|
||||||
|
or too high for the amount of cards you're trying to learn. This number can be useful as a reference, but it
|
||||||
|
is not recommended to copy it into the desired retention field.
|
||||||
|
|
||||||
## NO NEED TO TRANSLATE. This text is no longer used by Anki, and will be removed in the future.
|
## NO NEED TO TRANSLATE. This text is no longer used by Anki, and will be removed in the future.
|
||||||
|
|
||||||
deck-config-bury-siblings = Bury siblings
|
deck-config-bury-siblings = Bury siblings
|
||||||
|
|
|
@ -31,11 +31,46 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
const fsrs = state.fsrs;
|
const fsrs = state.fsrs;
|
||||||
|
|
||||||
const settings = {
|
const settings = {
|
||||||
|
fsrs: {
|
||||||
|
title: "FSRS",
|
||||||
|
help: tr.deckConfigFsrsTooltip(),
|
||||||
|
sched: HelpItemScheduler.FSRS,
|
||||||
|
},
|
||||||
maximumInterval: {
|
maximumInterval: {
|
||||||
title: tr.schedulingMaximumInterval(),
|
title: tr.schedulingMaximumInterval(),
|
||||||
help: tr.deckConfigMaximumIntervalTooltip(),
|
help: tr.deckConfigMaximumIntervalTooltip(),
|
||||||
url: HelpPage.DeckOptions.maximumInterval,
|
url: HelpPage.DeckOptions.maximumInterval,
|
||||||
},
|
},
|
||||||
|
desiredRetention: {
|
||||||
|
title: tr.deckConfigDesiredRetention(),
|
||||||
|
help: tr.deckConfigDesiredRetentionTooltip(),
|
||||||
|
sched: HelpItemScheduler.FSRS,
|
||||||
|
},
|
||||||
|
sm2Retention: {
|
||||||
|
title: tr.deckConfigSm2Retention(),
|
||||||
|
help: tr.deckConfigSm2RetentionTooltip(),
|
||||||
|
sched: HelpItemScheduler.FSRS,
|
||||||
|
},
|
||||||
|
modelWeights: {
|
||||||
|
title: tr.deckConfigWeights(),
|
||||||
|
help: tr.deckConfigWeightsTooltip(),
|
||||||
|
sched: HelpItemScheduler.FSRS,
|
||||||
|
},
|
||||||
|
rescheduleCardsOnChange: {
|
||||||
|
title: tr.deckConfigRescheduleCardsOnChange(),
|
||||||
|
help: tr.deckConfigRescheduleCardsOnChangeTooltip(),
|
||||||
|
sched: HelpItemScheduler.FSRS,
|
||||||
|
},
|
||||||
|
computeOptimalWeights: {
|
||||||
|
title: tr.deckConfigComputeOptimalWeights(),
|
||||||
|
help: tr.deckConfigComputeOptimalWeightsTooltip(),
|
||||||
|
sched: HelpItemScheduler.FSRS,
|
||||||
|
},
|
||||||
|
computeOptimalRetention: {
|
||||||
|
title: tr.deckConfigComputeOptimalRetention(),
|
||||||
|
help: tr.deckConfigComputeOptimalRetentionTooltip(),
|
||||||
|
sched: HelpItemScheduler.FSRS,
|
||||||
|
},
|
||||||
startingEase: {
|
startingEase: {
|
||||||
title: tr.schedulingStartingEase(),
|
title: tr.schedulingStartingEase(),
|
||||||
help: tr.deckConfigStartingEaseTooltip(),
|
help: tr.deckConfigStartingEaseTooltip(),
|
||||||
|
@ -101,7 +136,12 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
{#if state.v3Scheduler}
|
{#if state.v3Scheduler}
|
||||||
<Item>
|
<Item>
|
||||||
<SwitchRow bind:value={$fsrs} defaultValue={false}>
|
<SwitchRow bind:value={$fsrs} defaultValue={false}>
|
||||||
<SettingTitle>FSRS</SettingTitle>
|
<SettingTitle
|
||||||
|
on:click={() =>
|
||||||
|
openHelpModal(Object.keys(settings).indexOf("fsrs"))}
|
||||||
|
>
|
||||||
|
FSRS
|
||||||
|
</SettingTitle>
|
||||||
</SwitchRow>
|
</SwitchRow>
|
||||||
</Item>
|
</Item>
|
||||||
|
|
||||||
|
@ -210,7 +250,11 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
</SpinBoxFloatRow>
|
</SpinBoxFloatRow>
|
||||||
</Item>
|
</Item>
|
||||||
{:else}
|
{:else}
|
||||||
<FsrsOptions {state} />
|
<FsrsOptions
|
||||||
|
{state}
|
||||||
|
openHelpModal={(key) =>
|
||||||
|
openHelpModal(Object.keys(settings).indexOf(key))}
|
||||||
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{#if state.v3Scheduler}
|
{#if state.v3Scheduler}
|
||||||
|
|
|
@ -25,6 +25,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
import WeightsInputRow from "./WeightsInputRow.svelte";
|
import WeightsInputRow from "./WeightsInputRow.svelte";
|
||||||
|
|
||||||
export let state: DeckOptionsState;
|
export let state: DeckOptionsState;
|
||||||
|
export let openHelpModal: (String) => void;
|
||||||
|
|
||||||
const presetName = state.currentPresetName;
|
const presetName = state.currentPresetName;
|
||||||
|
|
||||||
|
@ -202,7 +203,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
min={0.7}
|
min={0.7}
|
||||||
max={0.97}
|
max={0.97}
|
||||||
>
|
>
|
||||||
<SettingTitle>
|
<SettingTitle on:click={() => openHelpModal("desiredRetention")}>
|
||||||
{tr.deckConfigDesiredRetention()}
|
{tr.deckConfigDesiredRetention()}
|
||||||
</SettingTitle>
|
</SettingTitle>
|
||||||
</SpinBoxFloatRow>
|
</SpinBoxFloatRow>
|
||||||
|
@ -213,7 +214,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
min={0.7}
|
min={0.7}
|
||||||
max={0.97}
|
max={0.97}
|
||||||
>
|
>
|
||||||
<SettingTitle>
|
<SettingTitle on:click={() => openHelpModal("sm2Retention")}>
|
||||||
{tr.deckConfigSm2Retention()}
|
{tr.deckConfigSm2Retention()}
|
||||||
</SettingTitle>
|
</SettingTitle>
|
||||||
</SpinBoxFloatRow>
|
</SpinBoxFloatRow>
|
||||||
|
@ -224,13 +225,15 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
defaultValue={[]}
|
defaultValue={[]}
|
||||||
defaults={defaults.fsrsWeights}
|
defaults={defaults.fsrsWeights}
|
||||||
>
|
>
|
||||||
<SettingTitle>{tr.deckConfigWeights()}</SettingTitle>
|
<SettingTitle on:click={() => openHelpModal("modelWeights")}>
|
||||||
|
{tr.deckConfigWeights()}
|
||||||
|
</SettingTitle>
|
||||||
</WeightsInputRow>
|
</WeightsInputRow>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="m-2">
|
<div class="m-2">
|
||||||
<SwitchRow bind:value={$config.rescheduleFsrsCards} defaultValue={false}>
|
<SwitchRow bind:value={$config.rescheduleFsrsCards} defaultValue={false}>
|
||||||
<SettingTitle>
|
<SettingTitle on:click={() => openHelpModal("rescheduleCardsOnChange")}>
|
||||||
{tr.deckConfigRescheduleCardsOnChange()}
|
{tr.deckConfigRescheduleCardsOnChange()}
|
||||||
</SettingTitle>
|
</SettingTitle>
|
||||||
</SwitchRow>
|
</SwitchRow>
|
||||||
|
|
Loading…
Reference in a new issue