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>
522 lines
12 KiB
Dart
522 lines
12 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
|
|
import 'app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for English (`en`).
|
|
class AppLocalizationsEn extends AppLocalizations {
|
|
AppLocalizationsEn([String locale = 'en']) : super(locale);
|
|
|
|
@override
|
|
String get appTitle => 'Halkyon Learn';
|
|
|
|
@override
|
|
String get shellTabHome => 'Home';
|
|
|
|
@override
|
|
String get shellTabLibrary => 'Library';
|
|
|
|
@override
|
|
String get shellTabExplore => 'Explore';
|
|
|
|
@override
|
|
String get shellTabProfile => 'Profile';
|
|
|
|
@override
|
|
String get homeTitle => 'Home';
|
|
|
|
@override
|
|
String get homeLibraryIntro =>
|
|
'Your studysets and cards are in your library.';
|
|
|
|
@override
|
|
String get homeOpenLibrary => 'Open library';
|
|
|
|
@override
|
|
String get libraryTitle => 'Library';
|
|
|
|
@override
|
|
String get libraryNewStudyset => 'New studyset';
|
|
|
|
@override
|
|
String get libraryEmpty => 'No studysets yet';
|
|
|
|
@override
|
|
String get libraryUnreadable => 'Couldn\'t read your studysets.';
|
|
|
|
@override
|
|
String get libraryArchivedSection => 'Archived';
|
|
|
|
@override
|
|
String get librarySearchTooltip => 'Search';
|
|
|
|
@override
|
|
String get librarySearchHint => 'Search studysets';
|
|
|
|
@override
|
|
String get librarySearchClearTooltip => 'Clear query';
|
|
|
|
@override
|
|
String get librarySearchCloseTooltip => 'Close search';
|
|
|
|
@override
|
|
String get librarySearchNoMatches => 'No studysets match your search';
|
|
|
|
@override
|
|
String get libraryStudysetArchived => 'Studyset archived';
|
|
|
|
@override
|
|
String get libraryStudysetUnarchived => 'Studyset unarchived';
|
|
|
|
@override
|
|
String get libraryStudysetDeleted => 'Studyset deleted';
|
|
|
|
@override
|
|
String get libraryDeleteTitle => 'Delete studyset?';
|
|
|
|
@override
|
|
String get libraryDeleteMessage =>
|
|
'It is deleted with everything inside it and all their cards, on all your devices. You can undo this for a few seconds.';
|
|
|
|
@override
|
|
String get libraryDeleteConfirm => 'Delete';
|
|
|
|
@override
|
|
String get studysetSheetCreateTitle => 'Create studyset';
|
|
|
|
@override
|
|
String get studysetSheetEditTitle => 'Edit studyset';
|
|
|
|
@override
|
|
String get studysetSheetCreate => 'Create';
|
|
|
|
@override
|
|
String get studysetSheetSave => 'Save';
|
|
|
|
@override
|
|
String get studysetSheetTitleLabel => 'Title';
|
|
|
|
@override
|
|
String get studysetSheetSecondaryLabel => 'Secondary title';
|
|
|
|
@override
|
|
String get studysetSheetSecondaryHelper =>
|
|
'Shown as a small label above the title.';
|
|
|
|
@override
|
|
String get studysetSheetColor => 'Color';
|
|
|
|
@override
|
|
String get studysetSheetDiscardTitle => 'Discard changes?';
|
|
|
|
@override
|
|
String get studysetSheetDiscardMessage =>
|
|
'You have unsaved changes to this studyset. Discard them and close the form?';
|
|
|
|
@override
|
|
String get studysetSheetDiscardConfirm => 'Discard';
|
|
|
|
@override
|
|
String paletteColorName(String name) {
|
|
String _temp0 = intl.Intl.selectLogic(
|
|
name,
|
|
{
|
|
'carrot': 'Carrot',
|
|
'cerise': 'Cerise',
|
|
'cobalt': 'Cobalt',
|
|
'copper': 'Copper',
|
|
'enzian': 'Enzian',
|
|
'fern': 'Fern',
|
|
'forest': 'Forest',
|
|
'ocean': 'Ocean',
|
|
'olive': 'Olive',
|
|
'pacific': 'Pacific',
|
|
'pickle': 'Pickle',
|
|
'pine': 'Pine',
|
|
'pink': 'Pink',
|
|
'plum': 'Plum',
|
|
'purple': 'Purple',
|
|
'reef': 'Reef',
|
|
'sahara': 'Sahara',
|
|
'slateblue': 'Slate blue',
|
|
'soil': 'Soil',
|
|
'strawberry': 'Strawberry',
|
|
'other': '$name',
|
|
},
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String colorPickerLabel(String color) {
|
|
return 'Color: $color';
|
|
}
|
|
|
|
@override
|
|
String studysetCountFlashcards(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count flashcards',
|
|
one: '1 flashcard',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get studysetNoContent => 'No content yet';
|
|
|
|
@override
|
|
String get studysetActionReview => 'Review';
|
|
|
|
@override
|
|
String get studysetActionStudy => 'Study';
|
|
|
|
@override
|
|
String get studysetActionAdd => 'Add content';
|
|
|
|
@override
|
|
String get studysetArchived => 'Archived';
|
|
|
|
@override
|
|
String get studysetStar => 'Star';
|
|
|
|
@override
|
|
String get studysetUnstar => 'Unstar';
|
|
|
|
@override
|
|
String get studysetOptions => 'Options';
|
|
|
|
@override
|
|
String get studysetMenuEdit => 'Edit';
|
|
|
|
@override
|
|
String get studysetMenuArchive => 'Archive';
|
|
|
|
@override
|
|
String get studysetMenuUnarchive => 'Unarchive';
|
|
|
|
@override
|
|
String get studysetMenuDelete => 'Delete';
|
|
|
|
@override
|
|
String get studysetMenuMove => 'Move to…';
|
|
|
|
@override
|
|
String get studysetTabFlashcards => 'Flashcards';
|
|
|
|
@override
|
|
String get studysetFlashcardsEmpty => 'No flashcards yet';
|
|
|
|
@override
|
|
String get studysetFlashcardsEmptyHint => 'Add some to start studying.';
|
|
|
|
@override
|
|
String get studysetAddMaterial => 'Add material';
|
|
|
|
@override
|
|
String get studysetCreateFlashcards => 'Create flashcards';
|
|
|
|
@override
|
|
String get studysetStudy => 'Study';
|
|
|
|
@override
|
|
String studysetLearnCount(int count) {
|
|
return 'Learn $count';
|
|
}
|
|
|
|
@override
|
|
String get studysetOpenTopics => 'Show topics';
|
|
|
|
@override
|
|
String get studysetTopics => 'Topics';
|
|
|
|
@override
|
|
String get studysetAllTopics => 'All topics';
|
|
|
|
@override
|
|
String get studysetNewSubStudyset => 'New sub-studyset';
|
|
|
|
@override
|
|
String get studysetSubStudysetsEmpty => 'No sub-studysets yet.';
|
|
|
|
@override
|
|
String get studysetSubStudysetsEmptyHint =>
|
|
'Break this studyset into milestones or lessons.';
|
|
|
|
@override
|
|
String get studysetReorder => 'Reorder';
|
|
|
|
@override
|
|
String get studysetReorderDone => 'Done';
|
|
|
|
@override
|
|
String get studysetDragToReorder => 'Drag to reorder';
|
|
|
|
@override
|
|
String get studysetMoveTitle => 'Move studyset to';
|
|
|
|
@override
|
|
String get studysetMoveTopLevel => 'Top level';
|
|
|
|
@override
|
|
String get studysetMoveCurrent => 'Where it is now';
|
|
|
|
@override
|
|
String get studysetMoveConfirm => 'Move';
|
|
|
|
@override
|
|
String get studysetMoveShowInside => 'Show what is inside';
|
|
|
|
@override
|
|
String get studysetMoveHideInside => 'Hide what is inside';
|
|
|
|
@override
|
|
String studysetMoved(String destination) {
|
|
return 'Moved to $destination.';
|
|
}
|
|
|
|
@override
|
|
String get studysetReadMore => 'Read more';
|
|
|
|
@override
|
|
String get studysetDescriptionTitle => 'Description';
|
|
|
|
@override
|
|
String get studysetDescriptionEditTitle => 'Edit description';
|
|
|
|
@override
|
|
String get studysetDescriptionSave => 'Save';
|
|
|
|
@override
|
|
String get studysetSheetDescription => 'Description';
|
|
|
|
@override
|
|
String get studysetSheetDescriptionAdd => 'Add a description';
|
|
|
|
@override
|
|
String get studysetSheetInheritColor => 'Same color as the studyset it is in';
|
|
|
|
@override
|
|
String get exploreTitle => 'Explore';
|
|
|
|
@override
|
|
String get exploreEmpty => 'Studysets that others share will appear here.';
|
|
|
|
@override
|
|
String get profileTitle => 'Profile';
|
|
|
|
@override
|
|
String get profileSettingsTooltip => 'Settings';
|
|
|
|
@override
|
|
String get profileIdentified => 'Your progress is kept with your account.';
|
|
|
|
@override
|
|
String get profileAnonymous =>
|
|
'Progress is saved on this device. Sign in to keep it.';
|
|
|
|
@override
|
|
String get profileSignInWithGitHub => 'Sign in with GitHub';
|
|
|
|
@override
|
|
String get profileSignInFailed => 'Couldn\'t sign in with GitHub.';
|
|
|
|
@override
|
|
String get profileContinueInBrowser => 'Continue in your browser.';
|
|
|
|
@override
|
|
String get profileSwitchTitle => 'Switch to your GitHub account?';
|
|
|
|
@override
|
|
String get profileSwitchMessage =>
|
|
'This GitHub account already has progress from another device. The studysets on this device can\'t be combined with it yet: if you switch, they are deleted.';
|
|
|
|
@override
|
|
String get profileSwitchStay => 'Stay anonymous';
|
|
|
|
@override
|
|
String get profileSwitchConfirm => 'Switch';
|
|
|
|
@override
|
|
String get settingsTitle => 'Settings';
|
|
|
|
@override
|
|
String get settingsAccount => 'Account';
|
|
|
|
@override
|
|
String get settingsSignOut => 'Sign out';
|
|
|
|
@override
|
|
String get settingsSignOutTitle => 'Sign out?';
|
|
|
|
@override
|
|
String get settingsSignOutAnonymousMessage =>
|
|
'This account can\'t be signed into again, so signing out deletes it with its progress.';
|
|
|
|
@override
|
|
String get settingsDeleteAccount => 'Delete account';
|
|
|
|
@override
|
|
String get settingsDeleteTitle => 'Delete your account?';
|
|
|
|
@override
|
|
String get settingsDeleteMessage =>
|
|
'Everything you have, your studysets, cards and reviews, is deleted on the server and on all your devices. This can\'t be undone.';
|
|
|
|
@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';
|
|
|
|
@override
|
|
String get commonClose => 'Close';
|
|
|
|
@override
|
|
String get commonUndo => 'Undo';
|
|
|
|
@override
|
|
String get commonTryAgain => 'Try again';
|
|
|
|
@override
|
|
String get sessionUnreachable => 'Couldn\'t reach the server.';
|
|
|
|
@override
|
|
String get notFoundGone =>
|
|
'This no longer exists. It may have been deleted on another device.';
|
|
}
|