feat(jellyfin): the words' panel unfolds senses, shows progress, filters
The panel beside the video lists each entry's senses one to a line, as Jisho does (and as every dictionary list in the app now does), folded to two lines; an entry unfolds over the list, not in it, after a moment under the pointer or on a tap, in the video's colour, so nothing moves under the pointer and words of many senses (上げる has 25) crowd out nothing. Each entry links to the word on Jisho.org, opened only when tapped. A word the studyset holds shows how far its card is learnt: New, Learning, Due, or Learned with when it comes again. The video's words go through a filter in place of New only: new to the studyset, held or all, JLPT levels, and word classes. The dictionary's sources stay in the panel's lower right corner, and the player's controls hide after 2 seconds rather than 3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
48a9564231
commit
fbe53c3441
1 changed files with 1019 additions and 113 deletions
|
|
@ -10593,6 +10593,114 @@ abstract class AppLocalizations {
|
|||
/// **'End'**
|
||||
String get watchKeyEnd;
|
||||
|
||||
/// No description provided for @watchProgressNew.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New'**
|
||||
String get watchProgressNew;
|
||||
|
||||
/// No description provided for @watchProgressLearning.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Learning'**
|
||||
String get watchProgressLearning;
|
||||
|
||||
/// No description provided for @watchProgressDue.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Due'**
|
||||
String get watchProgressDue;
|
||||
|
||||
/// No description provided for @watchProgressLearned.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Learned · {days, plural, =0{again today} =1{again tomorrow} other{again in {days} days}}'**
|
||||
String watchProgressLearned(int days);
|
||||
|
||||
/// No description provided for @watchJisho.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Look up on Jisho'**
|
||||
String get watchJisho;
|
||||
|
||||
/// No description provided for @watchFilter.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Filter the words'**
|
||||
String get watchFilter;
|
||||
|
||||
/// No description provided for @watchFilterFresh.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New words'**
|
||||
String get watchFilterFresh;
|
||||
|
||||
/// No description provided for @watchFilterHeld.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Words in the studyset'**
|
||||
String get watchFilterHeld;
|
||||
|
||||
/// No description provided for @watchFilterAll.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'All words'**
|
||||
String get watchFilterAll;
|
||||
|
||||
/// No description provided for @watchFilterNoLevel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No JLPT level'**
|
||||
String get watchFilterNoLevel;
|
||||
|
||||
/// No description provided for @watchFilterClass.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Word class'**
|
||||
String get watchFilterClass;
|
||||
|
||||
/// No description provided for @watchFilterEmpty.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No words of this video match the filter.'**
|
||||
String get watchFilterEmpty;
|
||||
|
||||
/// No description provided for @watchClassNoun.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Nouns'**
|
||||
String get watchClassNoun;
|
||||
|
||||
/// No description provided for @watchClassVerb.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Verbs'**
|
||||
String get watchClassVerb;
|
||||
|
||||
/// No description provided for @watchClassAdjective.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Adjectives'**
|
||||
String get watchClassAdjective;
|
||||
|
||||
/// No description provided for @watchClassAdverb.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Adverbs'**
|
||||
String get watchClassAdverb;
|
||||
|
||||
/// No description provided for @watchClassExpression.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Expressions'**
|
||||
String get watchClassExpression;
|
||||
|
||||
/// No description provided for @watchClassOther.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Others'**
|
||||
String get watchClassOther;
|
||||
|
||||
/// No description provided for @watchNone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -10635,12 +10743,6 @@ abstract class AppLocalizations {
|
|||
/// **'Words in this video'**
|
||||
String get watchWordsTitle;
|
||||
|
||||
/// No description provided for @watchWordsNewOnly.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New only'**
|
||||
String get watchWordsNewOnly;
|
||||
|
||||
/// No description provided for @watchWordsFinding.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
Loading…
Reference in a new issue