feat(app): kanji and kana in the dictionary, beside the words

Where the instance holds the characters of a studyset's language, the
dictionary screen has a tab for them, Kanji & kana: search by character,
reading (kana or romaji) or meaning, and whole levels to add, under their
names: the kana (hiragana, katakana), the JLPT levels and the school
grades. A character becomes a character card, its meanings (a kana's
romaji) and readings, tagged with its level (JLPT-N5), school grade
(Grade 1 … Grade 6, Secondary school) and script (Hiragana, Katakana). A
character card's Look up searches the characters, and an entry looked up
again on a card swaps the tags the one before brought, as words do.

A dictionary's entries are now words or characters (DictionaryItem), as
its kind says.

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:
Tizian 「ティツィアーン」 2026-10-09 15:19:22 +02:00
commit cec518350a
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -1868,6 +1868,87 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get dictionaryLookUp => 'Im Wörterbuch nachschlagen';
@override
String get dictionaryCharacterSearchHint =>
'Ein Kanji oder Kana, eine Lesung in Kana oder Romaji, oder eine Bedeutung';
@override
String get dictionaryTabWords => 'Wörter';
@override
String get dictionaryTabCharacters => 'Kanji & Kana';
@override
String get dictionaryLabelHiragana => 'Hiragana';
@override
String get dictionaryLabelKatakana => 'Katakana';
@override
String dictionaryGrade(int grade) {
return 'Klasse $grade';
}
@override
String get dictionaryLabelSecondary => 'Weiterführende Schule';
@override
String get dictionaryGroupKana => 'Kana';
@override
String get dictionaryGroupJlpt => 'JLPT-Stufen';
@override
String get dictionaryGroupGrades => 'Schuljahre';
@override
String dictionaryStrokes(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count Striche',
one: '1 Strich',
);
return '$_temp0';
}
@override
String get dictionaryCharacterLevelsHint =>
'Jedes Schriftzeichen einer Stufe wird eine Karteikarte, in der Reihenfolge ihrer Liste, mit Stufe, Schuljahr oder Schrift als Tags. Schriftzeichen, die schon in diesem Lernset sind, werden ausgelassen.';
@override
String dictionaryAddCharacters(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count Schriftzeichen hinzufügen',
one: '1 Schriftzeichen hinzufügen',
);
return '$_temp0';
}
@override
String dictionaryCharactersAdded(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count Schriftzeichen hinzugefügt.',
one: '1 Schriftzeichen hinzugefügt.',
zero: 'Keine neuen Schriftzeichen.',
);
return '$_temp0';
}
@override
String dictionaryConfirmCharactersTitle(int count) {
return '$count Schriftzeichen hinzufügen?';
}
@override
String dictionaryCharacterCredits(String sources) {
return 'Schriftzeichen aus $sources.';
}
@override
String get aboutDictionaries => 'Wörterbücher dieser Instanz';