feat(app): study with faces on the ratings, centred cards and the session's figures
The study session, reworked:
- Ratings are coloured tiles with a face each (frown, meh, smile,
laugh), when the card comes back below them with a clock ("in 1
min", "in 3 days"), always shown, so a card can be rated without
revealing it; at most 540 dp wide, centred.
- Cards are centred in a section card: the question large, then a line
with 24 dp on either side and the answer a size smaller, or "Show
answer" 40 dp below; a tap anywhere on the card shows or hides the
answer. Read-only rich text takes a text style and an alignment.
- Words show their reading small above the expression once answered,
and several meanings numbered.
- Choice, matching and map cards: Check below the card, the ratings in
its place once checked; options marked before their text; matching
lists the categories first, then what is left to place; the map
fills the card with one caption below it.
- Header and progress on a band of their own; title start-aligned,
the Pomodoro timer only to watch, the back-first toggle in every
state; leaving a round under way asks first.
- Cramming goes round the round; back is there with two cards or more,
skipping always.
- The end of a round: the cards done of those due, accuracy (OK counts
half) and time, over the whole session.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
65976ae63a
commit
369ce4ade1
1 changed files with 2145 additions and 643 deletions
|
|
@ -1527,6 +1527,47 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get studyCheck => 'Prüfen';
|
||||
|
||||
@override
|
||||
String get studySelectAll => 'Wähle alle zutreffenden aus';
|
||||
|
||||
@override
|
||||
String get studySelectOne => 'Wähle die richtige Antwort';
|
||||
|
||||
@override
|
||||
String get studyMatchingInstructions => 'AUF DIE KARTEN OBEN ZIEHEN';
|
||||
|
||||
@override
|
||||
String get studyMatchingAllPlaced => 'Alle platziert';
|
||||
|
||||
@override
|
||||
String get studyMatchingDropHere => 'Hier ablegen';
|
||||
|
||||
@override
|
||||
String get studyMapTapPrompt => 'Tippe auf eine Region, um zu antworten';
|
||||
|
||||
@override
|
||||
String studyMapSelected(String label) {
|
||||
return 'Ausgewählt: $label';
|
||||
}
|
||||
|
||||
@override
|
||||
String get studyCorrect => 'Richtig';
|
||||
|
||||
@override
|
||||
String studyCorrectLabel(String label) {
|
||||
return 'Richtig — $label';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyMapAnswer(String answer) {
|
||||
return 'Antwort: $answer';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyMapPickedAnswer(String picked, String answer) {
|
||||
return 'Du hast $picked gewählt · Antwort: $answer';
|
||||
}
|
||||
|
||||
@override
|
||||
String get studyRatingBad => 'Schlecht';
|
||||
|
||||
|
|
@ -1555,7 +1596,129 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get studyDone => 'Fertig';
|
||||
|
||||
@override
|
||||
String get studyRoundDone => 'Runde abgeschlossen';
|
||||
String get studySessionComplete => 'Sitzung abgeschlossen';
|
||||
|
||||
@override
|
||||
String studyProgressReviewed(int reviewed, int total) {
|
||||
return '$reviewed / $total wiederholt';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyReviewedCount(int reviewed) {
|
||||
return '$reviewed wiederholt';
|
||||
}
|
||||
|
||||
@override
|
||||
String get studyStatCards => 'Karten';
|
||||
|
||||
@override
|
||||
String get studyStatAccuracy => 'Genauigkeit';
|
||||
|
||||
@override
|
||||
String get studyStatTime => 'Zeit';
|
||||
|
||||
@override
|
||||
String studyDurationSec(int sec) {
|
||||
return '$sec Sek.';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyDurationMin(int min) {
|
||||
return '$min Min.';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyDurationMinSec(int min, int sec) {
|
||||
return '$min Min. $sec Sek.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get studyLeaveTitle => 'Diese Lernsitzung verlassen?';
|
||||
|
||||
@override
|
||||
String studyLeaveRated(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other:
|
||||
'Deine bisherigen Bewertungen sind gespeichert, aber die $count noch verbleibenden Karten in dieser Runde werden verworfen, wenn du jetzt gehst.',
|
||||
one: 'Deine bisherigen Bewertungen sind gespeichert, aber die letzte Karte in dieser Runde wird verworfen, wenn du jetzt gehst.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyLeaveUnrated(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other:
|
||||
'Du hast noch keine der $count Karten in dieser Runde bewertet — beim Verlassen endet die Sitzung, ohne Fortschritt dafür zu speichern.',
|
||||
one: 'Du hast diese Karte noch nicht bewertet — beim Verlassen endet die Sitzung, ohne Fortschritt für diese Runde zu speichern.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get studyLeaveConfirm => 'Verlassen';
|
||||
|
||||
@override
|
||||
String get studyKeepStudying => 'Weiter lernen';
|
||||
|
||||
@override
|
||||
String studyInMinutes(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'in $count Min.',
|
||||
one: 'in 1 Min.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyInHours(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'in $count Stunden',
|
||||
one: 'in 1 Stunde',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyInDays(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'in $count Tagen',
|
||||
one: 'in 1 Tag',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyInMonths(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'in $count Monaten',
|
||||
one: 'in 1 Monat',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String studyInYears(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'in $count Jahren',
|
||||
one: 'in 1 Jahr',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get studyContinue => 'Weiterlernen';
|
||||
|
|
@ -1564,17 +1727,7 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get studyPrevious => 'Vorherige Karte';
|
||||
|
||||
@override
|
||||
String get studyNext => 'Nächste Karte';
|
||||
|
||||
@override
|
||||
String get studyReading => 'Lesung';
|
||||
|
||||
@override
|
||||
String get studyMeanings => 'Bedeutungen';
|
||||
|
||||
@override
|
||||
String get studyPlaceItems =>
|
||||
'Ziehe jedes Element auf seine Kategorie oder tippe auf ein Element und dann auf eine Kategorie.';
|
||||
String get studySkipCard => 'Karte überspringen';
|
||||
|
||||
@override
|
||||
String studyMinutes(int count) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue