halkyon/halkyon_learn_flutter/lib/l10n/app_localizations_en.dart
Tizian 「ティツィアーン」 f922fceb47
feat(app): reset a studyset's progress, with an undo
The studyset's options offer Reset progress: after asking, every card
in it and in the studysets inside it starts afresh as new (a 'reset'
entry each), its history kept; an undo for a few seconds deletes those
entries again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-01 21:10:07 +02:00

979 lines
22 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 studySettingsTitle => 'Session settings';
@override
String get studySettingsFilterByTags => 'Filter by tags';
@override
String get studySettingsFilterHint =>
'Study only the flashcards with any of the tags chosen.';
@override
String get studySettingsNoTags =>
'No tags yet. Add tags to your flashcards to filter them here.';
@override
String get studySettingsReset => 'Reset';
@override
String get studySettingsSave => 'Save';
@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 composerTitle => 'Create flashcards';
@override
String composerTitleFor(String title) {
return 'Create flashcards for \"$title\"';
}
@override
String get composerSaving => 'Saving…';
@override
String get composerSaveFailed => 'Save failed — retry';
@override
String get composerAllSaved => 'All changes saved';
@override
String get composerNewFlashcard => 'New flashcard';
@override
String get composerCollapseStack => 'Collapse stack';
@override
String get composerExpandStack => 'Expand stack';
@override
String get composerStatusSaving => 'Saving';
@override
String get composerStatusSaved => 'Saved';
@override
String get composerStatusFailed => 'Save failed';
@override
String get composerSaveFailedInline => 'Save failed.';
@override
String get composerRetry => 'Retry';
@override
String get composerEmptyPane => 'Add a flashcard to get started.';
@override
String get composerKindFlashcard => 'Flashcard';
@override
String get composerKindVocabulary => 'Vocabulary';
@override
String get composerKindMatching => 'Matching';
@override
String get composerKindMap => 'Map';
@override
String get composerLabelFront => 'Front';
@override
String get composerLabelQuestion => 'Question';
@override
String get composerLabelExpression => 'Expression';
@override
String get composerLabelPrompt => 'Prompt';
@override
String get composerLabelBack => 'Back';
@override
String get composerLabelAnswers => 'Answers';
@override
String get composerLabelAnswer => 'Answer';
@override
String get composerPlaceholderFront => 'Add question';
@override
String get composerPlaceholderExpression => 'Add expression';
@override
String get composerPlaceholderPrompt => 'Add prompt';
@override
String get composerAddAnswer => 'Add answer';
@override
String get composerCorrectAnswer => 'Correct answer';
@override
String get composerWrongAnswer => 'Wrong answer';
@override
String get composerRemoveAnswer => 'Remove answer';
@override
String composerPin(String field) {
return 'Pin $field: keep it for the next card';
}
@override
String composerUnpin(String field) {
return 'Unpin $field: clear it for the next card';
}
@override
String get composerTags => 'Tags';
@override
String get composerAddTags => 'Add tags';
@override
String get composerMoreActions => 'More actions';
@override
String get composerDuplicate => 'Duplicate';
@override
String get composerClearFields => 'Clear fields';
@override
String get composerDelete => 'Delete';
@override
String get composerDeleteTitle => 'Delete this flashcard?';
@override
String get composerDeleteDraftMessage =>
'The draft will be removed from this session. It has not been saved.';
@override
String get composerDeleteSavedMessage =>
'The flashcard will be removed from the studyset, on all your devices.';
@override
String composerDiscardTitle(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Discard unsaved flashcards?',
one: 'Discard unsaved flashcard?',
);
return '$_temp0';
}
@override
String composerDiscardMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other:
'$count flashcards haven\'t been saved yet. Leaving now will discard them.',
one: '1 flashcard hasn\'t been saved yet. Leaving now will discard it.',
);
return '$_temp0';
}
@override
String get composerDiscardConfirm => 'Discard';
@override
String get composerConflict =>
'This flashcard was changed differently on two devices. Choose the version to keep of each part below.';
@override
String get composerKeepThis => 'Keep this';
@override
String get vocabularyReading => 'Reading';
@override
String get vocabularyReadingHint => 'Kana reading';
@override
String get vocabularyMeanings => 'Meanings';
@override
String get vocabularyPrimaryMeaningHint => 'Primary meaning';
@override
String get vocabularyMeaningHint => 'Meaning';
@override
String get vocabularyAddMeaning => 'Add meaning';
@override
String get vocabularyRemoveMeaning => 'Remove meaning';
@override
String get matchingCategories => 'Categories';
@override
String get matchingCategoriesHint =>
'The drop-zone cards learners drag items onto. Each category needs at least one item, so a card can\'t have more categories than items.';
@override
String matchingCategory(int number) {
return 'Category $number';
}
@override
String get matchingAddCategory => 'Add category';
@override
String get matchingAddCategoryBlocked =>
'Add an item first: a card can\'t have more categories than items';
@override
String get matchingRemoveCategory => 'Remove category';
@override
String get matchingMinCategories => 'At least two categories required';
@override
String get matchingItems => 'Items';
@override
String get matchingItemsHint =>
'The draggable items. Assign every item to its correct category: an unassigned item can never be placed right.';
@override
String matchingItem(int number) {
return 'Item $number';
}
@override
String get matchingAddItem => 'Add item';
@override
String get matchingUnassigned => 'Unassigned';
@override
String get matchingRemoveItem => 'Remove item';
@override
String get matchingMinItems => 'At least two items required';
@override
String get cardTileOptions => 'Options';
@override
String get cardTileEdit => 'Edit';
@override
String get cardTileDelete => 'Delete';
@override
String get cardTileUntitled => 'Untitled';
@override
String get cardTileConflict => 'Changed on two devices';
@override
String get studyClose => 'Close session';
@override
String get studyBackFirstOn =>
'Showing the back of cards first: tap to revert';
@override
String get studyBackFirstOff => 'Show the back of cards first';
@override
String get studyShowAnswer => 'Show answer';
@override
String get studyCheck => 'Check';
@override
String get studyRatingBad => 'Bad';
@override
String get studyRatingOk => 'OK';
@override
String get studyRatingGood => 'Good';
@override
String get studyRatingPerfect => 'Perfect';
@override
String get studyNothingTitle => 'Nothing to study right now';
@override
String get studyNothingBody => 'Come back later when more cards are due.';
@override
String studyNextDue(String interval) {
return 'The next card is due in $interval.';
}
@override
String get studyDone => 'Done';
@override
String get studyRoundDone => 'Round complete';
@override
String get studyContinue => 'Continue learning';
@override
String get studyPrevious => 'Previous card';
@override
String get studyNext => 'Next card';
@override
String get studyReading => 'Reading';
@override
String get studyMeanings => 'Meanings';
@override
String get studyPlaceItems =>
'Drag each item onto its category, or tap an item and then a category.';
@override
String studyMinutes(int count) {
return '$count min';
}
@override
String studyHours(int count) {
return '$count h';
}
@override
String studyDays(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count days',
one: '1 day',
);
return '$_temp0';
}
@override
String studyMonths(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count months',
one: '1 month',
);
return '$_temp0';
}
@override
String studyYears(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count years',
one: '1 year',
);
return '$_temp0';
}
@override
String studyFilteredBy(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Narrowed to $count tags',
one: 'Narrowed to 1 tag',
);
return '$_temp0';
}
@override
String get studySettingsCardsPerRound => 'Cards per round';
@override
String get studySettingsNewPerDay => 'New cards per day';
@override
String get studySettingsNewPerDayHint =>
'How many never-studied cards each studyset starts a day. Due reviews are never limited.';
@override
String get studySettingsUnlimited => 'Unlimited';
@override
String get studySettingsSortBy => 'Sort by';
@override
String get studySettingsLearnMode => 'Learn mode';
@override
String get studyModeSpaced => 'Spaced repetition';
@override
String get studyModeSpacedHint =>
'Due cards on their schedules; ratings move them.';
@override
String get studyModeCram => 'Cram';
@override
String get studyModeCramHint =>
'Walk every card without touching the schedules.';
@override
String get studySortOldestFirst => 'Oldest first';
@override
String get studySortRandom => 'Random';
@override
String get studySortNewestFirst => 'Newest first';
@override
String get studyFewer => 'Fewer';
@override
String get studyMore => 'More';
@override
String get studysetMenuReset => 'Reset progress';
@override
String get studysetResetTitle => 'Reset progress?';
@override
String get studysetResetMessage =>
'Every flashcard in it, and in the studysets inside it, starts afresh as new, on all your devices. Your study history stays. You can undo this for a few seconds.';
@override
String get studysetResetConfirm => 'Reset';
@override
String get studysetResetDone => 'Progress reset';
@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.';
}