feat(app): choose, manage and filter by tags
The card editor offers its tags: a picker that searches by the start of a name, creates a tag (name and colour) and chooses it, and saves the choice with the card. A sheet lists every tag with its count, to add, rename (merging into a tag of that name), recolour and delete them, with an undo. The card list shows each card's tags and narrows to one tag. The editor closed twice once tags changed after saving; it now closes on becoming done only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
c2d4dfc8b6
commit
9dc9b6a5ed
1 changed files with 2076 additions and 63 deletions
|
|
@ -369,6 +369,138 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get settingsAbout => 'About Halkyon Learn';
|
||||
|
||||
@override
|
||||
String get tagsReadFailed => 'Couldn\'t read the tags.';
|
||||
|
||||
@override
|
||||
String get tagPickerTitle => 'Tags';
|
||||
|
||||
@override
|
||||
String get tagPickerManage => 'Manage tags';
|
||||
|
||||
@override
|
||||
String get tagPickerSearchLabel => 'Search or create a tag';
|
||||
|
||||
@override
|
||||
String tagPickerCreate(String name) {
|
||||
return 'Create \"$name\"';
|
||||
}
|
||||
|
||||
@override
|
||||
String get tagSheetCreateTitle => 'Create tag';
|
||||
|
||||
@override
|
||||
String get tagSheetEditTitle => 'Edit tag';
|
||||
|
||||
@override
|
||||
String get tagSheetNameLabel => 'Name';
|
||||
|
||||
@override
|
||||
String get tagSheetNameHelper => 'Stored and displayed in lowercase.';
|
||||
|
||||
@override
|
||||
String tagSheetNameExists(String name) {
|
||||
return 'The tag \'$name\' exists already.';
|
||||
}
|
||||
|
||||
@override
|
||||
String tagSheetNameMerges(String name) {
|
||||
return 'There is a tag \'$name\' already: saving merges this one into it.';
|
||||
}
|
||||
|
||||
@override
|
||||
String get tagSheetColor => 'Color';
|
||||
|
||||
@override
|
||||
String get tagSheetCreate => 'Create';
|
||||
|
||||
@override
|
||||
String get tagSheetSave => 'Save';
|
||||
|
||||
@override
|
||||
String get tagManageTitle => 'Manage tags';
|
||||
|
||||
@override
|
||||
String get tagManageEmpty => 'No tags yet. Add one below.';
|
||||
|
||||
@override
|
||||
String get tagManageAdd => 'Add tag';
|
||||
|
||||
@override
|
||||
String tagManageRow(String name, int count) {
|
||||
return '$name ($count)';
|
||||
}
|
||||
|
||||
@override
|
||||
String get tagManageEdit => 'Edit tag';
|
||||
|
||||
@override
|
||||
String get tagManageDelete => 'Delete tag';
|
||||
|
||||
@override
|
||||
String tagDeleteTitle(String name) {
|
||||
return 'Delete the tag \'$name\'?';
|
||||
}
|
||||
|
||||
@override
|
||||
String tagDeleteMessage(int count) {
|
||||
String _temp0 = intl.Intl.pluralLogic(
|
||||
count,
|
||||
locale: localeName,
|
||||
other: 'It is removed from $count flashcards, on all your devices.',
|
||||
one: 'It is removed from 1 flashcard, on all your devices.',
|
||||
zero: 'It isn\'t on any flashcards.',
|
||||
);
|
||||
return '$_temp0';
|
||||
}
|
||||
|
||||
@override
|
||||
String get tagDeleteConfirm => 'Delete';
|
||||
|
||||
@override
|
||||
String tagDeleted(String name) {
|
||||
return 'Deleted the tag \'$name\'';
|
||||
}
|
||||
|
||||
@override
|
||||
String get cardTagsLabel => 'Tags';
|
||||
|
||||
@override
|
||||
String get cardTagsAdd => 'Add tags';
|
||||
|
||||
@override
|
||||
String get cardTagsEdit => 'Edit tags';
|
||||
|
||||
@override
|
||||
String get cardFilterTooltip => 'Filter';
|
||||
|
||||
@override
|
||||
String get cardFilterTitle => 'Filter';
|
||||
|
||||
@override
|
||||
String get cardFilterTag => 'Tag';
|
||||
|
||||
@override
|
||||
String get cardFilterAllTags => 'All tags';
|
||||
|
||||
@override
|
||||
String get cardFilterNoTags => 'None of these flashcards has a tag yet.';
|
||||
|
||||
@override
|
||||
String get cardFilterClear => 'Clear all';
|
||||
|
||||
@override
|
||||
String get cardFilterApply => 'Apply';
|
||||
|
||||
@override
|
||||
String get cardFilterNothing => 'No flashcards have this tag.';
|
||||
|
||||
@override
|
||||
String get cardListMore => 'More';
|
||||
|
||||
@override
|
||||
String get cardListManageTags => 'Manage tags';
|
||||
|
||||
@override
|
||||
String get commonCancel => 'Cancel';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue