feat(paths): path files carry tables, callouts and furigana, and several import at once
The import format gains the blocks lessons need: tables (rows of cells), callouts (a kind, a title, blocks inside, but no table or callout), spoilers, quotes and dividers; and runs of text gain a reading shown as furigana, a colour, underline and strikethrough. A line break is a "\n" in the text. Still simple blocks turned into rich text here, so a change of the editor's own format never breaks a file written before. A table's columns are as wide as their longest line, narrowed alike to fit a phone, where the cells wrap. A studyset's Import › Learning paths now takes several files at once, one path each, stored in the order of their names, so a chapter's lessons come in with one pick. Every file is read before anything is stored: one that can't be read is named, and nothing comes in. 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
277994d31b
commit
7d99feca7f
1 changed files with 781 additions and 112 deletions
|
|
@ -395,6 +395,23 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
return 'Diese Datei konnte nicht importiert werden. $reason';
|
||||
}
|
||||
|
||||
@override
|
||||
String pathImportFileFailed(String file, String reason) {
|
||||
return '$file konnte nicht importiert werden. $reason';
|
||||
}
|
||||
|
||||
@override
|
||||
String pathsImported(int count, int steps) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
steps,
|
||||
locale: localeName,
|
||||
other: '$count Pfade mit $steps Schritten importiert.',
|
||||
one: '$count Pfade mit 1 Schritt importiert.',
|
||||
zero: '$count Pfade ohne Schritte importiert.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get pathImportUnreadable => 'Der Inhalt ist kein Text in UTF-8.';
|
||||
|
||||
|
|
@ -1052,10 +1069,11 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get exportUnavailable => 'nicht auf diesem Gerät verfügbar';
|
||||
|
||||
@override
|
||||
String get studysetImportPath => 'Lernpfad';
|
||||
String get studysetImportPath => 'Lernpfade';
|
||||
|
||||
@override
|
||||
String get studysetImportPathHint => 'Aus einer Halkyon-Pfad-JSON-Datei';
|
||||
String get studysetImportPathHint =>
|
||||
'Aus Halkyon-Pfad-JSON-Dateien, ein Pfad je Datei';
|
||||
|
||||
@override
|
||||
String get studysetImportAnki => 'Anki-Deck';
|
||||
|
|
@ -4895,6 +4913,20 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
String get pathImportMalformedSource =>
|
||||
'eine Quelle muss ein Objekt oder Text sein und ihre Teile Text.';
|
||||
|
||||
@override
|
||||
String get pathImportMalformedTable =>
|
||||
'eine Tabelle braucht „rows“ aus Zellen, jede so lang wie die erste.';
|
||||
|
||||
@override
|
||||
String pathImportMalformedCallout(String detail) {
|
||||
return 'eine Hinweisbox mit fehlerhaftem „$detail“.';
|
||||
}
|
||||
|
||||
@override
|
||||
String pathImportNotInCallout(String detail) {
|
||||
return 'ein „$detail“ kann nicht in einer Hinweisbox stehen.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get pomodoroTopBarHint =>
|
||||
'Der Timer kann in der oberen Leiste von GNOME herunterzählen, mit seinen Knöpfen, sobald die Erweiterung „AppIndicator“ an ist.';
|
||||
|
|
|
|||
Loading…
Reference in a new issue