move v3 options into separate section; more description/section tweaks
This commit is contained in:
parent
10aa897674
commit
93ace8b96e
@ -23,10 +23,13 @@ deck-config-new-limit-tooltip =
|
||||
deck-config-review-limit-tooltip =
|
||||
The maximum number of review cards to show in a day,
|
||||
if cards are ready for review.
|
||||
deck-config-limit-deck-v3 =
|
||||
When studying a deck that has subdecks inside it, the limits set on each
|
||||
subdeck control the maximum number of cards drawn from that particular deck.
|
||||
The selected deck's limits control the total cards that will be shown.
|
||||
|
||||
## Learning section
|
||||
## New Cards section
|
||||
|
||||
deck-config-learning-title = Learning
|
||||
deck-config-learning-steps = Learning steps
|
||||
# Please don't translate `5m` or `2d`
|
||||
-deck-config-delay-hint = Delays can be in minutes (eg `5m`), or days (eg `2d`).
|
||||
@ -36,14 +39,6 @@ deck-config-learning-steps-tooltip =
|
||||
The `Good` button will advance to the next step, which is 10 minutes by default.
|
||||
Once all steps have been passed, the card will become a review card, and
|
||||
will appear on a different day. { -deck-config-delay-hint }
|
||||
deck-config-interday-step-priority = Interday step priority
|
||||
deck-config-interday-step-priority-tooltip = When to show (re)learning cards that cross a day boundary.
|
||||
deck-config-review-mix-mix-with-reviews = Mix with reviews
|
||||
deck-config-review-mix-show-after-reviews = Show after reviews
|
||||
deck-config-review-mix-show-before-reviews = Show before reviews
|
||||
|
||||
## New Cards section
|
||||
|
||||
deck-config-graduating-interval-tooltip =
|
||||
The number of days to wait before showing a card again, after the `Good` button
|
||||
is pressed on the final learning step.
|
||||
@ -53,48 +48,10 @@ deck-config-easy-interval-tooltip =
|
||||
deck-config-new-insertion-order = Insertion order
|
||||
deck-config-new-insertion-order-tooltip =
|
||||
Controls the position (due #) new cards are assigned when you add new cards.
|
||||
Cards with a lower due # will be shown first when studying. Changing this
|
||||
option will automatically update the existing position of new cards.
|
||||
Cards with a lower due number will be shown first when studying. Changing
|
||||
this option will automatically update the existing position of new cards.
|
||||
deck-config-new-insertion-order-sequential = Sequential (oldest cards first)
|
||||
deck-config-new-insertion-order-random = Random
|
||||
deck-config-new-gather-priority = Gather priority
|
||||
deck-config-new-gather-priority-tooltip =
|
||||
`Deck`: gathers cards from each subdeck in order, and stops when the
|
||||
limit of the selected deck has been exceeded. This is faster, and allows you
|
||||
to prioritize subdecks that are closer to the top.
|
||||
|
||||
`Position`: gathers cards from all decks before they are sorted. This
|
||||
ensures the oldest cards will be shown first, even if the parent limit is
|
||||
not high enough to see cards from all decks.
|
||||
deck-config-new-gather-priority-deck = Deck
|
||||
deck-config-new-gather-priority-position = Position
|
||||
deck-config-sort-order = Sort order
|
||||
deck-config-sort-order-tooltip =
|
||||
This option controls how cards are sorted after they have been gathered.
|
||||
By default, Anki sorts by card template first, to avoid multiple cards of
|
||||
the same note from being shown in succession.
|
||||
deck-config-sort-order-card-template-then-position = Card template, then position
|
||||
deck-config-sort-order-card-template-then-random = Card template, then random
|
||||
deck-config-sort-order-position = Position (siblings together)
|
||||
deck-config-sort-order-random = Random
|
||||
deck-config-review-priority = Review priority
|
||||
deck-config-review-priority-tooltip = When to show these cards in relation to review cards.
|
||||
|
||||
## Review section
|
||||
|
||||
deck-config-review-sort-order-tooltip =
|
||||
The default order fetches cards from each subdeck in turn, stopping when the limit
|
||||
of the selected deck has been reached. The gathered cards are then shuffled together,
|
||||
and shown in due date order. Because gathering stops when the parent limit has been
|
||||
reached, your child decks should have smaller limits if you wish to see cards from
|
||||
multiple decks at once.
|
||||
|
||||
The other sort options are mainly useful when catching up from a large backlog.
|
||||
Because they have to sort all the cards first, they can be considerably slower
|
||||
than the default sort order when many cards are due.
|
||||
deck-config-sort-order-due-date-then-random = Due date, then random
|
||||
deck-config-sort-order-ascending-intervals = Ascending intervals
|
||||
deck-config-sort-order-descending-intervals = Descending intervals
|
||||
|
||||
## Lapses section
|
||||
|
||||
@ -118,12 +75,53 @@ deck-config-leech-action-tooltip =
|
||||
|
||||
## Burying section
|
||||
|
||||
deck-config-bury-title = Burying
|
||||
deck-config-bury-new-siblings = Bury new siblings until the next day
|
||||
deck-config-bury-review-siblings = Bury review siblings until the next day
|
||||
deck-config-bury-tooltip =
|
||||
Whether other cards of the same note (eg reverse cards, adjacent
|
||||
cloze deletions) will be delayed until the next day.
|
||||
|
||||
## Ordering section
|
||||
|
||||
deck-config-ordering-title = Display Order
|
||||
deck-config-new-gather-priority = New card gather priority
|
||||
deck-config-new-gather-priority-tooltip =
|
||||
`Deck`: gathers cards from each subdeck in order, and stops when the
|
||||
limit of the selected deck has been exceeded. This is faster, and allows you
|
||||
to prioritize subdecks that are closer to the top.
|
||||
|
||||
`Position`: gathers cards from all decks before they are sorted. This
|
||||
ensures the oldest cards will be shown first, even if the parent limit is
|
||||
not high enough to see cards from all decks.
|
||||
deck-config-new-gather-priority-deck = Deck
|
||||
deck-config-new-gather-priority-position = Position
|
||||
deck-config-new-card-sort-order = New card sort order
|
||||
deck-config-new-card-sort-order-tooltip =
|
||||
How cards are sorted after they have been gathered. By default, Anki sorts
|
||||
by card template first, to avoid multiple cards of the same note from being
|
||||
shown in succession.
|
||||
deck-config-sort-order-card-template-then-position = Card template, then position
|
||||
deck-config-sort-order-card-template-then-random = Card template, then random
|
||||
deck-config-sort-order-position = Position (siblings together)
|
||||
deck-config-sort-order-random = Random
|
||||
deck-config-new-review-priority = New/review priority
|
||||
deck-config-new-review-priority-tooltip = When to show new cards in relation to review cards.
|
||||
deck-config-interday-step-priority = Interday learning/review priority
|
||||
deck-config-interday-step-priority-tooltip = When to show (re)learning cards that cross a day boundary.
|
||||
deck-config-review-mix-mix-with-reviews = Mix with reviews
|
||||
deck-config-review-mix-show-after-reviews = Show after reviews
|
||||
deck-config-review-mix-show-before-reviews = Show before reviews
|
||||
deck-config-review-sort-order = Review sort order
|
||||
deck-config-review-sort-order-tooltip =
|
||||
The default order prioritizes cards that have been waiting longest, so that
|
||||
if you have a backlog of reviews, the longest-waiting ones will appear
|
||||
first. If you have a large backlog that will take more than a few days to
|
||||
clear, you may find the alternate sort orders preferable.
|
||||
deck-config-sort-order-due-date-then-random = Due date, then random
|
||||
deck-config-sort-order-ascending-intervals = Ascending intervals
|
||||
deck-config-sort-order-descending-intervals = Descending intervals
|
||||
|
||||
## Timer section
|
||||
|
||||
deck-config-timer-title = Timer
|
||||
|
27
ts/deckoptions/BuryOptions.svelte
Normal file
27
ts/deckoptions/BuryOptions.svelte
Normal file
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
Copyright: Ankitects Pty Ltd and contributors
|
||||
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
-->
|
||||
<script lang="ts">
|
||||
import * as tr from "lib/i18n";
|
||||
import CheckBox from "./CheckBox.svelte";
|
||||
import type { DeckOptionsState } from "./lib";
|
||||
|
||||
export let state: DeckOptionsState;
|
||||
let config = state.currentConfig;
|
||||
let defaults = state.defaults;
|
||||
</script>
|
||||
|
||||
<h2>{tr.deckConfigBuryTitle()}</h2>
|
||||
|
||||
<CheckBox
|
||||
label={tr.deckConfigBuryNewSiblings()}
|
||||
tooltip={tr.deckConfigBuryTooltip()}
|
||||
defaultValue={defaults.buryNew}
|
||||
bind:value={$config.buryNew} />
|
||||
|
||||
<CheckBox
|
||||
label={tr.deckConfigBuryReviewSiblings()}
|
||||
tooltip={tr.deckConfigBuryTooltip()}
|
||||
defaultValue={defaults.buryReviews}
|
||||
bind:value={$config.buryReviews} />
|
@ -4,10 +4,10 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
-->
|
||||
<script lang="ts">
|
||||
import DailyLimits from "./DailyLimits.svelte";
|
||||
import LearningOptions from "./LearningOptions.svelte";
|
||||
import DisplayOrder from "./DisplayOrder.svelte";
|
||||
import NewOptions from "./NewOptions.svelte";
|
||||
import AdvancedOptions from "./AdvancedOptions.svelte";
|
||||
import ReviewOptions from "./ReviewOptions.svelte";
|
||||
import BuryOptions from "./BuryOptions.svelte";
|
||||
import LapseOptions from "./LapseOptions.svelte";
|
||||
import GeneralOptions from "./GeneralOptions.svelte";
|
||||
import Addons from "./Addons.svelte";
|
||||
@ -36,10 +36,12 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
|
||||
<div class="outer">
|
||||
<DailyLimits {state} />
|
||||
<LearningOptions {state} />
|
||||
<NewOptions {state} />
|
||||
<ReviewOptions {state} />
|
||||
<LapseOptions {state} />
|
||||
<BuryOptions {state} />
|
||||
{#if state.v3Scheduler}
|
||||
<DisplayOrder {state} />
|
||||
{/if}
|
||||
<GeneralOptions {state} />
|
||||
<Addons {state} />
|
||||
<AdvancedOptions {state} />
|
||||
|
@ -12,6 +12,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
let defaults = state.defaults;
|
||||
let parentLimits = state.parentLimits;
|
||||
|
||||
const v3Extra = state.v3Scheduler ? "\n\n" + tr.deckConfigLimitDeckV3() : "";
|
||||
|
||||
$: newCardsGreaterThanParent =
|
||||
!state.v3Scheduler && $config.newPerDay > $parentLimits.newCards
|
||||
? tr.deckConfigDailyLimitWillBeCapped({ cards: $parentLimits.newCards })
|
||||
@ -30,7 +32,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
|
||||
<SpinBox
|
||||
label={tr.schedulingNewCardsday()}
|
||||
tooltip={tr.deckConfigNewLimitTooltip()}
|
||||
tooltip={tr.deckConfigNewLimitTooltip() + v3Extra}
|
||||
min={0}
|
||||
warnings={[newCardsGreaterThanParent]}
|
||||
defaultValue={defaults.newPerDay}
|
||||
@ -38,7 +40,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
|
||||
<SpinBox
|
||||
label={tr.schedulingMaximumReviewsday()}
|
||||
tooltip={tr.deckConfigReviewLimitTooltip()}
|
||||
tooltip={tr.deckConfigReviewLimitTooltip() + v3Extra}
|
||||
min={0}
|
||||
warnings={[reviewsTooLow]}
|
||||
defaultValue={defaults.reviewsPerDay}
|
||||
|
68
ts/deckoptions/DisplayOrder.svelte
Normal file
68
ts/deckoptions/DisplayOrder.svelte
Normal file
@ -0,0 +1,68 @@
|
||||
<!--
|
||||
Copyright: Ankitects Pty Ltd and contributors
|
||||
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
-->
|
||||
<script lang="ts">
|
||||
import * as tr from "lib/i18n";
|
||||
import EnumSelector from "./EnumSelector.svelte";
|
||||
|
||||
import type { DeckOptionsState } from "./lib";
|
||||
import { reviewMixChoices } from "./strings";
|
||||
|
||||
export let state: DeckOptionsState;
|
||||
let config = state.currentConfig;
|
||||
let defaults = state.defaults;
|
||||
|
||||
const newGatherPriorityChoices = [
|
||||
tr.deckConfigNewGatherPriorityDeck(),
|
||||
tr.deckConfigNewGatherPriorityPosition(),
|
||||
];
|
||||
const newSortOrderChoices = [
|
||||
tr.deckConfigSortOrderCardTemplateThenPosition(),
|
||||
tr.deckConfigSortOrderCardTemplateThenRandom(),
|
||||
tr.deckConfigSortOrderPosition(),
|
||||
tr.deckConfigSortOrderRandom(),
|
||||
];
|
||||
const reviewOrderChoices = [
|
||||
tr.deckConfigSortOrderDueDateThenRandom(),
|
||||
tr.deckConfigSortOrderAscendingIntervals(),
|
||||
tr.deckConfigSortOrderDescendingIntervals(),
|
||||
];
|
||||
</script>
|
||||
|
||||
<h2>{tr.deckConfigOrderingTitle()}</h2>
|
||||
|
||||
<EnumSelector
|
||||
label={tr.deckConfigNewGatherPriority()}
|
||||
tooltip={tr.deckConfigNewGatherPriorityTooltip()}
|
||||
choices={newGatherPriorityChoices}
|
||||
defaultValue={defaults.newCardGatherPriority}
|
||||
bind:value={$config.newCardGatherPriority} />
|
||||
|
||||
<EnumSelector
|
||||
label={tr.deckConfigNewCardSortOrder()}
|
||||
tooltip={tr.deckConfigNewCardSortOrderTooltip()}
|
||||
choices={newSortOrderChoices}
|
||||
defaultValue={defaults.newCardSortOrder}
|
||||
bind:value={$config.newCardSortOrder} />
|
||||
|
||||
<EnumSelector
|
||||
label={tr.deckConfigNewReviewPriority()}
|
||||
tooltip={tr.deckConfigNewReviewPriorityTooltip()}
|
||||
choices={reviewMixChoices()}
|
||||
defaultValue={defaults.newMix}
|
||||
bind:value={$config.newMix} />
|
||||
|
||||
<EnumSelector
|
||||
label={tr.deckConfigInterdayStepPriority()}
|
||||
tooltip={tr.deckConfigInterdayStepPriorityTooltip()}
|
||||
choices={reviewMixChoices()}
|
||||
defaultValue={defaults.interdayLearningMix}
|
||||
bind:value={$config.interdayLearningMix} />
|
||||
|
||||
<EnumSelector
|
||||
label={tr.deckConfigReviewSortOrder()}
|
||||
tooltip={tr.deckConfigReviewSortOrderTooltip()}
|
||||
choices={reviewOrderChoices}
|
||||
defaultValue={defaults.reviewOrder}
|
||||
bind:value={$config.reviewOrder} />
|
@ -1,33 +0,0 @@
|
||||
<!--
|
||||
Copyright: Ankitects Pty Ltd and contributors
|
||||
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
-->
|
||||
<script lang="ts">
|
||||
import * as tr from "lib/i18n";
|
||||
import StepsInput from "./StepsInput.svelte";
|
||||
import EnumSelector from "./EnumSelector.svelte";
|
||||
import type { DeckOptionsState } from "./lib";
|
||||
import { reviewMixChoices } from "./strings";
|
||||
|
||||
export let state: DeckOptionsState;
|
||||
let config = state.currentConfig;
|
||||
let defaults = state.defaults;
|
||||
</script>
|
||||
|
||||
<h2>{tr.deckConfigLearningTitle()}</h2>
|
||||
|
||||
<StepsInput
|
||||
label={tr.deckConfigLearningSteps()}
|
||||
tooltip={tr.deckConfigLearningStepsTooltip()}
|
||||
defaultValue={defaults.learnSteps}
|
||||
value={$config.learnSteps}
|
||||
on:changed={(evt) => ($config.learnSteps = evt.detail.value)} />
|
||||
|
||||
{#if state.v3Scheduler}
|
||||
<EnumSelector
|
||||
label={tr.deckConfigInterdayStepPriority()}
|
||||
tooltip={tr.deckConfigInterdayStepPriorityTooltip()}
|
||||
choices={reviewMixChoices()}
|
||||
defaultValue={defaults.interdayLearningMix}
|
||||
bind:value={$config.interdayLearningMix} />
|
||||
{/if}
|
@ -5,10 +5,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
<script lang="ts">
|
||||
import * as tr from "lib/i18n";
|
||||
import SpinBox from "./SpinBox.svelte";
|
||||
import CheckBox from "./CheckBox.svelte";
|
||||
import StepsInput from "./StepsInput.svelte";
|
||||
import EnumSelector from "./EnumSelector.svelte";
|
||||
import type { DeckOptionsState } from "./lib";
|
||||
import { reviewMixChoices } from "./strings";
|
||||
|
||||
export let state: DeckOptionsState;
|
||||
let config = state.currentConfig;
|
||||
@ -18,16 +17,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
tr.deckConfigNewInsertionOrderSequential(),
|
||||
tr.deckConfigNewInsertionOrderRandom(),
|
||||
];
|
||||
const newGatherPriorityChoices = [
|
||||
tr.deckConfigNewGatherPriorityDeck(),
|
||||
tr.deckConfigNewGatherPriorityPosition(),
|
||||
];
|
||||
const newSortOrderChoices = [
|
||||
tr.deckConfigSortOrderCardTemplateThenPosition(),
|
||||
tr.deckConfigSortOrderCardTemplateThenRandom(),
|
||||
tr.deckConfigSortOrderPosition(),
|
||||
tr.deckConfigSortOrderRandom(),
|
||||
];
|
||||
|
||||
let stepsExceedGraduatingInterval: string;
|
||||
$: {
|
||||
@ -48,6 +37,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
|
||||
<h2>{tr.schedulingNewCards()}</h2>
|
||||
|
||||
<StepsInput
|
||||
label={tr.deckConfigLearningSteps()}
|
||||
tooltip={tr.deckConfigLearningStepsTooltip()}
|
||||
defaultValue={defaults.learnSteps}
|
||||
value={$config.learnSteps}
|
||||
on:changed={(evt) => ($config.learnSteps = evt.detail.value)} />
|
||||
|
||||
<SpinBox
|
||||
label={tr.schedulingGraduatingInterval()}
|
||||
tooltip={tr.deckConfigGraduatingIntervalTooltip()}
|
||||
@ -62,38 +58,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
defaultValue={defaults.graduatingIntervalEasy}
|
||||
bind:value={$config.graduatingIntervalEasy} />
|
||||
|
||||
{#if state.v3Scheduler}
|
||||
<EnumSelector
|
||||
label={tr.deckConfigNewInsertionOrder()}
|
||||
tooltip={tr.deckConfigNewInsertionOrderTooltip()}
|
||||
choices={newInsertOrderChoices}
|
||||
defaultValue={defaults.newCardInsertOrder}
|
||||
bind:value={$config.newCardInsertOrder} />
|
||||
|
||||
<EnumSelector
|
||||
label={tr.deckConfigNewGatherPriority()}
|
||||
tooltip={tr.deckConfigNewGatherPriorityTooltip()}
|
||||
choices={newGatherPriorityChoices}
|
||||
defaultValue={defaults.newCardGatherPriority}
|
||||
bind:value={$config.newCardGatherPriority} />
|
||||
|
||||
<EnumSelector
|
||||
label={tr.deckConfigSortOrder()}
|
||||
tooltip={tr.deckConfigSortOrderTooltip()}
|
||||
choices={newSortOrderChoices}
|
||||
defaultValue={defaults.newCardSortOrder}
|
||||
bind:value={$config.newCardSortOrder} />
|
||||
|
||||
<EnumSelector
|
||||
label={tr.deckConfigReviewPriority()}
|
||||
tooltip={tr.deckConfigReviewPriorityTooltip()}
|
||||
choices={reviewMixChoices()}
|
||||
defaultValue={defaults.newMix}
|
||||
bind:value={$config.newMix} />
|
||||
{/if}
|
||||
|
||||
<CheckBox
|
||||
label={tr.deckConfigBuryNewSiblings()}
|
||||
tooltip={tr.deckConfigBuryTooltip()}
|
||||
defaultValue={defaults.buryNew}
|
||||
bind:value={$config.buryNew} />
|
||||
<EnumSelector
|
||||
label={tr.deckConfigNewInsertionOrder()}
|
||||
tooltip={tr.deckConfigNewInsertionOrderTooltip()}
|
||||
choices={newInsertOrderChoices}
|
||||
defaultValue={defaults.newCardInsertOrder}
|
||||
bind:value={$config.newCardInsertOrder} />
|
||||
|
@ -1,39 +0,0 @@
|
||||
<!--
|
||||
Copyright: Ankitects Pty Ltd and contributors
|
||||
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||
-->
|
||||
<script lang="ts">
|
||||
import * as tr from "lib/i18n";
|
||||
import CheckBox from "./CheckBox.svelte";
|
||||
import EnumSelector from "./EnumSelector.svelte";
|
||||
import type { DeckOptionsState } from "./lib";
|
||||
|
||||
export let state: DeckOptionsState;
|
||||
let config = state.currentConfig;
|
||||
let defaults = state.defaults;
|
||||
|
||||
const reviewOrderChoices = [
|
||||
tr.deckConfigSortOrderDueDateThenRandom(),
|
||||
tr.deckConfigSortOrderAscendingIntervals(),
|
||||
tr.deckConfigSortOrderDescendingIntervals(),
|
||||
];
|
||||
</script>
|
||||
|
||||
<div>
|
||||
<h2>{tr.schedulingReviews()}</h2>
|
||||
|
||||
{#if state.v3Scheduler}
|
||||
<EnumSelector
|
||||
label={tr.deckConfigSortOrder()}
|
||||
tooltip={tr.deckConfigReviewSortOrderTooltip()}
|
||||
choices={reviewOrderChoices}
|
||||
defaultValue={defaults.reviewOrder}
|
||||
bind:value={$config.reviewOrder} />
|
||||
{/if}
|
||||
|
||||
<CheckBox
|
||||
label={tr.deckConfigBuryReviewSiblings()}
|
||||
tooltip={tr.deckConfigBuryTooltip()}
|
||||
defaultValue={defaults.buryReviews}
|
||||
bind:value={$config.buryReviews} />
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user