fix(dictionary): words held in topics, a chosen destination, faster adds

A word counted as held only in the studyset itself, so adding from a
studyset whose topics held it (Vocabulary, its words in N3) made a
second card, and watching from a top-level studyset put every new word
into it. Now a word is held anywhere in the studyset and its topics,
archived ones too, and its progress shows from that card; new words go
where the person chose for the studyset ("Adds to N3" in the dictionary
and the Watch screen, the studyset and its topics but archived ones,
kept in their settings, schema 10), the studyset itself until then.

Adding a word took about two seconds on 17,000 card tags: each of its
four tags read every card's tags twice. They are now written with one
read, the Watch screen shows the word added at once and takes it back
should writing fail, and it no longer reads the studyset's progress
again after each word. On a copy of a real database an Add takes 0.3 to
0.4 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-16 20:41:32 +02:00
commit 6737a42ff7
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -2575,6 +2575,15 @@ class AppLocalizationsDe extends AppLocalizations {
String get dictionaryAddFailed =>
'Die Wörter konnten nicht hinzugefügt werden. Versuche es erneut.';
@override
String addDestination(String studyset) {
return 'Ziel: $studyset';
}
@override
String get addDestinationHint =>
'Wohin neue Karteikarten kommen: in dieses Lernset oder eines seiner Themen';
@override
String get dictionaryMakingCards => 'Die Karteikarten werden erstellt…';
@ -7687,6 +7696,11 @@ class AppLocalizationsDe extends AppLocalizations {
return '$word hinzugefügt';
}
@override
String watchAddFailed(String word) {
return '$word konnte nicht hinzugefügt werden. Versuch es noch einmal.';
}
@override
String watchStretchNone(String text) {
return '„$text“ steht nicht als ein Wort im Wörterbuch.';