feat(app): write kanji, kana and words by hand, each stroke checked
The study option Write by hand (settings schema 7) has character cards and words written in a session, on a schedule of their own (review mode `write`; older apps skip a mode they don't know): what to write on top, a character's meanings and readings or a word's reading and meanings, and below it a square to write it in, character by character. Each stroke is checked as it ends against KanjiVG's: both resampled to 22 points, then their shape once centred, where they lie, how long they are and which way they go, each against what a loose hand strays by; a stroke closer to one still to come is out of order. One that counts is drawn as KanjiVG draws it, and the hand's offset from the middle is forgiven in the strokes after; any other flashes red, says why and counts as a mistake, as does a hint. Two misses in a row show the next stroke faintly. Once written, or given up on (Show it), the rating the mistakes suggest is outlined: none Good, one or two OK, more Bad. The square takes every touch on it at once, so writing never scrolls the card or swipes to rate. Characters without a stroke order (in a word) are written for the person. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
ed5bb3f6b1
commit
89ad2c237d
1 changed files with 1457 additions and 54 deletions
|
|
@ -3232,6 +3232,66 @@ abstract class AppLocalizations {
|
|||
/// **'Components'**
|
||||
String get kanjiComponents;
|
||||
|
||||
/// No description provided for @studySettingsCharacters.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Kanji & kana'**
|
||||
String get studySettingsCharacters;
|
||||
|
||||
/// No description provided for @studySettingsWriteByHand.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Write by hand'**
|
||||
String get studySettingsWriteByHand;
|
||||
|
||||
/// No description provided for @studySettingsWriteByHandDescription.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Kanji, kana and words are written stroke by stroke and checked as you go, on a schedule of their own. Words written aren\'t quizzed or typed.'**
|
||||
String get studySettingsWriteByHandDescription;
|
||||
|
||||
/// No description provided for @writingHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Hint'**
|
||||
String get writingHint;
|
||||
|
||||
/// No description provided for @writingShow.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Show it'**
|
||||
String get writingShow;
|
||||
|
||||
/// No description provided for @writingMistakes.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{count, plural, =0{No mistakes} =1{1 mistake} other{{count} mistakes}}'**
|
||||
String writingMistakes(int count);
|
||||
|
||||
/// No description provided for @writingWrongOrder.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Not yet: that stroke comes later.'**
|
||||
String get writingWrongOrder;
|
||||
|
||||
/// No description provided for @writingWrong.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'That isn\'t the next stroke.'**
|
||||
String get writingWrong;
|
||||
|
||||
/// No description provided for @writingSuggested.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'{rating} suggested'**
|
||||
String writingSuggested(String rating);
|
||||
|
||||
/// No description provided for @writingNoStrokes.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'There\'s no stroke order for these characters: rate how well you knew them.'**
|
||||
String get writingNoStrokes;
|
||||
|
||||
/// No description provided for @aboutDictionaries.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
Loading…
Reference in a new issue