feat(editor): text above is named by the language, shown on hover or a long press

Furigana was the only name for text set above text, though it carries
pinyin, a pronunciation or a translation as well. Its button and dialog
now say furigana in a Japanese studyset, pinyin in a Chinese one, and
text above elsewhere, each with an example of its own: the studyset's
languages reach the core's editors through ContentLanguages, which the
studyset's language scope now sets.

Read-only, the text above shows only under the pointer or after a long
press (another hides it), so the text can be read without it first; its
room stays, so no line moves. While editing, it shows over the pointer
above its dotted text; with the caret inside such text, the button
selects all of it and edits what it has, so it can be seen and changed
without finding its ends.

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-12 23:14:04 +02:00
commit a0b4fa969c
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -4645,9 +4645,21 @@ abstract class AppLocalizations {
/// No description provided for @formatRuby.
///
/// In en, this message translates to:
/// **'Furigana (a reading above the text)'**
/// **'Text above (a pronunciation, a translation)'**
String get formatRuby;
/// No description provided for @formatRubyFurigana.
///
/// In en, this message translates to:
/// **'Furigana (a reading above the text)'**
String get formatRubyFurigana;
/// No description provided for @formatRubyPinyin.
///
/// In en, this message translates to:
/// **'Pinyin (above the characters)'**
String get formatRubyPinyin;
/// No description provided for @formatLink.
///
/// In en, this message translates to:
@ -4693,9 +4705,33 @@ abstract class AppLocalizations {
/// No description provided for @rubyTitle.
///
/// In en, this message translates to:
/// **'Furigana'**
/// **'Text above'**
String get rubyTitle;
/// No description provided for @rubyTitleFurigana.
///
/// In en, this message translates to:
/// **'Furigana'**
String get rubyTitleFurigana;
/// No description provided for @rubyTitlePinyin.
///
/// In en, this message translates to:
/// **'Pinyin'**
String get rubyTitlePinyin;
/// No description provided for @rubyText.
///
/// In en, this message translates to:
/// **'Text'**
String get rubyText;
/// No description provided for @rubyHint.
///
/// In en, this message translates to:
/// **'e.g. a pronunciation or a translation'**
String get rubyHint;
/// No description provided for @rubyReading.
///
/// In en, this message translates to:
@ -4708,6 +4744,12 @@ abstract class AppLocalizations {
/// **'In kana, e.g. かんじ'**
String get rubyReadingHint;
/// No description provided for @rubyHintPinyin.
///
/// In en, this message translates to:
/// **'With tone marks, e.g. hànzì'**
String get rubyHintPinyin;
/// No description provided for @rubySave.
///
/// In en, this message translates to: