Each card's foot now says who made the studyset: "By you", or for a copy of a published studyset its author's handle. Beside the star, a lock or a globe says whether it is out on Explore, and opens the Publish sheet. The instance says which of the person's studysets are published and not withdrawn (`PublishEndpoint.published`, additive: older apps don't call it), and the app remembers that in the person's folder, so the library shows it offline too; publishing, withdrawing and looking one up keep it current. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
5650 lines
128 KiB
Dart
5650 lines
128 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for English (`en`).
|
||
class AppLocalizationsEn extends AppLocalizations {
|
||
AppLocalizationsEn([String locale = 'en']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => 'Halkyon Learn';
|
||
|
||
@override
|
||
String get shellTabHome => 'Home';
|
||
|
||
@override
|
||
String get shellTabLibrary => 'Library';
|
||
|
||
@override
|
||
String get shellTabExplore => 'Explore';
|
||
|
||
@override
|
||
String get shellTabProfile => 'Profile';
|
||
|
||
@override
|
||
String get homeTitle => 'Home';
|
||
|
||
@override
|
||
String get 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 => 'Studyset deleted';
|
||
|
||
@override
|
||
String get libraryDeleteTitle => 'Delete studyset?';
|
||
|
||
@override
|
||
String get libraryDeleteMessage =>
|
||
'It is deleted with everything inside it and all their cards, on all your devices. You can undo this for a few seconds.';
|
||
|
||
@override
|
||
String get libraryDeleteConfirm => 'Delete';
|
||
|
||
@override
|
||
String get studysetSheetCreateTitle => 'Create studyset';
|
||
|
||
@override
|
||
String get studysetSheetEditTitle => 'Edit studyset';
|
||
|
||
@override
|
||
String get studysetSheetCreate => 'Create';
|
||
|
||
@override
|
||
String get studysetSheetSave => 'Save';
|
||
|
||
@override
|
||
String get studysetSheetTitleLabel => 'Title';
|
||
|
||
@override
|
||
String get studysetSheetSecondaryLabel => 'Secondary title';
|
||
|
||
@override
|
||
String get studysetSheetSecondaryHelper =>
|
||
'Shown as a small label above the title 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 libraryImport => 'Import';
|
||
|
||
@override
|
||
String get libraryImportAnkiHint =>
|
||
'Becomes a studyset of its own, from an .apkg or .colpkg file';
|
||
|
||
@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 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 pathTitleRequired => 'A path needs a 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 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 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 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 path';
|
||
|
||
@override
|
||
String get studysetImportPathHint => 'From a Halkyon path JSON file';
|
||
|
||
@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 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 exploreTitle => 'Explore';
|
||
|
||
@override
|
||
String get exploreEmpty => 'Studysets that others share will appear here.';
|
||
|
||
@override
|
||
String get profileTitle => 'Profile';
|
||
|
||
@override
|
||
String get profileSettingsTooltip => 'Settings';
|
||
|
||
@override
|
||
String get profileIdentified => 'Your progress is kept with your account.';
|
||
|
||
@override
|
||
String get profileAnonymous =>
|
||
'Progress is saved on this device. Sign in to keep it.';
|
||
|
||
@override
|
||
String get profileSignInWithGitHub => 'Sign in with GitHub';
|
||
|
||
@override
|
||
String get profileSignInFailed => 'Couldn\'t sign in with GitHub.';
|
||
|
||
@override
|
||
String get profileContinueInBrowser => 'Continue in your browser.';
|
||
|
||
@override
|
||
String get profileSwitchTitle => 'Switch to your GitHub account?';
|
||
|
||
@override
|
||
String get profileSwitchMessage =>
|
||
'This GitHub account already has progress from another device. The studysets on this device can\'t be combined with it yet: if you switch, they are deleted.';
|
||
|
||
@override
|
||
String get profileSwitchStay => 'Stay anonymous';
|
||
|
||
@override
|
||
String get profileSwitchConfirm => 'Switch';
|
||
|
||
@override
|
||
String get publicProfileTitle => 'Public profile';
|
||
|
||
@override
|
||
String get publicProfileIntro =>
|
||
'How others see you once you publish: the handle they find you by, your name, a few words and links. Nothing here shows until you save it.';
|
||
|
||
@override
|
||
String get publicProfileAnonymousHint =>
|
||
'Sign in with GitHub 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 get publicProfileRemoveLink => 'Remove link';
|
||
|
||
@override
|
||
String get publicProfileSaved => 'Profile saved.';
|
||
|
||
@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 publicProfilePicture => 'Picture';
|
||
|
||
@override
|
||
String get publicProfileChoosePicture => 'Choose picture';
|
||
|
||
@override
|
||
String get publicProfileRemovePicture => 'Remove picture';
|
||
|
||
@override
|
||
String get publicProfilePictureType => 'Images';
|
||
|
||
@override
|
||
String get publicProfilePictureLater => 'Save your profile to add a picture.';
|
||
|
||
@override
|
||
String get settingsTitle => 'Settings';
|
||
|
||
@override
|
||
String get settingsAccount => 'Account';
|
||
|
||
@override
|
||
String get settingsSignOut => 'Sign out';
|
||
|
||
@override
|
||
String get settingsSignOutTitle => 'Sign out?';
|
||
|
||
@override
|
||
String get settingsSignOutAnonymousMessage =>
|
||
'This account can\'t be signed into again, so signing out deletes it with its progress.';
|
||
|
||
@override
|
||
String get settingsDeleteAccount => 'Delete account';
|
||
|
||
@override
|
||
String get settingsDeleteTitle => 'Delete your account?';
|
||
|
||
@override
|
||
String get settingsDeleteMessage =>
|
||
'Everything you have, your studysets, cards and reviews, is deleted on the server and on all your devices. This can\'t be undone.';
|
||
|
||
@override
|
||
String get settingsAbout => 'About Halkyon Learn';
|
||
|
||
@override
|
||
String get 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 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 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 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 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 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 => 'Kanji & kana';
|
||
|
||
@override
|
||
String get studySettingsWriteByHand => 'Write by hand';
|
||
|
||
@override
|
||
String get studySettingsWriteByHandDescription =>
|
||
'Kanji, kana and words are written stroke by stroke and checked as you go, on a schedule of their own. 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 => 'Furigana (a reading above the text)';
|
||
|
||
@override
|
||
String get rubyTitle => 'Furigana';
|
||
|
||
@override
|
||
String get rubyReading => 'Reading';
|
||
|
||
@override
|
||
String get rubyReadingHint => 'In kana, e.g. かんじ';
|
||
|
||
@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 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.';
|
||
|
||
@override
|
||
String get studyTypedHint => 'The reading, in kana or romaji';
|
||
|
||
@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 kana reading, 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 studysetMenuReset => 'Reset progress';
|
||
|
||
@override
|
||
String get studysetResetTitle => 'Reset progress?';
|
||
|
||
@override
|
||
String get studysetResetMessage =>
|
||
'Every flashcard in it, and in the studysets inside it, starts afresh as new, on all your devices. Your study history stays. You can undo this for a few seconds.';
|
||
|
||
@override
|
||
String get studysetResetConfirm => 'Reset';
|
||
|
||
@override
|
||
String get studysetResetDone => 'Progress reset';
|
||
|
||
@override
|
||
String get mapUnknown => 'This map needs a newer version of the app.';
|
||
|
||
@override
|
||
String get mapPickRegion =>
|
||
'Tap the region that answers the question; pinch or scroll to zoom.';
|
||
|
||
@override
|
||
String get mapNonePicked => 'No region picked yet';
|
||
|
||
@override
|
||
String get composerPlaceholderQuestion => 'Add question';
|
||
|
||
@override
|
||
String get composerLabelRegion => 'Answer';
|
||
|
||
@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 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 cardBrowserTitleSubtree(String title) {
|
||
return '$title (incl. 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 with GitHub 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 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 exploreLatestRelease(int version, String date) {
|
||
return 'Latest release: v$version · $date';
|
||
}
|
||
|
||
@override
|
||
String get exploreAddToLibrary => 'Add to 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 with GitHub to report to the author and suggest.';
|
||
|
||
@override
|
||
String get kanjiExampleWords => 'Words with it';
|
||
}
|
||
|
||
/// 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.';
|
||
}
|