refactor(learn): the editor's general parts move to halkyon_editor (ADR 0033, D37)
Todo stores editor documents too, so the document, the editor, its view, the format bar, links, the clipboard, scripts and EditorBlocks move, with their strings and tests, to a shared package on the same appflowy_editor fork. What is Learn's alone stays in Learn on top of it, and what the editor took from it directly is inverted: EditorBlocks gains textMarks, formatActions and onEditorClosed, RichContentEditor a wrapEditor, and an InsertableBlock's name takes the BuildContext. Learn's screens use LearnContentEditor and LearnContentView, which add Learn's blocks and the grammar check. Learn behaves as before. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
4875b26174
commit
648dfe4051
6 changed files with 1676 additions and 1366 deletions
|
|
@ -775,24 +775,9 @@
|
|||
"composerDiscardConfirm": "Verwerfen",
|
||||
"composerConflict": "Diese Karteikarte wurde auf zwei Arten zugleich geändert: auf zwei deiner Geräte oder von dir und durch eine Korrektur im Wörterbuch oder eine neue Veröffentlichung dessen, wovon es kopiert ist. Wähle unten für jeden Teil die Version, die du behalten möchtest.",
|
||||
"composerKeepThis": "Diese behalten",
|
||||
"formatAlignLeft": "Linksbündig",
|
||||
"formatAlignCenter": "Zentriert",
|
||||
"formatAlignRight": "Rechtsbündig",
|
||||
"formatBold": "Fett",
|
||||
"formatItalic": "Kursiv",
|
||||
"formatUnderline": "Unterstrichen",
|
||||
"formatSuperscript": "Hochgestellt",
|
||||
"formatSubscript": "Tiefgestellt",
|
||||
"formatRuby": "Text darüber (Aussprache, Übersetzung)",
|
||||
"formatRubyFurigana": "Furigana (eine Lesung über dem Text)",
|
||||
"formatRubyPinyin": "Pinyin (über den Schriftzeichen)",
|
||||
"formatLink": "Link",
|
||||
"linkTitle": "Link",
|
||||
"linkText": "Text",
|
||||
"linkAddress": "Adresse",
|
||||
"linkAddressHint": "https://…",
|
||||
"linkSave": "Speichern",
|
||||
"linkRemove": "Link entfernen",
|
||||
"rubyTitle": "Text darüber",
|
||||
"rubyTitleFurigana": "Furigana",
|
||||
"rubyTitlePinyin": "Pinyin",
|
||||
|
|
@ -1100,22 +1085,6 @@
|
|||
"fileNotKept": "Die Datei konnte nicht auf diesem Gerät gespeichert werden.",
|
||||
"fileRemoveImage": "Bild entfernen",
|
||||
"fileRemoveSound": "Audio entfernen",
|
||||
"editorInsert": "Einfügen",
|
||||
"blockGroupText": "Text",
|
||||
"blockGroupBlocks": "Blöcke",
|
||||
"blockGroupMedia": "Medien",
|
||||
"blockHeading": "Überschrift {level}",
|
||||
"blockBulletedList": "Aufzählung",
|
||||
"blockNumberedList": "Nummerierte Liste",
|
||||
"blockChecklist": "Checkliste",
|
||||
"blockQuote": "Zitat",
|
||||
"blockListItem": "Listenpunkt",
|
||||
"blockChecklistItem": "Aufgabe",
|
||||
"editorSlashHint": "Tippe / für einen Block oder schreib einfach los",
|
||||
"blockDivider": "Trennlinie",
|
||||
"blockTable": "Tabelle",
|
||||
"blockRemove": "Entfernen",
|
||||
"blockUnknown": "Dieser Teil braucht eine neuere Version der App.",
|
||||
"blockCallout": "Hinweisbox",
|
||||
"blockSpoiler": "Spoiler",
|
||||
"calloutNote": "Notiz",
|
||||
|
|
|
|||
|
|
@ -885,24 +885,9 @@
|
|||
"composerDiscardConfirm": "Discard",
|
||||
"composerConflict": "This flashcard was changed in two ways at once: on two of your devices, or by you and by a correction from the dictionary or a new release of what it was copied from. Choose the version to keep of each part below.",
|
||||
"composerKeepThis": "Keep this",
|
||||
"formatAlignLeft": "Align left",
|
||||
"formatAlignCenter": "Centre",
|
||||
"formatAlignRight": "Align right",
|
||||
"formatBold": "Bold",
|
||||
"formatItalic": "Italic",
|
||||
"formatUnderline": "Underline",
|
||||
"formatSuperscript": "Superscript",
|
||||
"formatSubscript": "Subscript",
|
||||
"formatRuby": "Text above (a pronunciation, a translation)",
|
||||
"formatRubyFurigana": "Furigana (a reading above the text)",
|
||||
"formatRubyPinyin": "Pinyin (above the characters)",
|
||||
"formatLink": "Link",
|
||||
"linkTitle": "Link",
|
||||
"linkText": "Text",
|
||||
"linkAddress": "Address",
|
||||
"linkAddressHint": "https://…",
|
||||
"linkSave": "Save",
|
||||
"linkRemove": "Remove link",
|
||||
"rubyTitle": "Text above",
|
||||
"rubyTitleFurigana": "Furigana",
|
||||
"rubyTitlePinyin": "Pinyin",
|
||||
|
|
@ -1253,27 +1238,6 @@
|
|||
"fileNotKept": "The file couldn't be kept on this device.",
|
||||
"fileRemoveImage": "Remove image",
|
||||
"fileRemoveSound": "Remove sound",
|
||||
"editorInsert": "Insert",
|
||||
"blockGroupText": "Text",
|
||||
"blockGroupBlocks": "Blocks",
|
||||
"blockGroupMedia": "Media",
|
||||
"blockHeading": "Heading {level}",
|
||||
"@blockHeading": {
|
||||
"placeholders": {
|
||||
"level": {"type": "int"}
|
||||
}
|
||||
},
|
||||
"blockBulletedList": "Bulleted list",
|
||||
"blockNumberedList": "Numbered list",
|
||||
"blockChecklist": "Checklist",
|
||||
"blockQuote": "Quote",
|
||||
"blockListItem": "List item",
|
||||
"blockChecklistItem": "To-do",
|
||||
"editorSlashHint": "Type / to insert a block, or just start typing",
|
||||
"blockDivider": "Divider",
|
||||
"blockTable": "Table",
|
||||
"blockRemove": "Remove",
|
||||
"blockUnknown": "This part needs a newer version of the app.",
|
||||
"blockCallout": "Callout",
|
||||
"blockSpoiler": "Spoiler",
|
||||
"calloutNote": "Note",
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
"studysetSheetColor": "Color",
|
||||
"tagSheetColor": "Color",
|
||||
"formatAlignCenter": "Center",
|
||||
"homeCustomise": "Customize",
|
||||
"exploreLicense": "License",
|
||||
"exploreLicenseChosen": "License: {count}",
|
||||
|
|
|
|||
|
|
@ -4564,54 +4564,6 @@ abstract class AppLocalizations {
|
|||
/// **'Keep this'**
|
||||
String get composerKeepThis;
|
||||
|
||||
/// No description provided for @formatAlignLeft.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Align left'**
|
||||
String get formatAlignLeft;
|
||||
|
||||
/// No description provided for @formatAlignCenter.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Centre'**
|
||||
String get formatAlignCenter;
|
||||
|
||||
/// No description provided for @formatAlignRight.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Align right'**
|
||||
String get formatAlignRight;
|
||||
|
||||
/// No description provided for @formatBold.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Bold'**
|
||||
String get formatBold;
|
||||
|
||||
/// No description provided for @formatItalic.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Italic'**
|
||||
String get formatItalic;
|
||||
|
||||
/// No description provided for @formatUnderline.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Underline'**
|
||||
String get formatUnderline;
|
||||
|
||||
/// No description provided for @formatSuperscript.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Superscript'**
|
||||
String get formatSuperscript;
|
||||
|
||||
/// No description provided for @formatSubscript.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Subscript'**
|
||||
String get formatSubscript;
|
||||
|
||||
/// No description provided for @formatRuby.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -4630,48 +4582,6 @@ abstract class AppLocalizations {
|
|||
/// **'Pinyin (above the characters)'**
|
||||
String get formatRubyPinyin;
|
||||
|
||||
/// No description provided for @formatLink.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Link'**
|
||||
String get formatLink;
|
||||
|
||||
/// No description provided for @linkTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Link'**
|
||||
String get linkTitle;
|
||||
|
||||
/// No description provided for @linkText.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Text'**
|
||||
String get linkText;
|
||||
|
||||
/// No description provided for @linkAddress.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Address'**
|
||||
String get linkAddress;
|
||||
|
||||
/// No description provided for @linkAddressHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'https://…'**
|
||||
String get linkAddressHint;
|
||||
|
||||
/// No description provided for @linkSave.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Save'**
|
||||
String get linkSave;
|
||||
|
||||
/// No description provided for @linkRemove.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Remove link'**
|
||||
String get linkRemove;
|
||||
|
||||
/// No description provided for @rubyTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
@ -6478,102 +6388,6 @@ abstract class AppLocalizations {
|
|||
/// **'Remove sound'**
|
||||
String get fileRemoveSound;
|
||||
|
||||
/// No description provided for @editorInsert.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Insert'**
|
||||
String get editorInsert;
|
||||
|
||||
/// No description provided for @blockGroupText.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Text'**
|
||||
String get blockGroupText;
|
||||
|
||||
/// No description provided for @blockGroupBlocks.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Blocks'**
|
||||
String get blockGroupBlocks;
|
||||
|
||||
/// No description provided for @blockGroupMedia.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Media'**
|
||||
String get blockGroupMedia;
|
||||
|
||||
/// No description provided for @blockHeading.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Heading {level}'**
|
||||
String blockHeading(int level);
|
||||
|
||||
/// No description provided for @blockBulletedList.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Bulleted list'**
|
||||
String get blockBulletedList;
|
||||
|
||||
/// No description provided for @blockNumberedList.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Numbered list'**
|
||||
String get blockNumberedList;
|
||||
|
||||
/// No description provided for @blockChecklist.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Checklist'**
|
||||
String get blockChecklist;
|
||||
|
||||
/// No description provided for @blockQuote.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Quote'**
|
||||
String get blockQuote;
|
||||
|
||||
/// No description provided for @blockListItem.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'List item'**
|
||||
String get blockListItem;
|
||||
|
||||
/// No description provided for @blockChecklistItem.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'To-do'**
|
||||
String get blockChecklistItem;
|
||||
|
||||
/// No description provided for @editorSlashHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Type / to insert a block, or just start typing'**
|
||||
String get editorSlashHint;
|
||||
|
||||
/// No description provided for @blockDivider.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Divider'**
|
||||
String get blockDivider;
|
||||
|
||||
/// No description provided for @blockTable.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Table'**
|
||||
String get blockTable;
|
||||
|
||||
/// No description provided for @blockRemove.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Remove'**
|
||||
String get blockRemove;
|
||||
|
||||
/// No description provided for @blockUnknown.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'This part needs a newer version of the app.'**
|
||||
String get blockUnknown;
|
||||
|
||||
/// No description provided for @blockCallout.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
|
|
@ -2837,30 +2837,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get composerKeepThis => 'Diese behalten';
|
||||
|
||||
@override
|
||||
String get formatAlignLeft => 'Linksbündig';
|
||||
|
||||
@override
|
||||
String get formatAlignCenter => 'Zentriert';
|
||||
|
||||
@override
|
||||
String get formatAlignRight => 'Rechtsbündig';
|
||||
|
||||
@override
|
||||
String get formatBold => 'Fett';
|
||||
|
||||
@override
|
||||
String get formatItalic => 'Kursiv';
|
||||
|
||||
@override
|
||||
String get formatUnderline => 'Unterstrichen';
|
||||
|
||||
@override
|
||||
String get formatSuperscript => 'Hochgestellt';
|
||||
|
||||
@override
|
||||
String get formatSubscript => 'Tiefgestellt';
|
||||
|
||||
@override
|
||||
String get formatRuby => 'Text darüber (Aussprache, Übersetzung)';
|
||||
|
||||
|
|
@ -2870,27 +2846,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get formatRubyPinyin => 'Pinyin (über den Schriftzeichen)';
|
||||
|
||||
@override
|
||||
String get formatLink => 'Link';
|
||||
|
||||
@override
|
||||
String get linkTitle => 'Link';
|
||||
|
||||
@override
|
||||
String get linkText => 'Text';
|
||||
|
||||
@override
|
||||
String get linkAddress => 'Adresse';
|
||||
|
||||
@override
|
||||
String get linkAddressHint => 'https://…';
|
||||
|
||||
@override
|
||||
String get linkSave => 'Speichern';
|
||||
|
||||
@override
|
||||
String get linkRemove => 'Link entfernen';
|
||||
|
||||
@override
|
||||
String get rubyTitle => 'Text darüber';
|
||||
|
||||
|
|
@ -4045,57 +4000,6 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get fileRemoveSound => 'Audio entfernen';
|
||||
|
||||
@override
|
||||
String get editorInsert => 'Einfügen';
|
||||
|
||||
@override
|
||||
String get blockGroupText => 'Text';
|
||||
|
||||
@override
|
||||
String get blockGroupBlocks => 'Blöcke';
|
||||
|
||||
@override
|
||||
String get blockGroupMedia => 'Medien';
|
||||
|
||||
@override
|
||||
String blockHeading(int level) {
|
||||
return 'Überschrift $level';
|
||||
}
|
||||
|
||||
@override
|
||||
String get blockBulletedList => 'Aufzählung';
|
||||
|
||||
@override
|
||||
String get blockNumberedList => 'Nummerierte Liste';
|
||||
|
||||
@override
|
||||
String get blockChecklist => 'Checkliste';
|
||||
|
||||
@override
|
||||
String get blockQuote => 'Zitat';
|
||||
|
||||
@override
|
||||
String get blockListItem => 'Listenpunkt';
|
||||
|
||||
@override
|
||||
String get blockChecklistItem => 'Aufgabe';
|
||||
|
||||
@override
|
||||
String get editorSlashHint =>
|
||||
'Tippe / für einen Block oder schreib einfach los';
|
||||
|
||||
@override
|
||||
String get blockDivider => 'Trennlinie';
|
||||
|
||||
@override
|
||||
String get blockTable => 'Tabelle';
|
||||
|
||||
@override
|
||||
String get blockRemove => 'Entfernen';
|
||||
|
||||
@override
|
||||
String get blockUnknown => 'Dieser Teil braucht eine neuere Version der App.';
|
||||
|
||||
@override
|
||||
String get blockCallout => 'Hinweisbox';
|
||||
|
||||
|
|
|
|||
|
|
@ -2813,30 +2813,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get composerKeepThis => 'Keep this';
|
||||
|
||||
@override
|
||||
String get formatAlignLeft => 'Align left';
|
||||
|
||||
@override
|
||||
String get formatAlignCenter => 'Centre';
|
||||
|
||||
@override
|
||||
String get formatAlignRight => 'Align right';
|
||||
|
||||
@override
|
||||
String get formatBold => 'Bold';
|
||||
|
||||
@override
|
||||
String get formatItalic => 'Italic';
|
||||
|
||||
@override
|
||||
String get formatUnderline => 'Underline';
|
||||
|
||||
@override
|
||||
String get formatSuperscript => 'Superscript';
|
||||
|
||||
@override
|
||||
String get formatSubscript => 'Subscript';
|
||||
|
||||
@override
|
||||
String get formatRuby => 'Text above (a pronunciation, a translation)';
|
||||
|
||||
|
|
@ -2846,27 +2822,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get formatRubyPinyin => 'Pinyin (above the characters)';
|
||||
|
||||
@override
|
||||
String get formatLink => 'Link';
|
||||
|
||||
@override
|
||||
String get linkTitle => 'Link';
|
||||
|
||||
@override
|
||||
String get linkText => 'Text';
|
||||
|
||||
@override
|
||||
String get linkAddress => 'Address';
|
||||
|
||||
@override
|
||||
String get linkAddressHint => 'https://…';
|
||||
|
||||
@override
|
||||
String get linkSave => 'Save';
|
||||
|
||||
@override
|
||||
String get linkRemove => 'Remove link';
|
||||
|
||||
@override
|
||||
String get rubyTitle => 'Text above';
|
||||
|
||||
|
|
@ -4009,57 +3964,6 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get fileRemoveSound => 'Remove sound';
|
||||
|
||||
@override
|
||||
String get editorInsert => 'Insert';
|
||||
|
||||
@override
|
||||
String get blockGroupText => 'Text';
|
||||
|
||||
@override
|
||||
String get blockGroupBlocks => 'Blocks';
|
||||
|
||||
@override
|
||||
String get blockGroupMedia => 'Media';
|
||||
|
||||
@override
|
||||
String blockHeading(int level) {
|
||||
return 'Heading $level';
|
||||
}
|
||||
|
||||
@override
|
||||
String get blockBulletedList => 'Bulleted list';
|
||||
|
||||
@override
|
||||
String get blockNumberedList => 'Numbered list';
|
||||
|
||||
@override
|
||||
String get blockChecklist => 'Checklist';
|
||||
|
||||
@override
|
||||
String get blockQuote => 'Quote';
|
||||
|
||||
@override
|
||||
String get blockListItem => 'List item';
|
||||
|
||||
@override
|
||||
String get blockChecklistItem => 'To-do';
|
||||
|
||||
@override
|
||||
String get editorSlashHint =>
|
||||
'Type / to insert a block, or just start typing';
|
||||
|
||||
@override
|
||||
String get blockDivider => 'Divider';
|
||||
|
||||
@override
|
||||
String get blockTable => 'Table';
|
||||
|
||||
@override
|
||||
String get blockRemove => 'Remove';
|
||||
|
||||
@override
|
||||
String get blockUnknown => 'This part needs a newer version of the app.';
|
||||
|
||||
@override
|
||||
String get blockCallout => 'Callout';
|
||||
|
||||
|
|
@ -8046,9 +7950,6 @@ class AppLocalizationsEnUs extends AppLocalizationsEn {
|
|||
@override
|
||||
String get tagSheetColor => 'Color';
|
||||
|
||||
@override
|
||||
String get formatAlignCenter => 'Center';
|
||||
|
||||
@override
|
||||
String get homeCustomise => 'Customize';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue