// 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 launchBrand => 'Halkyon'; @override String get launchProduct => '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 libraryTitle => 'Library'; @override String get libraryCreateStudyset => 'Create 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 => 'Moved to Recently deleted'; @override String get libraryDeletedSection => 'Recently deleted'; @override String get libraryDeletedNote => 'Deleted studysets are kept for 14 days, with everything inside them. After that, they are deleted for good.'; @override String libraryDeletedDaysLeft(int days) { String _temp0 = intl.Intl.pluralLogic( days, locale: localeName, other: '$days days left', one: '1 day left', zero: 'Deleted for good soon', ); return '$_temp0'; } @override String get libraryRestore => 'Restore'; @override String get libraryDeleteNow => 'Delete now'; @override String get libraryStudysetRestored => 'Studyset restored'; @override String get libraryDeleteForGoodTitle => 'Delete for good?'; @override String libraryDeleteForGoodMessage(String title) { return '“$title” is deleted with everything inside it and all their cards, on all your devices. This can\'t be undone.'; } @override String get libraryDeleteForGoodConfirm => 'Delete for good'; @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 on cards and the studyset\'s header. Paths use it to label tiers (Challenge, Milestone, Lesson).'; @override String get studysetSheetColor => 'Colour'; @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 'Colour: $color'; } @override String studysetCountFlashcards(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count flashcards', one: '1 flashcard', ); return '$_temp0'; } @override String studysetCountNotes(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count notes', one: '1 note', ); return '$_temp0'; } @override String studysetCountFiles(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count files', one: '1 file', ); return '$_temp0'; } @override String get libraryRefresh => 'Refresh'; @override String get libraryOptions => 'Library options'; @override String get libraryImport => 'Import'; @override String get libraryImportAnkiHint => 'Becomes a studyset of its own, from an .apkg or .colpkg file'; @override String get libraryImportArchive => 'Halkyon archive'; @override String get libraryImportArchiveHint => 'A studyset with everything in it and its progress, from a .zip file'; @override String get archiveFileType => 'Halkyon archive'; @override String get archiveImportTitle => 'Import archive'; @override String get archiveImportReading => 'Reading the archive…'; @override String archiveImportHolds(String title) { return '“$title” holds:'; } @override String archiveCountStudysets(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count studysets', one: '1 studyset', ); return '$_temp0'; } @override String archiveCountReviews(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count reviews', one: '1 review', ); return '$_temp0'; } @override String get archiveImportConfirm => 'Import'; @override String archiveImported(String cards, String reviews) { return 'Imported: $cards and $reviews.'; } @override String archiveImportMissingEntries(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count words aren\'t', one: '1 word isn\'t', ); return '$_temp0 in this instance\'s dictionary and stayed out.'; } @override String get archiveNotAnArchive => 'This file isn\'t a Halkyon archive.'; @override String get archiveNewerFormat => 'This archive comes from a newer version of the app. Update the app to import it.'; @override String get archiveUnreadable => 'This archive can\'t be read.'; @override String get archiveImportBrokeOff => 'The import broke off. Check the connection and try again.'; @override String get libraryRetry => 'Retry'; @override String get studysetNoContent => 'No content yet'; @override String get studysetEmpty => 'Empty'; @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 studysetByYou => 'By you'; @override String studysetByAuthor(String author) { return 'By $author'; } @override String get studysetByOthers => 'A copy'; @override String get studysetVisibilityPrivate => 'Private'; @override String get studysetVisibilityPublic => 'Public'; @override String get studysetOptions => 'Options'; @override String get studysetBibliography => 'Bibliography'; @override String get studysetBibliographyIntro => 'Works cited across this studyset, in the citation style chosen in Settings.'; @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 studysetTabNotes => 'Notes'; @override String get studysetTabPaths => 'Paths'; @override String get studysetCreatePath => 'Create a path'; @override String get pathImportMenu => 'Import a path (JSON)'; @override String get pathImportFileType => 'Learning path (JSON)'; @override String pathImported(String title, int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Imported \"$title\" with $count steps.', one: 'Imported \"$title\" with 1 step.', ); return '$_temp0'; } @override String pathImportSkipped(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count blocks were left out: images and animations aren\'t imported.', one: '1 block was left out: images and animations aren\'t imported.', ); return '$_temp0'; } @override String pathImportFailed(String reason) { return 'Couldn\'t import this file. $reason'; } @override String pathImportFileFailed(String file, String reason) { return 'Couldn\'t import $file. $reason'; } @override String pathImportReading(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Reading $count files…', one: 'Reading the file…', ); return '$_temp0'; } @override String pathImportStoring(int index, int count, String title) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Importing path $index of $count: “$title”…', one: 'Importing “$title”…', ); return '$_temp0'; } @override String pathsImported(int count, int steps) { String _temp0 = intl.Intl.pluralLogic( steps, locale: localeName, other: 'Imported $count paths with $steps steps.', one: 'Imported $count paths with 1 step.', zero: 'Imported $count paths without steps.', ); return '$_temp0'; } @override String get pathImportUnreadable => 'It isn\'t text in UTF-8.'; @override String get pathsEmpty => 'No paths yet'; @override String get pathsEmptyHint => 'A path leads through a lesson, step by step. Use \"Add material → Create a path\" to write one, or \"⋮ → Import content\" to import one.'; @override String get pathOptions => 'Path options'; @override String get pathEdit => 'Edit'; @override String get pathResetProgress => 'Reset progress'; @override String get pathProgressReset => 'Progress reset'; @override String get pathResetTitle => 'Reset progress?'; @override String get pathResetMessage => 'All your progress through this path will be cleared. You can undo this for a few seconds.'; @override String get pathResetConfirm => 'Reset'; @override String get pathDelete => 'Delete'; @override String get pathDeleteTitle => 'Delete path?'; @override String get pathDeleteMessage => 'This path and its steps will be removed from the studyset. You can undo this for a few seconds.'; @override String get pathDeleteConfirm => 'Delete'; @override String get pathDeleted => 'Path deleted'; @override String get pathCreateTitle => 'New path'; @override String get pathCreate => 'Create'; @override String get pathTitleLabel => 'Title'; @override String get pathSecondaryTitleLabel => 'Secondary title'; @override String get pathSecondaryTitleHint => 'E.g. the title in the language you learn'; @override String get pathEditTitle => 'Edit path'; @override String get pathDescription => 'Description'; @override String get pathAddDescription => 'Add a description'; @override String get pathDescriptionEditTitle => 'Path description'; @override String get pathAddTags => 'Add tags'; @override String get pathTags => 'Tags'; @override String get pathEditTags => 'Edit tags'; @override String get pathSteps => 'Steps'; @override String get pathStepsEmpty => 'No steps yet'; @override String get pathStepsEmptyHint => 'Pick a step type to start writing the lesson.'; @override String get pathAddStep => 'Add step'; @override String get pathReorder => 'Reorder'; @override String get pathReorderDone => 'Done'; @override String get pathStepDelete => 'Delete step'; @override String get pathStepDeleted => 'Step deleted'; @override String get stepUntitled => 'Untitled step'; @override String get stepKindInfo => 'Info'; @override String get stepKindSingleChoice => 'Single choice'; @override String get stepKindMultipleChoice => 'Multiple choice'; @override String get stepKindDragAndDrop => 'Drag and drop'; @override String get stepKindFillInTheBlank => 'Fill in the blank'; @override String get stepEditTitle => 'Edit step'; @override String get stepTitleHint => 'Title'; @override String get stepOptions => 'Options'; @override String stepOptionHint(int number) { return 'Option $number'; } @override String get stepAddOption => 'Add option'; @override String get stepRemoveOption => 'Remove option'; @override String get stepCorrectOption => 'The right one'; @override String get stepCorrectOptions => 'Right ones'; @override String get stepCategories => 'Categories'; @override String stepCategoryHint(int number) { return 'Category $number'; } @override String get stepAddCategory => 'Add category'; @override String get stepRemoveCategory => 'Remove category'; @override String get stepItems => 'Items'; @override String stepItemHint(int number) { return 'Item $number'; } @override String get stepAddItem => 'Add item'; @override String get stepRemoveItem => 'Remove item'; @override String get stepItemCategory => 'Belongs to'; @override String get stepPassage => 'Passage'; @override String get stepPassageHint => 'Type ___ (three underscores) wherever a word should be dropped in.'; @override String stepBlankHint(int number) { return 'Word for gap $number'; } @override String get stepIncomplete => 'Not ready to answer yet: fill in every field and choose what is right.'; @override String get stepFeedbackRight => 'Feedback after a right answer'; @override String get stepFeedbackWrong => 'Feedback after a wrong answer'; @override String get stepFeedbackNone => 'None'; @override String get sources => 'Sources'; @override String sourcesCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count sources', one: '1 source', ); return '$_temp0'; } @override String get sourcesNone => 'No sources cited yet.'; @override String get sourcesEdit => 'Edit sources'; @override String get sourcesEditDone => 'Done editing'; @override String get sourceAdd => 'Add a source'; @override String get sourceEdit => 'Edit source'; @override String get sourceRemove => 'Remove source'; @override String get sourceRemoved => 'Source removed'; @override String get sourceSheetAdd => 'Add'; @override String get sourceAuthors => 'Authors'; @override String get sourceAuthorsHint => 'Full names, one per line, e.g. Mark A. McDaniel'; @override String get sourceYear => 'Year'; @override String get sourceYearHint => 'e.g. 2014'; @override String get sourceTitle => 'Title'; @override String get sourceTitleHint => 'Title of the work'; @override String get sourceContainer => 'Published in'; @override String get sourceContainerHint => 'Journal, book or website it is part of, with pages'; @override String get sourceContainerHelper => 'Leave empty for a work of its own, such as a book.'; @override String get sourcePublisher => 'Publisher'; @override String get sourcePublisherHint => 'e.g. Belknap Press'; @override String get sourceIsbn => 'ISBN'; @override String get sourceIsbnHint => 'e.g. 978-0-674-72901-8'; @override String get sourceUrl => 'Link'; @override String get sourceUrlHint => 'https://…'; @override String sourceImportedAs(String citation) { return 'Imported as: $citation'; } @override String sourceIsbnLine(String isbn) { return 'ISBN: $isbn'; } @override String get sourceAvailableAt => 'Available at:'; @override String get sourceEmpty => 'Empty reference'; @override String get sourceDiscardTitle => 'Discard changes?'; @override String get sourceDiscardMessage => 'What you typed for this source will be lost.'; @override String get sourceDiscardConfirm => 'Discard'; @override String get sourceKind => 'Kind of source'; @override String get sourceKindWork => 'Book or article'; @override String get sourceKindWebsite => 'Website'; @override String get sourceKindVideo => 'YouTube video'; @override String get sourceWebsiteName => 'Website'; @override String get sourceWebsiteNameHint => 'Its name, e.g. Wikipedia'; @override String get sourcePageTitleHint => 'Title of the page'; @override String get sourceChannel => 'Channel'; @override String get sourceChannelHint => 'Who published it on YouTube'; @override String get sourceVideoTitleHint => 'Title of the video'; @override String get sourceVideoLink => 'Link to the video'; @override String get sourceVideoLinkInvalid => 'Not a link to a YouTube video'; @override String get sourcePlay => 'Play video'; @override String get stepConflict => 'This step was changed differently on another device. Keep one version to go on writing.'; @override String get stepFieldTitle => 'Title'; @override String get stepFieldBody => 'Text'; @override String get stepFieldExercise => 'Exercise'; @override String get stepFieldRightFeedback => 'Feedback after a right answer'; @override String get stepFieldWrongFeedback => 'Feedback after a wrong answer'; @override String get stepFieldSources => 'Sources'; @override String get runnerClose => 'Close'; @override String get runnerEditStep => 'Edit step'; @override String get runnerBack => 'Back'; @override String get runnerCheck => 'Check answers'; @override String get runnerContinue => 'Continue'; @override String get runnerFinish => 'Finish'; @override String get runnerRight => 'Correct!'; @override String get runnerWrong => 'Not quite'; @override String get runnerAlreadyRight => 'You already answered this correctly.'; @override String get runnerSelectAll => 'Select all that apply.'; @override String get runnerDragHint => 'Drag each item into the category it belongs to, or tap it and then the category. Tap a placed item to take it back.'; @override String get runnerBlankHint => 'Drag a word into each gap, or tap it and then the gap. Tap a placed word to take it back.'; @override String get runnerEmpty => 'This path has no steps yet.'; @override String get runnerFinished => 'You finished this path'; @override String runnerFinishedSteps(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count steps complete.', one: '1 step complete.', ); return '$_temp0'; } @override String get runnerNextPath => 'Continue to next path'; @override String get runnerBackToStudyset => 'Back to studyset'; @override String studysetCountPaths(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count paths', one: '1 path', ); return '$_temp0'; } @override String get studysetCreateNote => 'Create a note'; @override String get notesEmpty => 'No notes yet'; @override String get notesEmptyHint => 'Use \"Add material → Create a note\" to write one.'; @override String get noteUntitled => 'Untitled note'; @override String noteEdited(String when) { return 'Edited $when'; } @override String get timeJustNow => 'just now'; @override String timeMinutesAgo(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count minutes ago', one: '1 minute ago', ); return '$_temp0'; } @override String timeHoursAgo(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count hours ago', one: '1 hour ago', ); return '$_temp0'; } @override String timeDaysAgo(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count days ago', one: 'yesterday', ); return '$_temp0'; } @override String get noteOptions => 'Note options'; @override String get noteEdit => 'Edit'; @override String get noteDelete => 'Delete'; @override String get noteDeleteTitle => 'Delete note?'; @override String get noteDeleteMessage => 'This note will be removed from the studyset. You can undo this for a few seconds.'; @override String get noteDeleteConfirm => 'Delete'; @override String get noteDeleted => 'Note deleted'; @override String get noteTitleHint => 'Title'; @override String get noteEditing => 'Editing…'; @override String get noteSaving => 'Saving…'; @override String get noteSaved => 'Saved'; @override String get noteSaveFailed => 'Save failed'; @override String get noteConflict => 'This note was changed differently on another device. Keep one version to go on writing.'; @override String get noteFieldTitle => 'Title'; @override String get noteFieldBody => 'Text'; @override String get noteKeepThis => 'Keep this'; @override String get noteAddTags => 'Add tags'; @override String get noteEditTags => 'Edit tags'; @override String get studysetFlashcardsEmpty => 'No flashcards yet'; @override String get studysetFlashcardsEmptyHint => 'Use \"Add material → Create flashcards\" to write some, or \"⋮ → Import content\" to bring in an Anki deck or a list.'; @override String get studysetAddMaterial => 'Add material'; @override String get studysetPathsInTopics => 'The paths are in its topics'; @override String get studysetPathsInTopicsHint => 'Or write one here: \"Add material → Create a path\".'; @override String get studysetFlashcardsInTopics => 'The flashcards are in its topics'; @override String get studysetFlashcardsInTopicsHint => 'Or add some here: \"Add material → Create flashcards\".'; @override String get studysetNotesInTopics => 'The notes are in its topics'; @override String get studysetNotesInTopicsHint => 'Or write one here: \"Add material → Create a note\".'; @override String get studysetFilesInTopics => 'The files are in its topics'; @override String get studysetFilesInTopicsHint => 'Or add one here: \"Add material → Upload a PDF\".'; @override String studysetBrowseAllFlashcards(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Browse all $count', one: 'Browse it', ); return '$_temp0'; } @override String get studysetCreateFlashcards => 'Create flashcards'; @override String get studysetStudy => 'Study'; @override String studysetLearnCount(int count) { return 'Learn $count'; } @override String studysetLearnFlashcards(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Learn $count flashcards', one: 'Learn 1 flashcard', ); return '$_temp0'; } @override String get studysetNothingToStudy => 'Nothing to study yet'; @override String get studysetStudyMode => 'Study mode'; @override String studysetStartPath(String title) { return 'Start: $title'; } @override String studysetContinuePath(String title) { return 'Continue: $title'; } @override String get studysetStartPathHint => 'Begin the first step of this path.'; @override String get studysetContinuePathHint => 'Pick up the next path step where you left off.'; @override String get studysetSpacedRepetition => 'Spaced repetition'; @override String get studysetSpacedRepetitionHint => 'Review the cards that are due, scheduled by FSRS.'; @override String get studysetImportContent => 'Import content'; @override String get studysetMenuExport => 'Export content'; @override String get exportRunning => 'Exporting…'; @override String get exportedMarkdown => 'Exported as Markdown.'; @override String exportedZip(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Exported as Markdown with $count files (.zip).', one: 'Exported as Markdown with 1 file (.zip).', ); return '$_temp0'; } @override String exportMissingFiles(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count files weren\'t on this device and are left out.', one: '1 file wasn\'t on this device and is left out.', ); return '$_temp0'; } @override String get exportFailed => 'Couldn\'t export the studyset.'; @override String get exportTitle => 'Export'; @override String get exportArchive => 'Archive'; @override String get exportArchiveSubtitle => 'A .zip to import again: a backup, or a move to another instance.'; @override String get exportMarkdown => 'Markdown'; @override String get exportMarkdownSubtitle => 'To read elsewhere. It can\'t be imported again.'; @override String get exportWithProgress => 'With my progress'; @override String get exportWithProgressSubtitle => 'Reviews, answers, pages read, the exam you\'re preparing for, your reports and reading deadlines'; @override String get exportConfirm => 'Export'; @override String get exportedArchive => 'Exported as an archive (.zip).'; @override String exportArchiveFilesMissing(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count files aren\'t on this device and couldn\'t be downloaded.', one: '1 file isn\'t on this device and couldn\'t be downloaded.', ); return '$_temp0 Connect to the internet and try again.'; } @override String get exportQuestion => 'Q'; @override String get exportAnswer => 'A'; @override String get exportHint => 'Hint'; @override String get exportIfRight => 'If right'; @override String get exportIfWrong => 'If wrong'; @override String get exportSound => 'Sound'; @override String get exportVideo => 'YouTube video'; @override String get exportSpoiler => 'Spoiler'; @override String get exportUnavailable => 'not available on this device'; @override String get studysetImportPath => 'Learning paths'; @override String get studysetImportPathHint => 'From Halkyon path JSON files, one path each'; @override String get studysetImportAnki => 'Anki deck'; @override String get studysetImportAnkiHint => 'From an .apkg or .colpkg file'; @override String get studysetImportCards => 'Flashcards'; @override String get studysetImportCardsHint => 'Pasted, or from a CSV or TSV file'; @override String get cardTextImportTitle => 'Import flashcards'; @override String get cardTextImportDescription => 'One card per line: its front, a separator, then its back. Each line is split at its first separator; lines without one are left out. A field in double quotes, as spreadsheets write them, may hold separators and line breaks.'; @override String get cardTextImportHint => 'Paste the cards here'; @override String get cardTextImportLoadFile => 'Load a CSV or TSV file'; @override String get cardTextImportFileType => 'CSV or TSV files'; @override String get cardTextImportUnreadable => 'This file doesn\'t hold text.'; @override String get cardTextImportSeparator => 'Separator'; @override String get cardTextSeparatorTab => 'Tab'; @override String get cardTextSeparatorComma => 'Comma'; @override String get cardTextSeparatorSemicolon => 'Semicolon'; @override String get cardTextImportNone => 'No cards found yet.'; @override String cardTextImportReady(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count cards ready to import.', one: '1 card ready to import.', ); return '$_temp0'; } @override String get cardTextImportSubmit => 'Import'; @override String cardTextImported(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Imported $count flashcards.', one: 'Imported 1 flashcard.', ); return '$_temp0'; } @override String get studysetReorder => 'Reorder'; @override String get studysetReorderPaths => 'Reorder paths'; @override String get studysetReorderNotes => 'Reorder notes'; @override String get studysetReorderFiles => 'Reorder files'; @override String get studysetReorderDone => 'Done'; @override String get studysetOpenTopics => 'Show topics'; @override String studysetTopicCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count topics', one: '1 topic', ); return '$_temp0'; } @override String get studysetShowInnerTopics => 'Show the topics inside'; @override String get studysetHideInnerTopics => 'Hide the topics inside'; @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 studysetDragToReorder => 'Drag to reorder'; @override String get studysetMoveTitle => 'Move studyset to'; @override String get studysetMoveTopLevel => 'Top level'; @override String get studysetMoveCurrent => '(current)'; @override String get studysetMoveTopLevelRow => 'Top level (no parent)'; @override String get studysetMoveArchived => 'Archived'; @override String get studysetMoveNew => 'New studyset'; @override String get studysetMoveSelectDestination => 'Select a destination'; @override String studysetMoveDestination(String name) { return 'Destination: $name'; } @override String get studysetMoveConfirm => 'Move'; @override String get studysetMoveShowInside => 'Show sub-studysets'; @override String get studysetMoveHideInside => 'Hide sub-studysets'; @override String studysetMoved(String title, String destination) { return 'Moved \"$title\" to $destination.'; } @override String get studysetReadMore => 'Read more'; @override String get studysetDescriptionTitle => 'Description'; @override String get studysetDescriptionEditTitle => 'Edit description'; @override String get richTextSave => 'Save'; @override String get studysetSheetDescription => 'Description'; @override String get studysetSheetDescriptionAdd => 'Tap to add a description'; @override String get studysetSheetDescriptionAdded => 'Description added — tap to edit'; @override String get studysetSheetInheritColor => 'Inherit'; @override String get studysetSheetLanguages => 'Languages'; @override String get studysetSheetSetLanguages => 'Set languages'; @override String get studysetSheetLanguagesHelper => 'Which language each side of the cards is in. Chinese, Japanese and Korean then show in their own character shapes.'; @override String get studysetSheetLanguagesInherited => 'Off, or with neither side set, it takes the languages of the studyset it is in.'; @override String get studysetSheetFrontLanguage => 'Front language'; @override String get studysetSheetBackLanguage => 'Back language'; @override String get studysetSheetLanguageNotSet => 'Not set'; @override String get studysetSheetLicense => 'Licence'; @override String get studysetSheetLicenseHelp => 'Help me choose'; @override String get studysetSheetLicenseLabel => 'Licence'; @override String get studysetSheetLicenseHelper => 'The terms others may use the content under, shown below the studyset with a link to them. Examples: CC-BY-4.0, CC-BY-SA-4.0, MIT, All Rights Reserved.'; @override String get studysetSheetLicenseYear => 'Year'; @override String get studysetSheetLicenseYearHelper => 'The copyright year, shown as “© 2019 Name”. Optional.'; @override String studysetSheetLicenseYearInvalid(int min, int max) { return 'Enter a year between $min and $max.'; } @override String get studysetSheetLicenseHolder => 'Licence holder'; @override String get studysetSheetLicenseHolderHelper => 'Who to credit: a name or an organisation.'; @override String studysetSheetLicenseNewer(String license, String current) { return '$license is an older Creative Commons licence. Its current version, $current, may fit better.'; } @override String get licenseChooserTitle => 'Choose a licence'; @override String get licenseChooserSubtitle => 'A few questions to find the Creative Commons licence that fits how you want your work shared.'; @override String get licenseChooserIntroPrompt => 'Do you want to keep any rights to your work?'; @override String get licenseChooserIntroYes => 'Yes, share it under a licence'; @override String get licenseChooserIntroYesDetail => 'Others must follow the conditions you choose next.'; @override String get licenseChooserIntroNo => 'No, dedicate it to the public domain'; @override String get licenseChooserIntroNoDetail => 'CC0: anyone may use it for anything, without conditions.'; @override String get licenseChooserCommercialPrompt => 'Allow others to use your work commercially?'; @override String get licenseChooserYes => 'Yes'; @override String get licenseChooserCommercialYesDetail => 'Including for profit.'; @override String get licenseChooserNo => 'No'; @override String get licenseChooserCommercialNoDetail => 'Non-commercial uses only (NC).'; @override String get licenseChooserAdaptationsPrompt => 'Allow others to adapt or build upon your work?'; @override String get licenseChooserAdaptationsYesDetail => 'Remixes and adaptations are allowed.'; @override String get licenseChooserAdaptationsShareAlike => 'Yes, if they share alike'; @override String get licenseChooserAdaptationsShareAlikeDetail => 'Adaptations carry this same licence (SA).'; @override String get licenseChooserAdaptationsNoDetail => 'Sharing only, no adaptations (ND).'; @override String get licenseChooserBack => 'Back'; @override String get licenseChooserRecommended => 'Recommended licence'; @override String get licenseChooserUse => 'Use this licence'; @override String get licenseSummaryCc0 => 'Anyone may use it for anything, without conditions or credit.'; @override String get licenseSummaryBy => 'Others may share and adapt it, even commercially, as long as they credit you.'; @override String get licenseSummaryBySa => 'Others may share and adapt it, even commercially, if they credit you and license their adaptations the same way.'; @override String get licenseSummaryByNc => 'Others may share and adapt it for non-commercial purposes, with credit to you.'; @override String get licenseSummaryByNcSa => 'Others may share and adapt it non-commercially, with credit and the same licence on adaptations.'; @override String get licenseSummaryByNd => 'Others may share it, even commercially, with credit, but may not share adaptations.'; @override String get licenseSummaryByNcNd => 'Others may share it non-commercially, with credit, but may not adapt it: the strictest Creative Commons licence.'; @override String get languageArabic => 'Arabic'; @override String get languageGerman => 'German'; @override String get languageGreek => 'Greek'; @override String get languageEnglish => 'English'; @override String get languageSpanish => 'Spanish'; @override String get languageFrench => 'French'; @override String get languageHebrew => 'Hebrew'; @override String get languageHindi => 'Hindi'; @override String get languageItalian => 'Italian'; @override String get languageJapanese => 'Japanese'; @override String get languageKorean => 'Korean'; @override String get languageDutch => 'Dutch'; @override String get languagePolish => 'Polish'; @override String get languagePortuguese => 'Portuguese'; @override String get languageRussian => 'Russian'; @override String get languageSwedish => 'Swedish'; @override String get languageThai => 'Thai'; @override String get languageTurkish => 'Turkish'; @override String get languageUkrainian => 'Ukrainian'; @override String get languageVietnamese => 'Vietnamese'; @override String get languageChineseSimplified => 'Chinese (Simplified)'; @override String get languageChineseTraditional => 'Chinese (Traditional)'; @override String get fieldRequired => 'required'; @override String get fieldRequiredHelper => 'Required'; @override String get exploreTitle => 'Explore'; @override String get exploreEmpty => 'Studysets that others share will appear here.'; @override String get profileTitle => 'Profile'; @override String get profileTabProfile => 'Profile'; @override String get profileTabStatistics => 'Statistics'; @override String get statisticsDays => 'Days'; @override String get statisticsWeeks => 'Weeks'; @override String get statisticsMonths => 'Months'; @override String get statisticsTotal => 'In total'; @override String get statisticsPerDay => 'Per day'; @override String get statisticsRecord => 'Daily record'; @override String get statisticsStudyTime => 'Study time'; @override String get statisticsMinutesInfo => 'In minutes, each card counted for at most a minute'; @override String get statisticsHoursInfo => 'In hours, each card counted for at most a minute'; @override String get statisticsRatings => 'Ratings'; @override String get statisticsRatingsInfo => 'How you rated the flashcards you studied'; @override String statisticsRated(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count cards rated', one: '1 card rated', zero: 'No cards rated', ); return '$_temp0'; } @override String get statisticsToday => 'Today'; @override String statisticsWeekOf(String date) { return 'Week of $date'; } @override String get statisticsNothingYet => 'Nothing studied yet. Your study time and ratings show here once you study flashcards.'; @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 profileContinueWithEmail => 'Continue with email'; @override String get profileSignInWays => 'Ways to sign in'; @override String get profileWayGitHub => 'GitHub'; @override String get profileWayEmail => 'Email address'; @override String get profileWayLinked => 'Signs you in'; @override String get profileAddGitHub => 'Add GitHub'; @override String get profileAddEmail => 'Add an email address'; @override String get profileGitHubTaken => 'This GitHub account already signs in to another account.'; @override String get emailSignInTitle => 'Continue with email'; @override String get emailSignInIntro => 'We mail you a code to sign in. This instance keeps only a fingerprint of your address, never the address itself, and writes to it only when you ask for a code.'; @override String get emailSignInAddress => 'Email address'; @override String get emailSignInSend => 'Send code'; @override String emailSignInCodeSent(String address) { return 'We mailed a code to $address. It\'s valid for 15 minutes.'; } @override String get emailSignInResent => 'A new code is on its way.'; @override String get emailSignInCode => 'Code'; @override String get emailSignInContinue => 'Continue'; @override String get emailSignInResend => 'Send a new code'; @override String get emailSignInOtherAddress => 'Use another address'; @override String emailSignInSwitchTitle(String address) { return 'Switch to the account of $address?'; } @override String get emailSignInSwitchMessage => 'This address 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 emailSignInTaken(String address) { return '$address already signs in to another account. To switch to it, sign out first.'; } @override String emailSignInDone(String address) { return 'Signed in with $address.'; } @override String get emailSignInUnavailable => 'This instance doesn\'t offer signing in with email.'; @override String get emailSignInNotAnAddress => 'This isn\'t an email address.'; @override String get emailSignInTooManyCodes => 'Too many codes in the last hour. Try again later.'; @override String get emailSignInWrongCode => 'That code isn\'t right.'; @override String get emailSignInTooManyTries => 'Too many wrong codes. Ask for a new one.'; @override String get emailSignInCodeExpired => 'This code is no longer valid. Ask for a new one.'; @override String get emailSignInOtherAddressLinked => 'You already sign in with another address.'; @override String get emailSignInFailed => 'Couldn\'t reach the instance. Try again.'; @override String get emailSignInMailFailed => 'The instance couldn\'t send the mail. Try again later.'; @override String get publicProfileTitle => 'Public profile'; @override String get profileSheetTitle => 'Profile'; @override String get profileSheetNotFound => 'Nobody on this instance has this handle.'; @override String get profileSheetLinkVerified => 'Links back to this profile'; @override String get profileSheetUnreachable => 'The profile couldn’t be loaded. Check your connection.'; @override String get publicProfileIntro => 'How others see you once you publish: the handle they find you by, your name, a few words and links. It saves as you write, once you have chosen your handle.'; @override String get publicProfileAnonymousHint => 'Sign in to have a public profile and publish.'; @override String get publicProfileDisplayName => 'Display name'; @override String get publicProfileDisplayNameHint => 'The name shown beside your handle'; @override String get publicProfileHandle => 'Handle'; @override String get publicProfileHandleHint => 'Letters, digits and underscores, up to 30'; @override String publicProfileAddress(String address) { return 'Others find you as @$address'; } @override String get publicProfileHandleFixed => 'Fixed since you published: others refer to it.'; @override String get publicProfileBio => 'Bio'; @override String get publicProfileLinks => 'Links'; @override String get publicProfileLinksHint => 'Your site or other accounts, up to 4.'; @override String get publicProfileLinkHint => 'https://…'; @override String get publicProfileAddLink => 'Add link'; @override String publicProfilePage(String url) { return 'Your profile page: $url'; } @override String get publicProfilePageCopy => 'Copy the address'; @override String get publicProfilePageCopied => 'Address copied.'; @override String get publicProfileVerifyHint => 'A link gets a checkmark once its page links back to your profile page with rel=\"me\", as Mastodon checks links.'; @override String get publicProfileCheckLinks => 'Check links'; @override String get publicProfileLinkVerified => 'Links back to your profile'; @override String publicProfileLinksChecked(int count, int verified) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Checked: $verified of $count links link back to your profile.', one: 'Checked: $verified of 1 link links back to your profile.', ); return '$_temp0'; } @override String get publicProfileRemoveLink => 'Remove link'; @override String get publicProfileSaving => 'Saving…'; @override String get publicProfileSavedNow => 'Saved'; @override String get publicProfileHandleChoose => 'Choose a handle'; @override String get publicProfileHandleFirst => 'Choose your handle first: your profile is made with it, and saves as you write from then on.'; @override String get publicProfileHandleChooseTitle => 'Choose your handle'; @override String get publicProfileHandleChangeTitle => 'Change your handle'; @override String get publicProfileHandleDialogText => 'Others find you by your handle. You can change it until you first publish a studyset.'; @override String get publicProfileHandleChecking => 'Checking…'; @override String publicProfileHandleFree(String handle) { return '@$handle is free'; } @override String get publicProfileHandleYours => 'This is your handle'; @override String get publicProfileHandleConfirmChoose => 'Choose'; @override String get publicProfileHandleConfirmChange => 'Change'; @override String get publicProfileRemove => 'Remove profile'; @override String get publicProfileRemoveTitle => 'Remove your public profile?'; @override String get publicProfileRemoveMessage => 'Your handle becomes free for others to take.'; @override String get publicProfileRemoved => 'Profile removed.'; @override String get publicProfileFailed => 'Couldn\'t reach the instance. Try again.'; @override String get publicProfileUnreachable => 'Your public profile can\'t be reached right now.'; @override String get publicProfileRetry => 'Retry'; @override String get profileProblemHandleInvalid => 'A handle is 1 to 30 letters (a to z), digits or underscores.'; @override String get profileProblemHandleReserved => 'This handle is kept for the instance.'; @override String get profileProblemHandleTaken => 'Someone else has this handle.'; @override String get profileProblemPublished => 'You have published: your handle can\'t change, nor your profile go.'; @override String get profileProblemDisplayNameTooLong => 'At most 30 characters.'; @override String get profileProblemBioTooLong => 'At most 500 characters.'; @override String get profileProblemTooManyLinks => 'At most 4 links.'; @override String get profileProblemLinkInvalid => 'Links start with https:// or http://.'; @override String get profileProblemAvatarInvalid => 'This picture can\'t be used: choose a PNG, JPEG, WebP or GIF image.'; @override String get profileProblemTooManyLinkChecks => 'The links were checked too often. Try again in an hour.'; @override String get publicProfilePicture => 'Picture'; @override String get publicProfileChoosePicture => 'Choose picture'; @override String get publicProfileRemovePicture => 'Remove picture'; @override String get publicProfilePictureType => 'Images'; @override String get publicProfilePictureLater => 'Choose your handle to add a picture.'; @override String get settingsTitle => 'Settings'; @override String get settingsAccount => 'Account'; @override String get instanceWelcome => 'Welcome to Halkyon Learn'; @override String get instanceFirstStartSubtitle => 'Choose the instance to keep your studysets on. Someone runs each one; you can add others later.'; @override String get instanceAddress => 'Instance address'; @override String instanceUseBuiltIn(String name) { return 'Use $name'; } @override String get instanceContinue => 'Continue'; @override String get instanceAddressRequired => 'Enter the address of an instance.'; @override String get instanceAddressInvalid => 'This isn\'t an address.'; @override String instanceUnreachable(String name) { return 'No instance of Halkyon Learn answers at $name.'; } @override String instanceOpenFailed(String name) { return 'Couldn\'t open the app on $name.'; } @override String get settingsSwitchAccount => 'Switch account'; @override String get accountsTitle => 'Accounts'; @override String get accountAdd => 'Add account'; @override String get accountAddSubtitle => 'Choose the instance for the account to add.'; @override String get accountRemoveTooltip => 'Remove account'; @override String get accountRemoveTitle => 'Remove account?'; @override String accountRemoveMessage(String name) { return 'Removes the account on $name from this device, with all the device holds of it. What it synced stays on $name: sign in there again to have it. An anonymous account can\'t be signed into again.'; } @override String get accountRemoveConfirm => 'Remove'; @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 aboutLegalese => 'Free software: the app is under the GNU Affero General Public License, version 3 or any later version, the server under the Server Side Public License, version 1.'; @override String get aboutSourceCode => 'The source of what this instance runs:'; @override String get aboutSourceUnreachable => 'Couldn\'t reach this instance to ask where its source is.'; @override String get settingsAppearance => 'Appearance'; @override String get settingsAppearanceDevice => 'Device theme'; @override String get settingsAppearanceLight => 'Light'; @override String get settingsAppearanceDark => 'Dark'; @override String get settingsLanguage => 'Language'; @override String get settingsLanguageDevice => 'Device language'; @override String get settingsCitations => 'Citations'; @override String get settingsCitationsDescription => 'How sources and studysets\' bibliographies are cited on this device. Type authors\' full names: each style abbreviates and orders them itself.'; @override String get settingsCitationStyle => 'Style'; @override String get settingsCitationStyleApa => 'APA (7th edition)'; @override String get settingsCitationStyleMla => 'MLA (9th edition)'; @override String get settingsCitationStyleChicago => 'Chicago (18th edition)'; @override String get settingsCitationPreview => 'Preview'; @override String get settingsCitationGuide => 'Official guide'; @override String get settingsStudy => 'Study'; @override String get settingsStudyPomodoroTitle => 'Show the Pomodoro timer while studying'; @override String get settingsStudyPomodoroSubtitle => 'Show the focus / break countdown inside the study session, so you can see the time left without opening the notification.'; @override String settingsVersion(String version, String build) { return 'Version $version (build $build)'; } @override String get syncTitle => 'Sync'; @override String get syncStateSyncing => 'Syncing…'; @override String get syncStateSynced => 'Everything synced'; @override String get syncStateNotYet => 'Not synced yet'; @override String get syncStateFailing => 'Sync is failing'; @override String syncStateMismatch(String server) { return 'This app can\'t sync with $server'; } @override String get syncMismatchDetail => 'Update the app. If it is up to date, the server needs an update. What you do meanwhile stays on this device and syncs afterwards.'; @override String syncLastCompleted(String time) { return 'Last completed at $time'; } @override String get syncNoRunYet => 'No sync has completed since the app started'; @override String syncLastFailed(String time) { return 'Last attempt failed at $time'; } @override String get syncNow => 'Sync now'; @override String syncPending(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count changes wait to sync', one: '1 change waits to sync', ); return '$_temp0'; } @override String get syncTroubleLabel => 'Sync needs attention'; @override String syncMismatchBanner(String server) { return 'This app can\'t sync with $server any more. Update it to keep syncing.'; } @override String get syncMismatchMore => 'More'; @override String get tagsReadFailed => 'Couldn\'t read the tags.'; @override String get notesReadFailed => 'Couldn\'t read the notes.'; @override String get pathsReadFailed => 'Couldn\'t read the learning paths.'; @override String get filesReadFailed => 'Couldn\'t read the files.'; @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 => 'Capitals don\'t make another tag: \'Noun\' and \'noun\' are one.'; @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 => 'Colour'; @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 tagManageHideJellyfin => 'Hide tags from Jellyfin while studying'; @override String get tagManageHideJellyfinHint => 'The shows, episodes, artists and songs words were met in. They stay on the cards, to filter and study by.'; @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 studySettingsNoTags => 'No content tags yet. Add tags to your cards to filter them here.'; @override String get studySettingsReset => 'Reset'; @override String get studySettingsSave => 'Save'; @override String get studySettingsHeadsUpTitle => 'Heads up!'; @override String get studySettingsHeadsUpBody => 'The changes you’ve made will reload the session, and you’ll lose your current progress.'; @override String get studySettingsApplyChanges => 'Apply changes'; @override String get studySettingsPerDay => ' / day'; @override String studySettingsMoreTags(int count) { return '+$count more'; } @override String get cardTagsLabel => 'Tags'; @override String get cardTagsAdd => 'Add tags'; @override String get cardTagsEdit => 'Edit tags'; @override String tagChipsOverflow(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count tags', one: '1 tag', ); return '+$_temp0'; } @override String get cardHints => 'Hints'; @override String cardHint(int number) { return 'Hint $number'; } @override String get cardAddHint => 'Add hint'; @override String get cardRemoveHint => 'Remove hint'; @override String get cardExplanation => 'Explanation'; @override String get cardAddExplanation => 'Add explanation'; @override String get cardRemoveExplanation => 'Remove explanation'; @override String cardHintsSheetTitle(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Hints $count', one: 'Hint', ); return '$_temp0'; } @override String get cardPreviousHint => 'Previous hint'; @override String get cardNextHint => 'Next hint'; @override String get cardReport => 'Report'; @override String get cardSenses => 'Senses'; @override String get cardDictionaryEntry => 'Dictionary entry'; @override String get cardDictionaryVersion => 'Dictionary version'; @override String get studysetFromDictionary => 'From the dictionary'; @override String get dictionaryTitle => 'Dictionary'; @override String get dictionarySearchHint => 'A word in kanji, kana or romaji, or a meaning'; @override String get dictionarySearchHintWords => 'A word, any form of it, or a meaning'; @override String dictionaryNothingFound(String query) { return 'Nothing found for “$query”.'; } @override String get dictionaryUnreachable => 'The dictionary can\'t be reached right now.'; @override String get dictionaryRetry => 'Retry'; @override String get dictionaryAddFailed => 'Couldn\'t add the words. Try again.'; @override String get dictionaryMakingCards => 'Making the cards…'; @override String get dictionaryNone => 'This studyset\'s language has no dictionary on this instance.'; @override String get dictionaryAdd => 'Add'; @override String get dictionaryInStudyset => 'In this studyset'; @override String dictionaryAdded(String word) { return 'Added “$word”.'; } @override String get dictionaryLevels => 'Add a whole level'; @override String get dictionaryLevelsHint => 'Every word of a level becomes a flashcard, in the order of the level\'s list, tagged with its level and word class. Words already in this studyset are left out.'; @override String get dictionaryLabelCommon => 'Common'; @override String dictionaryAddLevel(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Add $count words', one: 'Add 1 word', ); return '$_temp0'; } @override String dictionaryAddingLevel(int done, int count) { return 'Adding… $done of $count'; } @override String dictionaryWordsAdded(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Added $count words.', one: 'Added 1 word.', zero: 'No new words.', ); return '$_temp0'; } @override String dictionaryWordsSkipped(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count were in this studyset already.', one: '1 was in this studyset already.', ); return '$_temp0'; } @override String dictionaryConfirmTitle(int count) { return 'Add $count words?'; } @override String get dictionaryConfirmMessage => 'Each becomes a flashcard in this studyset.'; @override String get dictionaryConfirmAdd => 'Add'; @override String dictionaryCredits(String sources) { return 'Words from $sources.'; } @override String get dictionarySourcesTitle => 'Sources'; @override String get dictionaryLookUp => 'Look up in the dictionary'; @override String get dictionaryCharacterSearchHint => 'A kanji or kana, a reading in kana or romaji, or a meaning'; @override String get dictionaryTabWords => 'Words'; @override String get dictionaryTabCharacters => 'Kanji & kana'; @override String get dictionaryTabCharactersChinese => 'Hanzi'; @override String get dictionaryTabCharactersKorean => 'Hangul & Hanja'; @override String get dictionaryTabCharactersGreek => 'Alphabet'; @override String get dictionaryCharacterSearchHintChinese => 'A character, its pinyin, or a meaning'; @override String get dictionaryCharacterSearchHintKorean => 'A Hanja or Hangul letter, its sound, or a meaning'; @override String get dictionaryCharacterSearchHintGreek => 'A letter or its name'; @override String get dictionaryGroupHsk => 'HSK levels'; @override String get dictionaryGroupCommonCharacters => 'In common use'; @override String get dictionaryGroupHongKongGrades => 'Hong Kong school grades'; @override String get dictionaryGroupHangul => 'Hangul'; @override String get dictionaryGroupEducationHanja => 'Hanja taught in schools'; @override String get dictionaryGroupGreek => 'Letters'; @override String get dictionaryLabelHangul => 'Hangul letters'; @override String get dictionaryLabelEducationHanja => '1,800 basic Hanja'; @override String get dictionaryLabelGreek => 'Greek alphabet'; @override String get dictionaryLabelCommonCharacters => '3,500 common characters'; @override String get dictionaryLabelHiragana => 'Hiragana'; @override String get dictionaryLabelKatakana => 'Katakana'; @override String dictionaryGrade(int grade) { return 'Grade $grade'; } @override String get dictionaryLabelSecondary => 'Secondary school'; @override String get dictionaryGroupKana => 'Kana'; @override String get dictionaryGroupJlpt => 'JLPT levels'; @override String get dictionaryGroupGrades => 'School grades'; @override String dictionaryStrokes(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count strokes', one: '1 stroke', ); return '$_temp0'; } @override String get dictionaryTabRadicals => 'Radicals'; @override String get dictionaryRadicalsHint => 'The 214 radicals that dictionaries order kanji by, grouped by their strokes. Choose one for the kanji written with it.'; @override String get dictionaryAllRadicals => 'All radicals'; @override String dictionaryRadicalNumber(int number) { return 'Radical $number'; } @override String dictionaryRadicalKanjiCount(int count) { return '$count kanji'; } @override String get dictionaryRadicalNone => 'The instance\'s dictionary has no kanji under this radical yet.'; @override String get dictionaryCharacterLevelsHint => 'Every character of a level becomes a flashcard, in the order of the level\'s list, tagged with its level, school grade or script. Characters already in this studyset are left out.'; @override String dictionaryAddCharacters(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Add $count characters', one: 'Add 1 character', ); return '$_temp0'; } @override String dictionaryCharactersAdded(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Added $count characters.', one: 'Added 1 character.', zero: 'No new characters.', ); return '$_temp0'; } @override String dictionaryConfirmCharactersTitle(int count) { return 'Add $count characters?'; } @override String dictionaryCharacterCredits(String sources) { return 'Characters from $sources.'; } @override String dictionaryUpdatesBehind(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count cards are behind the dictionary: their entries were corrected since they were made.', one: '1 card is behind the dictionary: its entry was corrected since it was made.', ); return '$_temp0'; } @override String get dictionaryUpdatesTake => 'Take the corrections'; @override String dictionaryUpdatesTaken(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count cards updated.', one: '1 card updated.', ); return '$_temp0'; } @override String dictionaryUpdatesToSettle(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count have a change of yours there too: open them to choose.', one: 'One has a change of yours there too: open it to choose.', ); return '$_temp0'; } @override String get dictionaryUpdatesFailed => 'Couldn\'t take the corrections. Try again.'; @override String get kanjiStrokeOrder => 'Stroke order'; @override String get kanjiPlayAgain => 'Play again'; @override String get kanjiNoStrokes => 'There\'s no stroke order for this character.'; @override String get kanjiComponents => 'Components'; @override String get studySettingsCharacters => 'Characters'; @override String get studySettingsWriteByHand => 'Write by hand'; @override String get studySettingsWriteByHandDescription => 'Kanji, hanzi, Hanja, kana, Hangul and words written with them are written stroke by stroke and checked as you go, on a schedule of their own (a Korean word letter by letter). Words written aren\'t quizzed or typed.'; @override String get writingHint => 'Hint'; @override String get writingShow => 'Show it'; @override String writingMistakes(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count mistakes', one: '1 mistake', zero: 'No mistakes', ); return '$_temp0'; } @override String get writingWrongOrder => 'Not yet: that stroke comes later.'; @override String get writingWrong => 'That isn\'t the next stroke.'; @override String writingSuggested(String rating) { return '$rating suggested'; } @override String get writingNoStrokes => 'There\'s no stroke order for these characters: rate how well you knew them.'; @override String get aboutDictionaries => 'Dictionaries on this instance'; @override String get aboutAppData => 'Data in the app'; @override String get cardReportTitle => 'Report an error'; @override String get cardReportSubtitle => 'Flag this card so you can find and fix it later.'; @override String get cardReportTypo => 'Typo'; @override String get cardReportGrammar => 'Grammar'; @override String get cardReportContent => 'Content'; @override String get cardReportOther => 'Other'; @override String get cardReportNote => 'Note'; @override String get cardReportNoteHint => 'What needs fixing?'; @override String get cardReportSubmit => 'Report'; @override String get cardReported => 'Flagged for fixing'; @override String get cardResolveReport => 'Resolve report'; @override String get cardReportResolved => 'Report resolved'; @override String get cardBuriedBadge => 'Buried'; @override String get cardUnbury => 'Unbury'; @override String get cardTileBuried => 'Flashcard buried until tomorrow'; @override String get cardTileUnburied => 'Flashcard unburied'; @override String get cardDeleteTitle => 'Delete flashcard?'; @override String get cardDeleteMessage => 'This flashcard will be removed from the studyset. You can undo this for a few seconds.'; @override String get cardDeleted => 'Flashcard deleted'; @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 cardListFailed => 'Couldn\'t read the cards.'; @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 composerEditTitle => 'Edit flashcards'; @override String composerEditTitleFor(String title) { return 'Edit flashcards in \"$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 composerKindCharacter => 'Character'; @override String get composerLabelFront => 'Front'; @override String get composerLabelQuestion => 'Question'; @override String get composerLabelExpression => 'Expression'; @override String get composerLabelPrompt => 'Prompt'; @override String get composerLabelCharacter => 'Character'; @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 composerPlaceholderCharacter => 'Add a kanji or kana'; @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 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.'; @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)'; @override String get formatRubyFurigana => 'Furigana (a reading above the text)'; @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'; @override String get rubyTitleFurigana => 'Furigana'; @override String get rubyTitlePinyin => 'Pinyin'; @override String get rubyText => 'Text'; @override String get rubyHint => 'e.g. a pronunciation or a translation'; @override String get rubyReading => 'Reading'; @override String get rubyReadingHint => 'In kana, e.g. かんじ'; @override String get rubyHintPinyin => 'With tone marks, e.g. hànzì'; @override String get rubySave => 'Save'; @override String get rubyRemove => 'Remove'; @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 vocabularyGlossHint => 'Translation'; @override String get vocabularyAddGloss => 'Add translation'; @override String get vocabularyRemoveGloss => 'Remove translation'; @override String get vocabularyAddSense => 'Add sense'; @override String get vocabularyRemoveSense => 'Remove sense'; @override String get characterPrimaryMeaningHint => 'Primary meaning, or a kana\'s romaji'; @override String get characterOnReadings => 'On readings'; @override String get characterOnReadingsHint => 'From Chinese, in katakana: ショク、ジキ'; @override String get characterKunReadings => 'Kun readings'; @override String get characterKunReadingsHint => 'Japanese, in hiragana, okurigana after a dot: た.べる'; @override String get characterOn => 'On'; @override String get characterKun => 'Kun'; @override String get characterPinyin => 'Pinyin'; @override String get characterEum => 'Eum'; @override String get characterHun => 'Hun'; @override String get characterPinyinReadings => 'Pinyin'; @override String get characterPinyinReadingsHint => 'With tone marks or numbers: shuǐ, shui3'; @override String get characterEumReadings => 'Sounds (eum)'; @override String get characterEumReadingsHint => 'Sino-Korean, in Hangul: 수'; @override String get characterHunReadings => 'Native meanings (hun)'; @override String get characterHunReadingsHint => 'Korean words for its meaning, in Hangul: 물'; @override String get characterPrimaryMeaningHintLetter => 'Primary meaning, or a letter\'s sound'; @override String get composerPlaceholderCharacterChinese => 'Add a character'; @override String get composerPlaceholderCharacterKorean => 'Add a Hanja or Hangul letter'; @override String get composerPlaceholderCharacterGreek => 'Add a letter'; @override String get vocabularyReadingHintPinyin => 'Pinyin, with tone marks or numbers'; @override String get vocabularyReadingHintPronunciation => 'Pronunciation, where it differs from the spelling'; @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 studyReviewsDueTitle => 'You have reviews due'; @override String studyReviewsDueBody(int reviews, int news) { String _temp0 = intl.Intl.pluralLogic( reviews, locale: localeName, other: '$reviews cards are', one: '1 card is', ); String _temp1 = intl.Intl.pluralLogic( news, locale: localeName, other: '$news new cards', one: '1 new card', ); return '$_temp0 due for review. Learning $_temp1 now will add to your review load.'; } @override String get studyReviewsDueAllTagsNote => '“Review first” studies the whole backlog across every tag — your tag filter doesn\'t apply until it\'s clear.'; @override String get studyReviewFirst => 'Review first'; @override String get studyLearnAnyway => 'Learn anyway'; @override String get studySettingsTagFilterPausedForBacklog => 'This session is clearing your review backlog across every tag, so these tags aren\'t narrowing it. They apply again to your next session.'; @override String get studyBuryCard => 'Bury until tomorrow'; @override String get studyCardBuried => 'Card buried until tomorrow'; @override String get studyUndo => 'Undo'; @override String get studyLockScreen => 'Lock screen'; @override String get studyUnlock => 'Unlock'; @override String get studyTapToUnlock => 'Tap to unlock'; @override String get studyLoadFailed => 'Couldn\'t read this session.'; @override String get studyRatingFailed => 'Couldn\'t keep your rating. Rate the card again.'; @override String get studyRetry => 'Retry'; @override String get studyScopeTitle => 'Study scope'; @override String get studyScopeDescription => 'This studyset has sub-studysets. Pick which cards to review.'; @override String get studyScopeEverythingTitle => 'Everything'; @override String get studyScopeEverythingSubtitle => 'This studyset and all sub-studysets'; @override String get studyScopeSelfTitle => 'This studyset only'; @override String get studyScopeSelfSubtitle => 'Skip cards in sub-studysets'; @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 studySelectAll => 'Select all that apply'; @override String get studySelectOne => 'Select the correct answer'; @override String get studyMatchingInstructions => 'DRAG AND DROP ONTO CARDS ABOVE'; @override String get studyMatchingAllPlaced => 'All placed'; @override String get studyMatchingDropHere => 'Drop here'; @override String get studyMapTapPrompt => 'Tap a region to answer'; @override String studyMapSelected(String label) { return 'Selected: $label'; } @override String get studyCorrect => 'Correct'; @override String studyCorrectLabel(String label) { return 'Correct — $label'; } @override String studyMapAnswer(String answer) { return 'Answer: $answer'; } @override String studyMapPickedAnswer(String picked, String answer) { return 'You picked $picked · Answer: $answer'; } @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 studySessionComplete => 'Session complete'; @override String studyProgressReviewed(int reviewed, int total) { return '$reviewed / $total reviewed'; } @override String studyReviewedCount(int reviewed) { return '$reviewed reviewed'; } @override String get studyStatCards => 'Cards'; @override String get studyStatAccuracy => 'Accuracy'; @override String get studyStatTime => 'Time'; @override String studyDurationSec(int sec) { return '$sec sec'; } @override String studyDurationMin(int min) { return '$min min'; } @override String studyDurationMinSec(int min, int sec) { return '$min min $sec sec'; } @override String get studyLeaveTitle => 'Leave this study session?'; @override String studyLeaveRated(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Your ratings so far are saved, but the $count cards still left in this round will be discarded if you leave now.', one: 'Your ratings so far are saved, but the last card in this round will be discarded if you leave now.', ); return '$_temp0'; } @override String studyLeaveUnrated(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'You haven’t rated any of the $count cards in this round yet — leaving ends the session without recording any progress for it.', one: 'You haven’t rated this card yet — leaving ends the session without recording any progress for this round.', ); return '$_temp0'; } @override String get studyLeaveConfirm => 'Leave'; @override String get studyKeepStudying => 'Keep studying'; @override String studyInMinutes(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'in $count min', one: 'in 1 min', ); return '$_temp0'; } @override String studyInHours(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'in $count hours', one: 'in 1 hour', ); return '$_temp0'; } @override String studyInDays(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'in $count days', one: 'in 1 day', ); return '$_temp0'; } @override String studyInMonths(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'in $count months', one: 'in 1 month', ); return '$_temp0'; } @override String studyInYears(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'in $count years', one: 'in 1 year', ); return '$_temp0'; } @override String get studyContinue => 'Continue learning'; @override String get studyPrevious => 'Previous card'; @override String get studySkipCard => 'Skip card'; @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, unless its own study options say otherwise.'; @override String get studyOptionsTitle => 'Study options'; @override String get studyOptionsDescription => 'How many cards this studyset brings a day, and which come first, on every device. The studysets inside it keep their own.'; @override String get studyOptionsReviewsPerDay => 'Reviews per day'; @override String get studyOptionsOrder => 'Order'; @override String get studyOptionsReviewsFirst => 'Reviews first'; @override String get studyOptionsMixed => 'Mixed'; @override String get studyOptionsNewFirst => 'New first'; @override String get studyOptionsReset => 'Reset to defaults'; @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 studySettingsVocabulary => 'Vocabulary'; @override String get studySettingsQuizMc => 'Quiz with multiple choice'; @override String get studySettingsQuizMcDescription => 'Show vocabulary cards as a multiple-choice question, with wrong answers drawn from other vocabulary in this set.'; @override String get studySettingsTypeReading => 'Type the reading'; @override String get studySettingsTypeReadingDescription => 'Words with kanji ask for their reading, typed in kana (romaji turn into kana as you type); Chinese words for their pinyin (tone numbers turn into marks: ni3 becomes nǐ).'; @override String get studyTypedHint => 'The reading, in kana or romaji'; @override String get studyTypedHintPinyin => 'The pinyin, with tone numbers or marks'; @override String get studyTypedRight => 'Right'; @override String studyTypedWrong(String answer) { return 'You typed $answer'; } @override String get studyAspectMeaning => 'Meaning'; @override String get studyAspectReading => 'Reading'; @override String get studyAspectExpression => 'Expression'; @override String get studyAspectMixed => 'Mixed'; @override String get studySettingsAspectDescription => 'What to recall — the meaning, the reading (kana, pinyin), or the expression itself (shown the meaning). Mixed varies meaning and reading per card; cards that can’t be quizzed stay a normal flip.'; @override String get studySortOldestFirst => 'Oldest first'; @override String get studySortRandom => 'Random'; @override String get studySortNewestFirst => 'Newest first'; @override String get studyFewer => 'Decrease'; @override String get studyMore => 'Increase'; @override String get countStepperType => 'Type a number'; @override String get studyLimitNewPerDay => 'Limit new cards per day'; @override String get studyLimitReviewsPerDay => 'Limit reviews per day'; @override String get studysetMenuReset => 'Reset progress'; @override String get studysetResetTitle => 'Reset progress?'; @override String get studysetResetMessage => 'What you choose starts afresh, in it and in the studysets inside it, on all your devices. Your study history stays. You can undo this for a few seconds.'; @override String get studysetResetCards => 'Flashcards'; @override String studysetResetCardsDetail(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count flashcards start again as new', one: '1 flashcard starts again as new', ); return '$_temp0'; } @override String get studysetResetPdfs => 'Reading of PDFs'; @override String studysetResetPdfsDetail(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count PDFs are read from their first page again', one: '1 PDF is read from its first page again', ); return '$_temp0'; } @override String get studysetResetPaths => 'Learning paths'; @override String studysetResetPathsDetail(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count learning paths start from their first step again', one: '1 learning path starts from its first step again', ); return '$_temp0'; } @override String get studysetResetNothing => 'Nothing in it has progress yet.'; @override String get studysetResetConfirm => 'Reset'; @override String get studysetResetDone => 'Progress reset'; @override String get mapUnknown => 'This map needs a newer version of the app.'; @override String get mapPickRegion => 'Choose a part of the map, then tap the region that answers the question. Tiny places have a ring; where rings crowd, zoom in.'; @override String get mapNonePicked => 'No region picked yet'; @override String get mapPickTitle => 'Pick the region'; @override String get mapNameJapan => 'Japan'; @override String get mapNameWorld => 'World'; @override String get mapPrefectures => 'Prefectures'; @override String get mapZoomNote => 'Ctrl + scroll to zoom'; @override String get mapZoomNoteMac => '⌘ + scroll to zoom'; @override String get mapGroupHokkaido => 'Hokkaidō'; @override String get mapGroupTohoku => 'Tōhoku'; @override String get mapGroupKanto => 'Kantō'; @override String get mapGroupChubu => 'Chūbu'; @override String get mapGroupKansai => 'Kansai'; @override String get mapGroupChugoku => 'Chūgoku'; @override String get mapGroupShikoku => 'Shikoku'; @override String get mapGroupKyushu => 'Kyūshū'; @override String get mapGroupOkinawa => 'Okinawa'; @override String get mapGroupEurope => 'Europe'; @override String get mapGroupAfrica => 'Africa'; @override String get mapGroupWestAsia => 'Western Asia'; @override String get mapGroupSouthAsia => 'Central and South Asia'; @override String get mapGroupEastAsia => 'East Asia'; @override String get mapGroupSoutheastAsia => 'Southeast Asia'; @override String get mapGroupNorthAmerica => 'North America'; @override String get mapGroupCentralAmerica => 'Central America and the Caribbean'; @override String get mapGroupSouthAmerica => 'South America'; @override String get mapGroupOceania => 'Oceania'; @override String get composerPlaceholderQuestion => 'Add question'; @override String get composerLabelRegion => 'Answer'; @override String get composerRegionPick => 'Tap to pick the region on the map'; @override String get homeStreakTooltip => 'Study streak'; @override String get homeArrange => 'Arrange widgets'; @override String get homeDone => 'Done'; @override String get homeDragToReorder => 'Drag to reorder'; @override String homeShowWidget(String label) { return 'Show $label'; } @override String homeHideWidget(String label) { return 'Hide $label'; } @override String get homeAllHidden => 'All widgets are hidden'; @override String get homeAllHiddenBody => 'Bring some back to fill your dashboard.'; @override String get homeCustomise => 'Customise'; @override String get homeWidgetGoal => 'Daily goal'; @override String get homeWidgetWeek => 'Week overview'; @override String get homeWidgetActivity => 'Activity heatmap'; @override String get homeActivityTitle => 'Your activity'; @override String streakDays(num count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count day streak', one: '1 day streak', ); return '$_temp0'; } @override String get streakStart => 'Study today to start your streak.'; @override String get streakGrow => 'Keep it going: study at least once a day to grow your streak.'; @override String get streakFirstDay => 'Review some cards today to light the first day.'; @override String get streakComeBack => 'Come back tomorrow to keep your streak.'; @override String get streakKeepAlive => 'Study today to keep your streak alive.'; @override String get goalEditTitle => 'Edit study goal'; @override String get goalSetTitle => 'Set a study goal'; @override String get goalDescriptionDaily => 'Review a number of flashcards each day. Every card you rate counts.'; @override String get goalDescriptionWeekly => 'Review a number of flashcards each week, from Monday. Every card you rate counts.'; @override String get goalPeriod => 'Period'; @override String get goalPerDay => 'Per day'; @override String get goalPerWeek => 'Per week'; @override String get goalCardsPerDay => 'Cards per day'; @override String get goalCardsPerWeek => 'Cards per week'; @override String get goalSave => 'Save goal'; @override String get goalRemove => 'Remove goal'; @override String get goalEmptySubtitle => 'Review a set number of cards each day or week.'; @override String get goalDailyHeadline => 'Daily goal'; @override String get goalWeeklyHeadline => 'Weekly goal'; @override String goalProgressToday(int reviewed, int target) { return '$reviewed of $target cards today'; } @override String goalProgressThisWeek(int reviewed, int target) { return '$reviewed of $target cards this week'; } @override String get goalMet => 'Goal met: nice work!'; @override String goalRemaining(int count) { return '$count to go'; } @override String get weekToday => 'Today'; @override String get weekPreviousDay => 'Previous day'; @override String get weekNextDay => 'Next day'; @override String get weekRestDay => 'Rest day'; @override String get heatmapLess => 'Less'; @override String get heatmapMore => 'More'; @override String heatmapTotal(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count activities in the last year', one: '1 activity in the last year', ); return '$_temp0'; } @override String heatmapDay(int count, String date) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count activities', one: '1 activity', ); return '$_temp0 · $date'; } @override String get commonCancel => 'Cancel'; @override String get commonSave => 'Save'; @override String get commonClose => 'Close'; @override String get commonUndo => 'Undo'; @override String get moreInfo => 'More info'; @override String get moreInfoCreated => 'Created'; @override String get moreInfoModified => 'Last modified'; @override String get moreInfoItemId => 'Item ID'; @override String get moreInfoStudysetId => 'Studyset ID'; @override String get moreInfoPdfId => 'PDF source ID'; @override String get moreInfoParentId => 'Parent ID'; @override String get moreInfoFile => 'File'; @override String get moreInfoReviews => 'Reviews'; @override String get moreInfoReviewCount => 'Review count'; @override String get moreInfoLastReviewed => 'Last reviewed'; @override String get moreInfoCopy => 'Copy'; @override String get copiedToClipboard => 'Copied to clipboard'; @override String get commonTryAgain => 'Try again'; @override String get personDataFailed => 'Couldn\'t open this device\'s data.'; @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.'; @override String get studysetBackToLibrary => 'Back to library'; @override String get fileImage => 'Image'; @override String get fileSound => 'Sound'; @override String get fileImageUnavailable => 'This image isn\'t on this device yet. It shows once it\'s uploaded and you\'re online.'; @override String get fileImageUnreadable => 'This image can\'t be shown. Its file may be damaged, or in a format this device can\'t read.'; @override String get fileFromElsewhere => 'Files from the web aren\'t shown.'; @override String get filePlaySound => 'Play sound'; @override String get fileStopSound => 'Stop sound'; @override String get fileSoundUnavailable => 'This sound isn\'t on this device yet. It plays once it\'s uploaded and you\'re online.'; @override String get fileSoundUnplayable => 'This sound can\'t be played. Its file may be damaged, or in a format this device can\'t play.'; @override String get fileImages => 'Images'; @override String get fileSounds => 'Sounds'; @override String get fileNotAnImage => 'This file isn\'t an image the app can show.'; @override String get fileNotASound => 'This file isn\'t a sound the app can play.'; @override String fileTooLarge(int megabytes) { return 'This file is larger than $megabytes MB.'; } @override String get fileNotKept => 'The file couldn\'t be kept on this device.'; @override String get fileRemoveImage => 'Remove image'; @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'; @override String get blockSpoiler => 'Spoiler'; @override String get calloutNote => 'Note'; @override String get calloutInfo => 'Info'; @override String get calloutTip => 'Tip'; @override String get calloutSuccess => 'Success'; @override String get calloutQuestion => 'Question'; @override String get calloutWarning => 'Warning'; @override String get calloutDanger => 'Danger'; @override String get calloutQuote => 'Quote'; @override String get calloutOptions => 'Callout options'; @override String get calloutEditTitle => 'Edit title…'; @override String get calloutFoldedAtFirst => 'Folded at first'; @override String get calloutRemove => 'Remove callout'; @override String get calloutShow => 'Show'; @override String get calloutHide => 'Hide'; @override String get calloutWriteInside => 'Write inside'; @override String get calloutTitleDialog => 'Callout title'; @override String get calloutTitleLabel => 'Title'; @override String get calloutTitleHelper => 'Leave it empty to show the kind\'s name.'; @override String get spoilerReveal => 'Reveal'; @override String get spoilerPlaceholder => 'Hidden text, revealed on a tap'; @override String get blockFormula => 'Formula'; @override String get formatInlineMath => 'Formula in the line'; @override String get formulaTitle => 'Formula'; @override String get formulaInLineTitle => 'Formula in the line'; @override String get formulaPreview => 'Preview'; @override String get formulaPreviewEmpty => 'The formula shows here'; @override String get formulaLatex => 'LaTeX'; @override String get formulaLatexHelper => '\\\\ starts a new line in aligned, cases or a matrix.'; @override String get formulaEmpty => 'An empty formula. Tap to write it.'; @override String get formulaEdit => 'Edit formula'; @override String get formulaRemove => 'Remove formula'; @override String get blockYoutube => 'YouTube video'; @override String get youtubeLink => 'YouTube link'; @override String get youtubeLinkHelper => 'Paste a link from YouTube.'; @override String get youtubeNotFound => 'No YouTube video in this link.'; @override String get youtubeFound => 'Found the video.'; @override String youtubeFoundFrom(String time) { return 'Found the video, starting at $time.'; } @override String get youtubeCaption => 'Caption'; @override String get youtubeCaptionHelper => 'Shown in place of the video until it plays.'; @override String get youtubeVideo => 'YouTube video'; @override String get youtubeSource => 'YouTube'; @override String youtubeFrom(String time) { return 'YouTube · from $time'; } @override String get youtubeEdit => 'Edit video'; @override String get youtubePlay => 'Play video'; @override String get youtubeOpen => 'Open on YouTube'; @override String get youtubeRemove => 'Remove video'; @override String get youtubeBroken => 'This video\'s link can\'t be read.'; @override String get youtubeNotOpened => 'Couldn\'t open YouTube.'; @override String get blockStudyButton => 'Study button'; @override String get studyButtonDefaultLabel => 'Study'; @override String get studyButtonStudyset => 'Studyset to study'; @override String get studyButtonTag => 'Cards'; @override String get studyButtonAllCards => 'All cards'; @override String get studyButtonLabel => 'Label'; @override String get studyButtonTopics => 'With its topics'; @override String get studyButtonBackFirst => 'Back first'; @override String get studyButtonBackFirstHelper => 'Front/back and vocabulary cards ask their back.'; @override String studyButtonWithTag(String tag) { return 'Tagged $tag'; } @override String get studyButtonAlone => 'Without its topics'; @override String get studyButtonEdit => 'Edit study button'; @override String get studyButtonRemove => 'Remove study button'; @override String get studyButtonBroken => 'This study button doesn\'t say what to study.'; @override String get studyButtonGone => 'That studyset no longer exists.'; @override String get pdfPageField => 'PDF page'; @override String get studysetTabFiles => 'Files'; @override String get pdfUploadMenu => 'Upload a PDF'; @override String get pdfFileType => 'PDFs'; @override String pdfAdded(String title) { return 'Added \"$title\".'; } @override String get pdfNotPdf => 'This file isn\'t a PDF.'; @override String pdfTooLarge(int megabytes) { return 'This PDF is larger than $megabytes MB.'; } @override String get pdfDuplicateTitle => 'PDF already here'; @override String pdfDuplicateMessage(String title) { return 'This file is \"$title\", which this studyset holds already. Add it as a copy, or keep the one there?'; } @override String get pdfDuplicateKeep => 'Keep the one there'; @override String get pdfDuplicateAdd => 'Add a copy'; @override String get filesEmpty => 'No files yet'; @override String get filesEmptyHint => 'Use \"Add material → Upload a PDF\" to add one.'; @override String get filesSort => 'Sort'; @override String get filesSortCustom => 'Custom order'; @override String get filesSortName => 'Name (A–Z)'; @override String get filesSortNewest => 'Newest first'; @override String get filesSortOldest => 'Oldest first'; @override String get filesSortLargest => 'Largest first'; @override String pdfPages(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count pages', one: '1 page', ); return '$_temp0'; } @override String pdfPercentRead(int percent) { return '$percent% read'; } @override String get pdfDeadlineMet => 'Reading deadline met'; @override String pdfDeadlineUpcoming(int days, int pages) { String _temp0 = intl.Intl.pluralLogic( days, locale: localeName, other: '$days days', one: '1 day', ); return 'Starts in $_temp0 — $pages/day planned'; } @override String pdfDeadlinePassed(int pages) { String _temp0 = intl.Intl.pluralLogic( pages, locale: localeName, other: '$pages pages', one: '1 page', ); return 'Deadline passed — $_temp0 left'; } @override String pdfDeadlineToday(int pages) { String _temp0 = intl.Intl.pluralLogic( pages, locale: localeName, other: '$pages pages', one: '1 page', ); return 'Due today — $_temp0 left'; } @override String pdfDeadlinePace(int pages, int target, int days) { String _temp0 = intl.Intl.pluralLogic( days, locale: localeName, other: '$days days', one: '1 day', ); return '$pages/day to reach page $target in $_temp0'; } @override String get pdfOptions => 'Actions'; @override String get pdfRename => 'Rename'; @override String get pdfRenameTitle => 'Rename PDF'; @override String get pdfRenameLabel => 'Title'; @override String get pdfSetDeadline => 'Set reading deadline'; @override String get pdfEditDeadline => 'Edit reading deadline'; @override String get pdfMarkFinished => 'Mark as finished'; @override String get pdfResetReading => 'Reset reading progress'; @override String get pdfResetTitle => 'Reset reading progress?'; @override String pdfResetMessage(String title) { return 'How far you\'ve read \"$title\" is forgotten. The PDF, its flashcards and notes stay.'; } @override String get pdfResetConfirm => 'Reset'; @override String get pdfMoreInfo => 'More info'; @override String get pdfInfoFileName => 'File name'; @override String get pdfInfoSize => 'Size'; @override String get pdfInfoPages => 'Pages'; @override String get pdfInfoUnknown => 'Known once it is opened'; @override String get pdfDelete => 'Delete'; @override String get pdfDeleteTitle => 'Delete PDF?'; @override String pdfDeleteMessage(String title) { return '\"$title\" is removed from this studyset, with how far it was read. Flashcards and notes made from it stay.'; } @override String get pdfDeleteConfirm => 'Delete'; @override String get pdfDeleted => 'PDF deleted'; @override String get deadlineSheetSet => 'Set a reading deadline'; @override String get deadlineSheetEdit => 'Edit reading deadline'; @override String get deadlineSheetHelp => 'Reach a page by a day. Progress follows the furthest page you reach as you read.'; @override String deadlineReachPageOf(int count) { return 'Reach page (of $count)'; } @override String get deadlineReachPage => 'Reach page'; @override String get deadlineDecrease => 'Decrease'; @override String get deadlineIncrease => 'Increase'; @override String get deadlineChapter => 'Or finish a chapter'; @override String deadlineChapterEntry(String title, int page) { return '$title · to p.$page'; } @override String get deadlineBy => 'By'; @override String get deadlineStart => 'Start on'; @override String get deadlineStartToday => 'Today'; @override String get deadlineStartReset => 'Start today'; @override String get deadlineStartHelp => 'The daily pace counts from this day on. Until then the PDF waits under \"Upcoming\".'; @override String get deadlineSave => 'Save deadline'; @override String get deadlineRemove => 'Remove deadline'; @override String get readerMissing => 'This PDF isn\'t on this device yet. It opens once the device that added it has uploaded it and you\'re online.'; @override String get readerUnreadable => 'This file can\'t be read as a PDF.'; @override String get readerBack => 'Back to studyset'; @override String get readerSearch => 'Search PDF'; @override String get readerFitWidth => 'Fit width'; @override String get readerFitHeight => 'Fit height'; @override String get readerZoomIn => 'Zoom in'; @override String get readerZoomOut => 'Zoom out'; @override String get readerSetZoom => 'Set zoom'; @override String get readerZoomTitle => 'Zoom'; @override String get readerZoomApply => 'Apply'; @override String get readerFullscreen => 'Fullscreen'; @override String get readerExitFullscreen => 'Exit fullscreen'; @override String get readerPreviousPage => 'Previous page'; @override String get readerNextPage => 'Next page'; @override String readerPageOf(int count) { return '/ $count'; } @override String get readerFindHint => 'Find in PDF'; @override String readerMatchOf(int current, int total) { return '$current of $total'; } @override String get readerPreviousMatch => 'Previous match'; @override String get readerNextMatch => 'Next match'; @override String get readerCloseSearch => 'Close search'; @override String get readerExpand => 'Expand'; @override String get readerCollapse => 'Collapse'; @override String get readerTabFlashcards => 'Flashcards'; @override String get readerTabNotes => 'Notes'; @override String get readerCardCreated => 'Flashcard created'; @override String get readerCardDeleteTitle => 'Delete flashcard?'; @override String get readerCardDeleteMessage => 'The flashcard is deleted, with how it was studied.'; @override String get readerCardDeleteConfirm => 'Delete'; @override String get readerFrontMatter => 'Front matter'; @override String readerPage(int page) { return 'Page $page'; } @override String get readerByPage => 'Page'; @override String get readerByChapter => 'Chapter'; @override String get readerCardsEmpty => 'Select text to make flashcards in no time'; @override String get readerCardsEmptyHint => 'Select the lines that matter and send them to a question or an answer, or press \"Create flashcard\".'; @override String get readerCreateCard => 'Create flashcard'; @override String get readerEditCard => 'Edit flashcard'; @override String get readerBackToCards => 'Back to flashcards'; @override String readerReferencedPage(int page) { return 'Referenced page: $page'; } @override String readerUseCurrentPage(int page) { return 'Use current ($page)'; } @override String get readerQuestion => 'Question'; @override String get readerAnswer => 'Answer'; @override String get readerKeepOpen => 'Keep creation mode open'; @override String get readerClear => 'Clear'; @override String get readerCreate => 'Create'; @override String get readerUntitledCard => 'Untitled flashcard'; @override String get readerCardOptions => 'Card options'; @override String get readerNoteSaved => 'Saved'; @override String get readerNoteEditing => 'Editing…'; @override String get readerNoteSaving => 'Saving…'; @override String get readerNoteFailed => 'Save failed'; @override String get readerToQuestion => 'Question'; @override String get readerToAnswer => 'Answer'; @override String get readerToNote => 'Notes'; @override String get readerLineBreaksJoined => 'Line breaks joined (tap to keep)'; @override String get readerLineBreaksKept => 'Line breaks kept (tap to join)'; @override String get blockScreenshot => 'Screenshot of the page'; @override String get readerCaptureCancel => 'Cancel screenshot'; @override String get readerCaptureHint => 'Drag over the part of the page to keep'; @override String get readerCaptureFailed => 'The page couldn\'t be drawn. Try again once it has loaded.'; @override String get readerScreenshotSaved => 'Screenshot saved'; @override String get imageOpenPdfPage => 'Open the PDF at this page'; @override String get homeWidgetDeadlines => 'PDF reading deadlines'; @override String get deadlinesTitle => 'Reading deadlines'; @override String get deadlinesCurrent => 'Current'; @override String get deadlinesUpcoming => 'Upcoming'; @override String deadlinesProgress(int furthest, int target, String when) { return 'p.$furthest/$target · $when'; } @override String get deadlinePassedShort => 'deadline passed'; @override String get deadlineDueTodayShort => 'due today'; @override String deadlineDaysLeft(int days) { String _temp0 = intl.Intl.pluralLogic( days, locale: localeName, other: '$days days left', one: '1 day left', ); return '$_temp0'; } @override String deadlineToPageToday(int page) { return 'to p.$page today'; } @override String deadlineStartsIn(int days) { String _temp0 = intl.Intl.pluralLogic( days, locale: localeName, other: '$days days', one: '1 day', ); return 'Starts in $_temp0'; } @override String get deadlinesPlaceholder => 'Appears when you have reading deadlines'; @override String get deadlinesOpenTimeline => 'Open the timeline'; @override String get timelineTitle => 'Reading timeline'; @override String get timelineEmpty => 'No reading deadlines yet'; @override String get timelineEmptyHint => 'Set a reading deadline on a PDF to see it here.'; @override String get timelineToday => 'Today'; @override String timelinePages(int furthest, int target) { return 'p.$furthest/$target'; } @override String chapterFinished(String chapter, int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count cards', one: 'card', ); return 'Finished “$chapter” — study the $_temp0 you made?'; } @override String get chapterStudyNow => 'Study now'; @override String get chapterDismiss => 'Dismiss'; @override String get deadlineChapterLoading => 'Loading chapters…'; @override String fileSizeKb(int size) { return '$size KB'; } @override String fileSizeMb(String size) { return '$size MB'; } @override String pdfPageShort(int page) { return 'p. $page'; } @override String get ankiImportMenu => 'Import from Anki'; @override String get ankiImportFileType => 'Anki decks'; @override String get ankiImportTitle => 'Import Anki deck'; @override String get ankiImportOptionsTitle => 'How should subdecks be imported?'; @override String get ankiImportReading => 'Reading the deck…'; @override String ankiImportSummary(int cards) { String _temp0 = intl.Intl.pluralLogic( cards, locale: localeName, other: '$cards cards.', one: '1 card.', ); return '$_temp0'; } @override String ankiImportSummaryDecks(int cards, int decks) { String _temp0 = intl.Intl.pluralLogic( cards, locale: localeName, other: '$cards cards', one: '1 card', ); return '$_temp0 across $decks subdecks.'; } @override String get ankiImportModeFlatten => 'Flatten into this studyset'; @override String get ankiImportModeFlattenSubtitle => 'Import every card here and ignore the subdecks.'; @override String get ankiImportModeSubStudysets => 'Recreate as sub-studysets'; @override String get ankiImportModeSubStudysetsSubtitle => 'Mirror the subdeck tree: each subdeck becomes a nested studyset.'; @override String get ankiImportModeTag => 'Tag cards by subdeck'; @override String get ankiImportModeTagSubtitle => 'Keep every card here, tagged with each subdeck it came from.'; @override String get ankiImportProgress => 'Import study progress'; @override String get ankiImportProgressSubtitle => 'Bring Anki\'s review history over: cards continue where they left off. New cards stay new.'; @override String ankiImportMedia(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Include media ($count files)', one: 'Include media (1 file)', ); return '$_temp0'; } @override String get ankiImportMediaSubtitle => 'Keep the deck\'s images and sounds on the cards.'; @override String ankiImportMediaMayNotFit(String size, String left) { return 'Its files take $size MB, more than the $left MB you have left: those that don\'t fit stay on this device, and your other devices won\'t show them.'; } @override String get ankiImportRunning => 'Importing…'; @override String get ankiImportConfirm => 'Import'; @override String get ankiImportNotAPackage => 'This isn\'t an Anki deck. In Anki, export a deck as an .apkg file and import that.'; @override String get ankiImportNewerFormat => 'This deck comes from a newer Anki than this app knows. Export it again with “Support older Anki versions”.'; @override String get ankiImportUnreadable => 'This deck is damaged and can\'t be read.'; @override String get ankiImportBrokeOff => 'The import broke off. The cards it brought in so far stay.'; @override String ankiImported(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Imported $count flashcards from Anki.', one: 'Imported 1 flashcard from Anki.', ); return '$_temp0'; } @override String ankiImportedSubStudysets(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Imported $count cards into sub-studysets.', one: 'Imported 1 card into sub-studysets.', ); return '$_temp0'; } @override String ankiImportedTagged(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Imported $count cards, tagged by subdeck.', one: 'Imported 1 card, tagged by subdeck.', ); return '$_temp0'; } @override String ankiImportFilesSkipped(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count media files couldn\'t be imported.', one: '1 media file couldn\'t be imported.', ); return '$_temp0'; } @override String get pomodoroTitle => 'Pomodoro'; @override String get pomodoroFocus => 'Focus'; @override String get pomodoroShortBreak => 'Short break'; @override String get pomodoroLongBreak => 'Long break'; @override String pomodoroFocusOf(int done, int total) { return 'Focus $done of $total'; } @override String get pomodoroStart => 'Start'; @override String get pomodoroPause => 'Pause'; @override String get pomodoroResume => 'Resume'; @override String get pomodoroSkip => 'Skip'; @override String get pomodoroStop => 'Stop'; @override String get pomodoroPaused => 'Paused'; @override String pomodoroPausedProfile(String profile) { return 'Paused · $profile'; } @override String get pomodoroClassic => 'Classic'; @override String get pomodoroUnnamed => 'Unnamed profile'; @override String get pomodoroProfiles => 'Pomodoro profiles'; @override String get pomodoroChooseProfile => 'Choose a profile'; @override String get pomodoroAddProfile => 'Add a profile'; @override String get pomodoroEditProfile => 'Edit profile'; @override String get pomodoroName => 'Name'; @override String get pomodoroFocusLength => 'Focus'; @override String get pomodoroShortBreakLength => 'Short break'; @override String get pomodoroLongBreakLength => 'Long break'; @override String pomodoroMinutes(int count) { return '$count min'; } @override String get pomodoroNoLongBreak => 'None'; @override String get pomodoroLongBreakAfter => 'Focus phases before a long break'; @override String get pomodoroAutoStartBreaks => 'Start breaks by themselves'; @override String get pomodoroAutoStartFocus => 'Start focus by itself after a break'; @override String get pomodoroDoNotDisturb => 'Do Not Disturb while focusing'; @override String get pomodoroDoNotDisturbHint => 'The device keeps quiet while you focus; the alert at its end still sounds.'; @override String get pomodoroDoNotDisturbDenied => 'The app may not keep this device quiet. Allow it in the system\'s settings.'; @override String get pomodoroDeleteProfile => 'Delete profile'; @override String pomodoroSummary(int focus, int shortBreak) { return '$focus min focus, $shortBreak min break'; } @override String pomodoroSummaryLong( int focus, int shortBreak, int longBreak, int after, ) { return '$focus min focus, $shortBreak min break, $longBreak min after $after'; } @override String get pomodoroAlertFocusDone => 'Time for a break'; @override String get pomodoroAlertBreakDone => 'Back to focus'; @override String pomodoroAlertStarts(String phase) { return '$phase has started.'; } @override String pomodoroAlertWaits(String phase) { return '$phase is ready when you are.'; } @override String get homeWidgetPomodoro => 'Pomodoro timer'; @override String get pomodoroAlerts => 'Pomodoro alerts'; @override String pomodoroUntil(String time) { return 'Until $time'; } @override String pomodoroLeft(String left) { return '$left left'; } @override String pathImportAtStep(int step, String problem) { return 'Step $step: $problem'; } @override String pathImportNotJson(String detail) { return 'This is no JSON: $detail'; } @override String get pathImportNoPath => 'a \"path\" object is missing.'; @override String get pathImportNoTitle => 'the path has no \"title\".'; @override String get pathImportDescriptionNotText => 'the path\'s \"description\" is no text.'; @override String get pathImportNotAnObject => 'no object.'; @override String pathImportUnknownStepType(String detail) { return 'unknown \"type\": $detail.'; } @override String pathImportRightOptionMissing(String detail) { return 'its right option $detail is not among its options.'; } @override String get pathImportRightOptionsMissing => 'it names a right option that is not among its options.'; @override String get pathImportNoPairing => 'no \"correct_pairing\".'; @override String pathImportPairingTargetMissing(String detail) { return 'it pairs items with a target that isn\'t there: $detail.'; } @override String get pathImportPairingIncomplete => 'every item must be paired with one target.'; @override String get pathImportNoPassage => 'no \"passage\".'; @override String get pathImportBlanksMismatch => 'it needs one word in \"blanks\" for each ___ in its passage.'; @override String get pathImportBlockWithoutType => 'a block without \"type\".'; @override String get pathImportMalformedLevel => 'a heading with a malformed level.'; @override String get pathImportMalformedListItem => 'a malformed list item.'; @override String get pathImportMalformedMath => 'a malformed math block.'; @override String get pathImportMalformedCode => 'a malformed code block.'; @override String pathImportUnknownBlock(String detail) { return 'an unknown block: $detail.'; } @override String pathImportTextlessBlock(String detail) { return 'a $detail without \"text\" or \"runs\".'; } @override String get pathImportMalformedRun => 'a malformed run of text.'; @override String get pathImportListExpected => 'a list was expected.'; @override String pathImportNotText(String detail) { return '\"$detail\" must be text.'; } @override String pathImportTooFew(String detail) { return 'it needs at least two \"$detail\".'; } @override String get pathImportMalformedNumber => 'a malformed number.'; @override String get pathImportTitleNotText => 'a title must be text.'; @override String get pathImportMalformedSource => 'a source must be an object or text, and its parts text.'; @override String get pathImportMalformedTable => 'a table needs \"rows\" of cells, each as long as the first.'; @override String pathImportMalformedCallout(String detail) { return 'a callout with a malformed $detail.'; } @override String pathImportNotInCallout(String detail) { return 'a $detail can\'t be inside a callout.'; } @override String get pomodoroTopBarHint => 'The timer can count down in GNOME\'s top bar, with its buttons, once the AppIndicator extension is on.'; @override String get pomodoroTopBarSetUp => 'Set up'; @override String get pomodoroTopBarDismiss => 'Don\'t suggest again'; @override String get cardBrowserTitle => 'Flashcards'; @override String cardBrowserTitleWithName(String title) { return '$title — flashcards'; } @override String get cardBrowserWithSubstudysets => 'With its sub-studysets'; @override String get cardBrowserBrowse => 'Browse'; @override String get cardBrowserBrowseTooltip => 'Browse flashcards'; @override String get cardBrowserStudy => 'Study'; @override String get cardBrowserEditor => 'Editor'; @override String get cardBrowserMore => 'More'; @override String get cardBrowserImport => 'Import flashcards'; @override String get cardBrowserGrid => 'Grid'; @override String get cardBrowserDetail => 'Detail'; @override String get cardBrowserSearch => 'Search'; @override String get cardBrowserSort => 'Sort'; @override String get cardBrowserFilter => 'Filter'; @override String get cardBrowserSelect => 'Select'; @override String get cardBrowserSortManual => 'Manual order'; @override String get cardBrowserSortNewest => 'Newest first'; @override String get cardBrowserSortOldest => 'Oldest first'; @override String get cardBrowserSortAlphabetical => 'A–Z (front)'; @override String get cardBrowserSortDue => 'Due first'; @override String get cardBrowserSearchHint => 'Search flashcards'; @override String get cardBrowserCloseSearch => 'Close search'; @override String get cardBrowserClearQuery => 'Clear query'; @override String get cardBrowserFilterTitle => 'Filter flashcards'; @override String get cardBrowserFilterType => 'Type'; @override String get cardBrowserTypeAll => 'All cards'; @override String get cardBrowserTypeFrontBack => 'Q&A only'; @override String get cardBrowserTypeMultipleChoice => 'Multiple-choice only'; @override String get cardBrowserTypeVocabulary => 'Words only'; @override String get cardBrowserTypeMatching => 'Matching only'; @override String get cardBrowserTypeMap => 'Maps only'; @override String get cardBrowserTypeCharacter => 'Characters only'; @override String get cardBrowserFilterTag => 'Tag'; @override String get cardBrowserAllTags => 'All tags'; @override String get cardBrowserFilterStatus => 'Status'; @override String get cardBrowserStatusNew => 'New'; @override String get cardBrowserStatusLearning => 'Learning'; @override String get cardBrowserStatusDue => 'Due'; @override String get cardBrowserStatusBuried => 'Buried'; @override String get cardBrowserStatusReported => 'Reported'; @override String get cardBrowserClearAll => 'Clear all'; @override String get cardBrowserApply => 'Apply'; @override String get cardBrowserEmptyTitle => 'No flashcards yet'; @override String get cardBrowserEmptyHint => 'Create some to browse them here.'; @override String get cardBrowserCreate => 'Create flashcards'; @override String get cardBrowserNoMatches => 'No flashcards match'; @override String get cardBrowserNoMatchesHint => 'Try a different search or filter.'; @override String get cardBrowserClearFilters => 'Clear search & filters'; @override String get cardBrowserRetry => 'Retry'; @override String get cardBrowserPrevious => 'Previous'; @override String get cardBrowserNext => 'Next'; @override String get cardBrowserBuried => 'Buried'; @override String get cardBrowserSelectAll => 'Select all'; @override String get cardBrowserDeselectAll => 'Deselect all'; @override String cardBrowserSelected(int count) { return '$count selected'; } @override String get cardBrowserRangeHintTouch => 'Long-press another card to select everything in between.'; @override String get cardBrowserRangeHintPointer => 'Shift-click another card to select everything in between.'; @override String get cardBrowserMove => 'Move'; @override String get cardBrowserAddTags => 'Add tags'; @override String get cardBrowserRemoveTags => 'Remove tags'; @override String get cardBrowserResetProgress => 'Reset progress'; @override String get cardBrowserDelete => 'Delete'; @override String get cardBrowserMoreActions => 'More actions'; @override String get cardBrowserDone => 'Done'; @override String cardBrowserDeleted(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count flashcards deleted', one: '1 flashcard deleted', ); return '$_temp0'; } @override String cardBrowserMoveTitle(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Move $count flashcards to', one: 'Move 1 flashcard to', ); return '$_temp0'; } @override String cardBrowserMoved(int count, String title) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Moved $count flashcards to “$title”', one: 'Moved 1 flashcard to “$title”', ); return '$_temp0'; } @override String cardBrowserAddTagsTitle(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Add tags to $count flashcards', one: 'Add tags to 1 flashcard', ); return '$_temp0'; } @override String cardBrowserAddTo(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Add to $count flashcards', one: 'Add to 1 flashcard', ); return '$_temp0'; } @override String cardBrowserRemoveTagsTitle(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Remove tags from $count flashcards', one: 'Remove tags from 1 flashcard', ); return '$_temp0'; } @override String cardBrowserRemoveFrom(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Remove from $count flashcards', one: 'Remove from 1 flashcard', ); return '$_temp0'; } @override String get cardBrowserNoTags => 'No tags yet. Create tags from a flashcard\'s editor, then apply them here.'; @override String get cardBrowserNoTagsOnCards => 'The flashcards chosen have no tags.'; @override String cardBrowserTagsAdded(int tags, int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count flashcards', one: '1 flashcard', ); String _temp1 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count flashcards', one: '1 flashcard', ); String _temp2 = intl.Intl.pluralLogic( tags, locale: localeName, other: 'Added $tags tags to $_temp0', one: 'Added 1 tag to $_temp1', ); return '$_temp2'; } @override String cardBrowserTagsRemoved(int tags, int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count flashcards', one: '1 flashcard', ); String _temp1 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count flashcards', one: '1 flashcard', ); String _temp2 = intl.Intl.pluralLogic( tags, locale: localeName, other: 'Removed $tags tags from $_temp0', one: 'Removed 1 tag from $_temp1', ); return '$_temp2'; } @override String cardBrowserResetTitle(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Start $count flashcards afresh?', one: 'Start 1 flashcard afresh?', ); return '$_temp0'; } @override String get cardBrowserResetMessage => 'They count as new again. Their reviews stay in your history and streaks.'; @override String get cardBrowserResetConfirm => 'Reset'; @override String cardBrowserReset(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count flashcards start afresh', one: '1 flashcard starts afresh', ); return '$_temp0'; } @override String get studysetShare => 'Share'; @override String get studysetSharePrivate => 'Share: private'; @override String get studysetSharePublished => 'Share: published'; @override String get publishTitle => 'Publish'; @override String get publishPrivate => 'Private · only you can see it'; @override String publishPublished(int version, String date) { return 'Published · v$version · $date'; } @override String get publishIntro => 'A release is this studyset with everything inside it, as it is now. Others can find it, learn from it and copy it. Each release stays as it was; later changes go into the next one.'; @override String get publishAnonymous => 'Sign in to have a public profile and publish.'; @override String get publishName => 'Name'; @override String get publishNameHint => 'japanese'; @override String publishLocation(String location) { return 'Found at $location'; } @override String get publishNameFixed => 'Fixed since you first published: others refer to it.'; @override String get publishLicence => 'Licence'; @override String get publishLicenceNone => 'None'; @override String get publishLicenceOpen => 'Allows publishing.'; @override String get publishLicenceNoDerivatives => 'Allows publishing as it is: learners keep their changes to themselves.'; @override String get publishLicenceClosed => 'Doesn\'t allow passing it on. Choose another under Edit.'; @override String publishLicenceNotOpen(String titles) { return 'These studysets\' licences don\'t allow passing them on: $titles'; } @override String get publishNotes => 'What changed'; @override String get publishNotesHint => 'New in this release…'; @override String get publishDescription => 'Description on Explore'; @override String get publishDescriptionAdd => 'Add a description'; @override String get publishDescriptionHelp => 'What people see on Explore before adding it. It starts as the studyset’s own; the studyset keeps its own as it is.'; @override String get publishReleases => 'Releases'; @override String publishRelease(int version, String date) { return 'v$version · $date'; } @override String publishButton(int version) { return 'Publish v$version'; } @override String get publishNoProfile => 'A release names you by your public profile. Make one first.'; @override String get publishMakeProfile => 'Make a public profile'; @override String get publishConflicts => 'These were changed differently on two devices. Settle them first:'; @override String get publishConflictsElsewhere => 'Some cards, notes or steps were changed differently on two devices. Sync, then try again.'; @override String get publishUntitled => 'Untitled'; @override String get publishFilesMissing => 'Some files haven\'t reached your instance yet. Try again in a moment.'; @override String get publishNothingChanged => 'Nothing has changed since the last release.'; @override String get publishBusy => 'This studyset is being published already. Try again in a moment.'; @override String get publishSlugInvalid => 'Lower-case letters, digits and hyphens, starting with a letter or digit.'; @override String get publishSlugTaken => 'Another of your studysets has this name.'; @override String get publishNotesTooLong => 'At most 5,000 characters.'; @override String publishDone(int version) { return 'Published v$version.'; } @override String get publishFailed => 'Couldn\'t reach your instance. Nothing was published.'; @override String get publishUnreachable => 'Publishing can\'t be reached right now.'; @override String get publishRetry => 'Retry'; @override String get publishCopyLocation => 'Copy address'; @override String get publishLocationCopied => 'Address copied.'; @override String get publishedField => 'Release'; @override String publishedVersion(int version) { return 'v$version'; } @override String get exploreSearch => 'Search titles and authors'; @override String get exploreLanguages => 'Languages'; @override String get exploreAnyLanguage => 'Any'; @override String exploreLanguagePair(String front, String back) { return '$front → $back'; } @override String get exploreKinds => 'Content'; @override String exploreKindsChosen(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count kinds of content', one: '1 kind of content', ); return '$_temp0'; } @override String get exploreKindCards => 'Flashcards'; @override String get exploreKindNotes => 'Notes'; @override String get exploreKindPaths => 'Learning paths'; @override String get exploreKindPdfs => 'PDFs'; @override String get exploreKindsIntro => 'Only studysets holding each of these.'; @override String get exploreClearFilters => 'Clear filters'; @override String get exploreNothingMatches => 'Nothing published here matches.'; @override String exploreBy(String author) { return 'by $author'; } @override String exploreRelease(int version, String date) { return 'v$version · $date'; } @override String get exploreMaterial => 'Material'; @override String exploreLatestRelease(int version, String date) { return 'Latest release: v$version · $date'; } @override String get exploreAddToLibrary => 'Add to library'; @override String get exploreAdd => 'Add'; @override String get exploreInLibraryShort => 'In library'; @override String get exploreInLibrary => 'In your library'; @override String explorePercent(int percent) { return '$percent %'; } @override String get exploreAdded => 'Added to your library.'; @override String get exploreOpen => 'Open'; @override String get exploreNeedsNewerApp => 'This studyset needs a newer version of the app.'; @override String get exploreFailed => 'Couldn\'t reach your instance. Try again.'; @override String get exploreUnreachable => 'Explore can\'t be reached right now.'; @override String get exploreRetry => 'Retry'; @override String get exploreMore => 'Show more'; @override String get exploreNoDescription => 'No description.'; @override String get exploreReadLicence => 'Read the licence'; @override String get publishWithdraw => 'Take off Explore'; @override String get publishWithdrawTitle => 'Take it off Explore?'; @override String get publishWithdrawMessage => 'Nobody can add it any more, and copies get no updates. Its releases stay as they are; publishing it again brings it back.'; @override String get publishWithdrawn => 'Withdrawn · copies get no updates'; @override String get publishWithdrawnDone => 'Taken off Explore.'; @override String copyUpdateOut(int version, String summary) { return 'v$version is out: $summary.'; } @override String copyUpdateChanged(int count) { return '$count changed'; } @override String copyUpdateAdded(int count) { return '$count new'; } @override String copyUpdateWithdrawn(int count) { return '$count withdrawn'; } @override String get copyUpdateNothing => 'nothing in your copy changes'; @override String get copyUpdate => 'Update'; @override String copyUpdated(int version) { return 'Updated to v$version.'; } @override String copyUpdatedToSettle(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count have a change of yours there too: open them to choose.', one: 'One has a change of yours there too: open it to choose.', ); return '$_temp0'; } @override String get copyUpdateFailed => 'Couldn\'t reach your instance. Try again.'; @override String get cardBrowserStatusWithdrawn => 'Withdrawn by the author'; @override String get settingsPrivacy => 'Privacy'; @override String get settingsCountLearning => 'Count my learning in Explore'; @override String get settingsCountLearningSubtitle => 'Explore shows how many people on this instance learn a published studyset: those with an identity who chose this and studied it on 3 or more days in the last 30, rounded, from 5 on. Nothing about you is shown, and nothing leaves the instance.'; @override String exploreLearners(int count) { return '$count+ learn this here'; } @override String get publishLearnersFew => 'Fewer than 5 learn it here, of those who chose to be counted.'; @override String get publishForkForbidden => 'Its original forbids passing on adaptations: only its author publishes it.'; @override String publishLicenseMustStay(String license) { return 'Its original asks adaptations to stay under $license: choose it under Edit, for every studyset in it.'; } @override String exploreBasedOn(String location) { return 'based on $location'; } @override String get feedbackReport => 'Report'; @override String get feedbackSuggestion => 'Suggestion'; @override String get feedbackOnStudyset => 'On the studyset'; @override String get feedbackOnCard => 'On a flashcard'; @override String get feedbackOnNote => 'On a note'; @override String get feedbackOnStep => 'On a step'; @override String feedbackByOn(String name, String date) { return '$name · $date'; } @override String get feedbackStatusClosed => 'Closed'; @override String get feedbackStatusAccepted => 'Accepted'; @override String get feedbackStatusDeclined => 'Declined'; @override String get feedbackStatusHidden => 'Hidden'; @override String get feedbackReplyHint => 'Write a reply…'; @override String get feedbackSend => 'Send'; @override String get feedbackAccept => 'Accept'; @override String get feedbackDecline => 'Decline'; @override String get feedbackClose => 'Close'; @override String get feedbackReopen => 'Reopen'; @override String get feedbackHide => 'Hide'; @override String get feedbackShow => 'Show'; @override String feedbackBlock(String name) { return 'Block $name'; } @override String feedbackBlockTitle(String name) { return 'Block $name?'; } @override String get feedbackBlockMessage => 'What they wrote on your studysets, and write, shows to nobody but them.'; @override String get feedbackProposed => 'Proposed'; @override String get feedbackYours => 'Yours now'; @override String get feedbackAuthor => 'Author'; @override String get feedbackAccepted => 'Taken into your studyset. The next release credits its writer.'; @override String get feedbackDecided => 'Done.'; @override String get feedbackReplied => 'Reply sent.'; @override String get feedbackBlocked => 'Blocked.'; @override String get feedbackNotTaken => 'This can\'t be taken: what it is about isn\'t in your studyset any more.'; @override String get feedbackFailed => 'Couldn\'t reach your instance. Try again.'; @override String get feedbackUnreachable => 'Reports and suggestions can\'t be reached right now.'; @override String get feedbackRetry => 'Retry'; @override String get inboxTitle => 'Inbox'; @override String get inboxIntro => 'Reports and suggestions on your published studysets, and those you wrote.'; @override String get inboxEmpty => 'Nothing yet.'; @override String get studysetFeedback => 'Reports and suggestions'; @override String get studysetFeedbackEmpty => 'Nobody has reported or suggested anything yet.'; @override String get reportToAuthor => 'Report to the author'; @override String get cardReportToAuthor => 'Send to the author too'; @override String get cardReportToAuthorHint => 'Public: everyone learning it reads it, with your public profile.'; @override String get feedbackReportSent => 'Sent to the author.'; @override String get suggestToAuthor => 'Suggest to the author'; @override String get suggestHint => 'What it changes, and why'; @override String get suggestIntro => 'The author sees it as you have it now, beside theirs. Public: everyone learning it reads it, with your public profile.'; @override String get suggestSent => 'Suggestion sent.'; @override String get suggestNoDerivatives => 'Its licence forbids adaptations: no suggestions.'; @override String get feedbackNeedsIdentity => 'Sign in to report to the author and suggest.'; @override String get kanjiExampleWords => 'Words with it'; @override String get settingsAssistant => 'Assistant'; @override String get settingsAskAssistant => 'Ask an AI assistant or search the web'; @override String get settingsAskAssistantSubtitle => 'Off unless you turn it on. Adds a field on Home and a button in the Library, on a studyset and while studying. A question opens in the AI assistant you choose or as a web search, with only the context you choose; nothing is sent from here.'; @override String assistantHint(String assistant) { return 'Ask $assistant…'; } @override String assistantHintStudyset(String assistant, String title) { return 'Ask $assistant about $title…'; } @override String assistantHintCard(String assistant) { return 'Ask $assistant about this card…'; } @override String assistantSend(String assistant) { return 'Ask in $assistant'; } @override String get assistantOpen => 'Ask or search'; @override String get assistantClose => 'Close'; @override String assistantOpenFailed(String assistant) { return '$assistant couldn\'t be opened.'; } @override String get assistantConnectTitle => 'Connect Claude'; @override String get assistantConnectSubtitle => 'Let Claude read your studysets'; @override String assistantConnectIntro(String instance) { return 'Claude can read your studysets, cards, notes and progress on $instance through Halkyon Learn\'s connector, and answer about them. It can\'t change anything. What it reads goes to Anthropic, under their privacy policy.'; } @override String get assistantStepAdd => 'In Claude, open Settings › Connectors and add a custom connector named Halkyon Learn, with this address. Added once, it works in Claude\'s apps too.'; @override String get assistantStepCode => 'Claude then opens a page asking for a code. Get one here: it works once, for ten minutes.'; @override String get assistantShowCode => 'Show a code'; @override String get assistantNewCode => 'New code'; @override String assistantCodeValid(String time) { return 'Valid until $time'; } @override String get assistantCopy => 'Copy'; @override String get assistantCopied => 'Copied'; @override String get assistantConnected => 'Connected'; @override String get assistantNoneConnected => 'Nothing connected yet.'; @override String assistantConnectedOn(String date) { return 'connected $date'; } @override String assistantLastRead(String date) { return 'last read $date'; } @override String get assistantDisconnect => 'Disconnect'; @override String assistantDisconnectTitle(String name) { return 'Disconnect $name?'; } @override String get assistantDisconnectMessage => 'It can\'t read your studysets any more. You can connect it again with a new code.'; @override String get assistantNotOffered => 'This instance doesn\'t offer a connector yet. Questions still open in the AI assistant you chose, with what they are about.'; @override String get assistantUnreachable => 'The instance can\'t be reached. Try again once you are online.'; @override String get assistantRetry => 'Try again'; @override String assistantLineFront(String text) { return 'Front: $text'; } @override String assistantLineBack(String text) { return 'Back: $text'; } @override String assistantLineHint(int number, String text) { return 'Hint $number: $text'; } @override String assistantLineExplanation(String text) { return 'Explanation: $text'; } @override String assistantLineStudyset(String title, String instance) { return 'Studyset: “$title” in Halkyon Learn on $instance'; } @override String assistantLineDescription(String text) { return 'Description: $text'; } @override String assistantChipStudyset(String title) { return 'Studyset: $title'; } @override String get assistantContextLabel => 'Send along'; @override String get assistantTargetWeb => 'Web'; @override String get assistantSwitchToWeb => 'Search the web instead'; @override String assistantSwitchToAssistant(String assistant) { return 'Ask $assistant instead'; } @override String get assistantHintWeb => 'Search the web…'; @override String get assistantSendWeb => 'Search'; @override String get assistantSearchFailed => 'The search couldn\'t be opened.'; @override String get settingsSearchEngine => 'Search engine'; @override String get settingsAiAssistant => 'AI assistant'; @override String get aiAssistantCustomHint => 'https://example.org/chat?q=%s'; @override String get searchEngineDevice => 'The device\'s search'; @override String get searchEngineCustom => 'Your own address'; @override String get searchEngineCustomHint => 'https://example.org/search?q=%s'; @override String get searchEngineCustomInvalid => 'An http or https address with %s where the question goes.'; @override String get searchEngineCustomSave => 'Use'; @override String get studysetPartMaterial => 'Material'; @override String get studysetPartProgress => 'Progress'; @override String get studysetPartPlan => 'Study plan'; @override String get progressLearned => 'Learned'; @override String get progressLearnedInfo => 'Cards you will remember for three weeks or more.'; @override String get progressOfStudyset => 'of this studyset'; @override String progressCardsLearned(int learned, int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$learned of $count cards', one: '$learned of 1 card', ); return '$_temp0'; } @override String get progressToReview => 'To review'; @override String get progressToReviewInfo => 'Cards studied before that are due again today.'; @override String progressDueToday(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'cards due today', one: 'card due today', ); return '$_temp0'; } @override String get progressStudyTime => 'Study time'; @override String get progressStudyTimeInfo => 'How long you studied this studyset\'s flashcards in the last seven days, each card counted for at most a minute.'; @override String get progressThisWeek => 'this week'; @override String progressMinutes(int minutes) { return '$minutes min'; } @override String progressHoursMinutes(int hours, int minutes) { return '$hours h $minutes min'; } @override String planPathsDone(int done, int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$done of $count paths finished', one: '$done of 1 path finished', ); return '$_temp0'; } @override String get planNoPaths => 'No learning paths yet'; @override String get planNextUp => 'Next up'; @override String planReview(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Study $count flashcards', one: 'Study 1 flashcard', ); return '$_temp0'; } @override String planContinue(String title) { return 'Continue “$title”'; } @override String planStart(String title) { return 'Start “$title”'; } @override String planStepOf(int number, int total) { return 'Step $number of $total'; } @override String planStepOfTitled(int number, int total, String title) { return 'Step $number of $total: $title'; } @override String planStepsDone(int done, int total) { String _temp0 = intl.Intl.pluralLogic( total, locale: localeName, other: '$done of $total steps', one: '$done of 1 step', ); return '$_temp0'; } @override String get planNothing => 'Nothing due right now.'; @override String get planLearningPaths => 'Learning paths'; @override String get examPrepare => 'Prepare for an exam'; @override String get examPrepareHint => 'Choose what it covers and its date, and get a pace that gets you there.'; @override String get examChange => 'Change the exam'; @override String examDaysLeft(int count, String date) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'In $count days, $date', one: 'Tomorrow, $date', zero: 'Today, $date', ); return '$_temp0'; } @override String examPast(String date) { return 'It was on $date'; } @override String get examPlanGone => 'This exam plan is gone'; @override String examCardsStarted(int started, int total) { String _temp0 = intl.Intl.pluralLogic( total, locale: localeName, other: '$started of $total flashcards started', one: '$started of 1 flashcard started', ); return '$_temp0'; } @override String examPagesRead(int read, int total) { String _temp0 = intl.Intl.pluralLogic( total, locale: localeName, other: '$read of $total pages read', one: '$read of 1 page read', ); return '$_temp0'; } @override String get examPaceTitle => 'Your pace'; @override String examPaceNew(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count new flashcards a day', one: '1 new flashcard a day', ); return '$_temp0'; } @override String examPaceSteps(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count steps a week', one: '1 step a week', ); return '$_temp0'; } @override String examPacePages(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count pages a day', one: '1 page a day', ); return '$_temp0'; } @override String get examPaceDone => 'Everything new is learnt: review until the exam.'; @override String get examStudy => 'Study for the exam'; @override String get examSheetHelp => 'Choose what the exam covers and when it is. Everything new is then spread so that it is learnt a week before the exam, or halfway there when it is closer, leaving the rest for reviews. Only you see the date.'; @override String get examDate => 'Exam date'; @override String get examSheetPlans => 'This studyset’s exam plans'; @override String get examSheetFromTags => 'From the level tags'; @override String get examSheetNoPlans => 'No exam plans yet. Make one from this studyset’s topics and tags.'; @override String get examRemove => 'Stop preparing'; @override String examPlanTopicCount(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count topics', one: '1 topic', ); return '$_temp0'; } @override String get examPlanNew => 'New exam plan'; @override String get examPlanEdit => 'Edit exam plan'; @override String get examPlanHelp => 'An exam plan names what an exam covers: whole topics, with their flashcards, learning paths and PDFs, and flashcards with certain tags. It is published with the studyset.'; @override String get examPlanName => 'Name'; @override String get examPlanNameHint => 'e.g. Final exam'; @override String get examPlanTopics => 'Topics it covers whole'; @override String get examPlanTags => 'Flashcards with these tags'; @override String get examPlanEmpty => 'This studyset has no topics or tagged flashcards to choose from yet.'; @override String get examPlanDelete => 'Delete plan'; @override String get jellyfinTitle => 'Jellyfin'; @override String get jellyfinSubtitle => 'Watch shows and films and listen to music from your own Jellyfin server, and learn the words of their subtitles and lyrics. Signed in, a studyset\'s Add material offers From Jellyfin.'; @override String get jellyfinPrivacy => 'Your server\'s address and your sign-in stay on this device, and what you tie to a studyset follows you as ids, never titles. To find the words of a line, the app asks the instance about its text, which it answers and doesn\'t keep. Words you add are tagged with where you met them, kept with your flashcards like any tag.'; @override String jellyfinSignedInAs(String user, String server) { return '$user on $server'; } @override String get jellyfinSignOut => 'Sign out of Jellyfin'; @override String get jellyfinAddress => 'Server address'; @override String get jellyfinAddressHint => 'jellyfin.example.org'; @override String get jellyfinFind => 'Continue'; @override String get jellyfinUser => 'User name'; @override String get jellyfinPublicUsers => 'On this server'; @override String get jellyfinPassword => 'Password'; @override String get jellyfinPasswordNone => 'Leave empty if the account has none'; @override String get jellyfinSignIn => 'Sign in'; @override String get jellyfinQuickConnect => 'Sign in with a code'; @override String get jellyfinQuickConnectCode => 'Enter this code under Quick Connect in a Jellyfin app you\'re signed in to:'; @override String get jellyfinQuickConnectWaiting => 'Waiting for the code to be approved…'; @override String get jellyfinOtherServer => 'Another server'; @override String get jellyfinUnreachable => 'No server answered at that address over HTTPS.'; @override String get jellyfinNotEncrypted => 'That address isn\'t encrypted, and your password would travel in the clear. Use the server\'s HTTPS address.'; @override String get jellyfinNotJellyfin => 'That address isn\'t a Jellyfin server.'; @override String get jellyfinWrongCredentials => 'The user name or password is wrong.'; @override String get jellyfinSignedOut => 'You were signed out of Jellyfin. Sign in again.'; @override String get jellyfinFailed => 'That didn\'t work on the Jellyfin server. Try again.'; @override String get studysetWatch => 'From Jellyfin'; @override String get jellyfinBrowseTitle => 'Jellyfin'; @override String get jellyfinTied => 'Tied to this studyset'; @override String get jellyfinLibraries => 'Libraries'; @override String get jellyfinSearchHint => 'Search shows, films and music'; @override String get jellyfinTie => 'Tie to this studyset'; @override String get jellyfinUntie => 'Untie from this studyset'; @override String get jellyfinEmpty => 'Nothing here'; @override String jellyfinEpisode(int season, int episode) { return 'S$season E$episode'; } @override String get jellyfinNoPlayer => 'Videos can\'t play on this device.'; @override String get jellyfinNoPlayerLinux => 'Videos can\'t play on this device: playing them needs libmpv (the package libmpv2).'; @override String get watchNoSubtitles => 'This video has no subtitles in the studyset\'s language as text, so there is nothing to look up.'; @override String get watchSubtitles => 'Subtitles'; @override String get watchTranslation => 'Translation'; @override String get watchAudio => 'Audio'; @override String get watchBack10 => '10 seconds back'; @override String get watchForward10 => '10 seconds on'; @override String get watchSettings => 'Settings'; @override String get watchShortcuts => 'Keyboard shortcuts'; @override String get watchTrackForced => 'forced'; @override String get watchTrackCaptions => 'for the hard of hearing'; @override String get watchKeyPlayPause => 'Play or pause'; @override String get watchKeyFive => '5 seconds back or on'; @override String get watchKeyTen => '10 seconds back or on'; @override String get watchKeyLines => 'Previous or next line'; @override String get watchKeyJump => 'To 0 %, 10 %, … 90 % of the video'; @override String get watchKeyStartEnd => 'To the start or the end'; @override String get watchKeyClose => 'Close the word or the settings'; @override String get watchKeyShortcuts => 'These shortcuts'; @override String get watchKeySpace => 'Space'; @override String get watchKeyShift => 'Shift'; @override String get watchKeyHome => 'Home'; @override String get watchKeyEnd => 'End'; @override String get watchProgressNew => 'New'; @override String get watchProgressLearning => 'Learning'; @override String get watchProgressDue => 'Due'; @override String watchProgressLearned(int days) { String _temp0 = intl.Intl.pluralLogic( days, locale: localeName, other: 'again in $days days', one: 'again tomorrow', zero: 'again today', ); return 'Learned · $_temp0'; } @override String watchLookUpOn(String site) { return 'Look up on $site'; } @override String get watchWider => 'Longer words here'; @override String get watchWordsTitleSong => 'Words in this song'; @override String get watchStudyWordsSong => 'Study this song\'s words'; @override String get watchNoLyrics => 'This song has no lyrics, so there is nothing to look up.'; @override String get jellyfinNoLyrics => 'No lyrics'; @override String get watchStudy => 'Study'; @override String get watchStudyWords => 'Study this video\'s words'; @override String watchAddListed(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Add $count words', one: 'Add 1 word', ); return '$_temp0'; } @override String get watchAddListedHint => 'Adds the words listed to the studyset, tagged with where they were met, to study them'; @override String get watchAddNothing => 'No new words listed: change the filter'; @override String watchAddNew(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: 'Add the $count new words listed', one: 'Add the 1 new word listed', ); return '$_temp0'; } @override String watchAddedWords(int count) { String _temp0 = intl.Intl.pluralLogic( count, locale: localeName, other: '$count words added', one: '1 word added', zero: 'No words added', ); return '$_temp0'; } @override String get watchStudyScheduled => 'Study, on their schedules'; @override String get watchStudyCram => 'Cram, each once'; @override String get watchFilter => 'Filter the words'; @override String get watchFilterFresh => 'New words'; @override String get watchFilterHeld => 'Words in the studyset'; @override String get watchFilterAll => 'All words'; @override String watchFilterNoLevel(String levels) { return 'No $levels level'; } @override String get watchFilterClass => 'Word class'; @override String get watchFilterEmpty => 'No words of this video match the filter.'; @override String get watchClassNoun => 'Nouns'; @override String get watchClassVerb => 'Verbs'; @override String get watchClassAdjective => 'Adjectives'; @override String get watchClassAdverb => 'Adverbs'; @override String get watchClassExpression => 'Expressions'; @override String get watchClassOther => 'Others'; @override String get watchNone => 'None'; @override String get watchPlay => 'Play'; @override String get watchPause => 'Pause'; @override String get watchPreviousLine => 'Previous line'; @override String get watchNextLine => 'Next line'; @override String get watchPauseAtLineEnd => 'Pause after each line'; @override String get watchWordsTitle => 'Words in this video'; @override String get watchWordsFinding => 'Finding the words…'; @override String watchWordCount(int count) { return '$count×'; } @override String get watchAdd => 'Add'; @override String watchAdded(String word) { return '$word added'; } @override String watchStretchNone(String text) { return '$text isn\'t in the dictionary as one word.'; } @override String get watchStretchFailed => 'Couldn\'t look it up. Choose it again to try once more.'; @override String watchStretchSearch(String site) { return 'Search $site for it'; } @override String get watchTapAWord => 'Tap a word of the subtitles to look it up, or drag across characters to look up any part of a line (on a touch screen, hold first).'; @override String watchFormOf(String word) { return 'A form of $word'; } @override String get watchFailed => 'The video couldn\'t be played.'; } /// The translations for English, as used in the United Kingdom (`en_GB`). class AppLocalizationsEnGb extends AppLocalizationsEn { AppLocalizationsEnGb() : super('en_GB'); } /// The translations for English, as used in the United States (`en_US`). class AppLocalizationsEnUs extends AppLocalizationsEn { AppLocalizationsEnUs() : super('en_US'); @override String get studysetSheetColor => 'Color'; @override String colorPickerLabel(String color) { return 'Color: $color'; } @override String get studysetSheetLicense => 'License'; @override String get studysetSheetLicenseLabel => 'License'; @override String get studysetSheetLicenseHolder => 'License holder'; @override String get studysetSheetLicenseHolderHelper => 'Who to credit: a name or an organization.'; @override String studysetSheetLicenseNewer(String license, String current) { return '$license is an older Creative Commons license. Its current version, $current, may fit better.'; } @override String get licenseChooserTitle => 'Choose a license'; @override String get licenseChooserSubtitle => 'A few questions to find the Creative Commons license that fits how you want your work shared.'; @override String get licenseChooserIntroYes => 'Yes, share it under a license'; @override String get licenseChooserAdaptationsShareAlikeDetail => 'Adaptations carry this same license (SA).'; @override String get licenseChooserRecommended => 'Recommended license'; @override String get licenseChooserUse => 'Use this license'; @override String get licenseSummaryBySa => 'Others may share and adapt it, even commercially, if they credit you and license their adaptations the same way.'; @override String get licenseSummaryByNcSa => 'Others may share and adapt it non-commercially, with credit and the same license on adaptations.'; @override String get licenseSummaryByNcNd => 'Others may share it non-commercially, with credit, but may not adapt it: the strictest Creative Commons license.'; @override String get tagSheetColor => 'Color'; @override String get formatAlignCenter => 'Center'; @override String get homeCustomise => 'Customize'; @override String get publishLicence => 'License'; @override String publishLicenceNotOpen(String titles) { return 'These studysets\' licenses don\'t allow passing them on: $titles'; } @override String get exploreReadLicence => 'Read the license'; @override String get suggestNoDerivatives => 'Its license forbids adaptations: no suggestions.'; }