PDFs live in a studyset's new Files tab: uploaded from Add material (a file the studyset holds already asks first), each row with its pages, cards, notes and size, how far it is read and its reading deadline; renamed, given a deadline (a page or a chapter by a day), marked as read, started afresh, deleted with a moment to undo. The reader (/pdfs/:id) opens where reading left off: on wide windows a rail of tools (search, fit, zoom, fullscreen), a page counter with the chapter, and a sidebar; on phones a top bar, a page scrubber and a sheet. The sidebar holds the PDF's flashcards, by page or chapter, made from selected text or written there, each tied to its page and tagged with its chapter; and the page's note, an ordinary note tied to the page. Screenshots of a region become images that know their page. Cards and screenshots lead back to their page; reading on past a chapter with cards suggests studying it. Home shows the deadlines running and to come, and a timeline of them. Server: pdf_source rows (content in the payload, last writer wins) and an append-only pdf_reading log, the furthest page derived from it so devices never conflict. Files up to 50 MB for PDFs (20 MB for others; a larger file that isn't a PDF is deleted once stored). A deleted PDF takes its file's asset row along unless another PDF has the same file. Card payload 4 and note payload 2 keep the page. The reader draws with pdfrx (PDFium) behind PdfEngine in Dependencies; widget tests use a fake, and integration_test/pdf_engine_test.dart checks the real engine on a device or the desktop. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
4538 lines
126 KiB
Dart
4538 lines
126 KiB
Dart
import 'dart:async';
|
||
|
||
import 'package:flutter/foundation.dart';
|
||
import 'package:flutter/widgets.dart';
|
||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||
import 'package:intl/intl.dart' as intl;
|
||
|
||
import 'app_localizations_en.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// Callers can lookup localized strings with an instance of AppLocalizations
|
||
/// returned by `AppLocalizations.of(context)`.
|
||
///
|
||
/// Applications need to include `AppLocalizations.delegate()` in their app's
|
||
/// `localizationDelegates` list, and the locales they support in the app's
|
||
/// `supportedLocales` list. For example:
|
||
///
|
||
/// ```dart
|
||
/// import 'l10n/app_localizations.dart';
|
||
///
|
||
/// return MaterialApp(
|
||
/// localizationsDelegates: AppLocalizations.localizationsDelegates,
|
||
/// supportedLocales: AppLocalizations.supportedLocales,
|
||
/// home: MyApplicationHome(),
|
||
/// );
|
||
/// ```
|
||
///
|
||
/// ## Update pubspec.yaml
|
||
///
|
||
/// Please make sure to update your pubspec.yaml to include the following
|
||
/// packages:
|
||
///
|
||
/// ```yaml
|
||
/// dependencies:
|
||
/// # Internationalization support.
|
||
/// flutter_localizations:
|
||
/// sdk: flutter
|
||
/// intl: any # Use the pinned version from flutter_localizations
|
||
///
|
||
/// # Rest of dependencies
|
||
/// ```
|
||
///
|
||
/// ## iOS Applications
|
||
///
|
||
/// iOS applications define key application metadata, including supported
|
||
/// locales, in an Info.plist file that is built into the application bundle.
|
||
/// To configure the locales supported by your app, you’ll need to edit this
|
||
/// file.
|
||
///
|
||
/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file.
|
||
/// Then, in the Project Navigator, open the Info.plist file under the Runner
|
||
/// project’s Runner folder.
|
||
///
|
||
/// Next, select the Information Property List item, select Add Item from the
|
||
/// Editor menu, then select Localizations from the pop-up menu.
|
||
///
|
||
/// Select and expand the newly-created Localizations item then, for each
|
||
/// locale your application supports, add a new item and select the locale
|
||
/// you wish to add from the pop-up menu in the Value field. This list should
|
||
/// be consistent with the languages listed in the AppLocalizations.supportedLocales
|
||
/// property.
|
||
abstract class AppLocalizations {
|
||
AppLocalizations(String locale)
|
||
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
|
||
|
||
final String localeName;
|
||
|
||
static AppLocalizations of(BuildContext context) {
|
||
return Localizations.of<AppLocalizations>(context, AppLocalizations)!;
|
||
}
|
||
|
||
static const LocalizationsDelegate<AppLocalizations> delegate =
|
||
_AppLocalizationsDelegate();
|
||
|
||
/// A list of this localizations delegate along with the default localizations
|
||
/// delegates.
|
||
///
|
||
/// Returns a list of localizations delegates containing this delegate along with
|
||
/// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
|
||
/// and GlobalWidgetsLocalizations.delegate.
|
||
///
|
||
/// Additional delegates can be added by appending to this list in
|
||
/// MaterialApp. This list does not have to be used at all if a custom list
|
||
/// of delegates is preferred or required.
|
||
static const List<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||
<LocalizationsDelegate<dynamic>>[
|
||
delegate,
|
||
GlobalMaterialLocalizations.delegate,
|
||
GlobalCupertinoLocalizations.delegate,
|
||
GlobalWidgetsLocalizations.delegate,
|
||
];
|
||
|
||
/// A list of this localizations delegate's supported locales.
|
||
static const List<Locale> supportedLocales = <Locale>[Locale('en')];
|
||
|
||
/// The app's name, e.g. in the window title and the rail's logo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Halkyon Learn'**
|
||
String get appTitle;
|
||
|
||
/// No description provided for @shellTabHome.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Home'**
|
||
String get shellTabHome;
|
||
|
||
/// No description provided for @shellTabLibrary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Library'**
|
||
String get shellTabLibrary;
|
||
|
||
/// No description provided for @shellTabExplore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Explore'**
|
||
String get shellTabExplore;
|
||
|
||
/// No description provided for @shellTabProfile.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Profile'**
|
||
String get shellTabProfile;
|
||
|
||
/// No description provided for @homeTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Home'**
|
||
String get homeTitle;
|
||
|
||
/// No description provided for @libraryTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Library'**
|
||
String get libraryTitle;
|
||
|
||
/// No description provided for @libraryNewStudyset.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New studyset'**
|
||
String get libraryNewStudyset;
|
||
|
||
/// No description provided for @libraryEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No studysets yet'**
|
||
String get libraryEmpty;
|
||
|
||
/// No description provided for @libraryUnreadable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Couldn\'t read your studysets.'**
|
||
String get libraryUnreadable;
|
||
|
||
/// No description provided for @libraryArchivedSection.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Archived'**
|
||
String get libraryArchivedSection;
|
||
|
||
/// No description provided for @librarySearchTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search'**
|
||
String get librarySearchTooltip;
|
||
|
||
/// No description provided for @librarySearchHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search studysets'**
|
||
String get librarySearchHint;
|
||
|
||
/// No description provided for @librarySearchClearTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear query'**
|
||
String get librarySearchClearTooltip;
|
||
|
||
/// No description provided for @librarySearchCloseTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close search'**
|
||
String get librarySearchCloseTooltip;
|
||
|
||
/// No description provided for @librarySearchNoMatches.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No studysets match your search'**
|
||
String get librarySearchNoMatches;
|
||
|
||
/// No description provided for @libraryStudysetArchived.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studyset archived'**
|
||
String get libraryStudysetArchived;
|
||
|
||
/// No description provided for @libraryStudysetUnarchived.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studyset unarchived'**
|
||
String get libraryStudysetUnarchived;
|
||
|
||
/// No description provided for @libraryStudysetDeleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studyset deleted'**
|
||
String get libraryStudysetDeleted;
|
||
|
||
/// No description provided for @libraryDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete studyset?'**
|
||
String get libraryDeleteTitle;
|
||
|
||
/// No description provided for @libraryDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'It is deleted with everything inside it and all their cards, on all your devices. You can undo this for a few seconds.'**
|
||
String get libraryDeleteMessage;
|
||
|
||
/// No description provided for @libraryDeleteConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get libraryDeleteConfirm;
|
||
|
||
/// No description provided for @studysetSheetCreateTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create studyset'**
|
||
String get studysetSheetCreateTitle;
|
||
|
||
/// No description provided for @studysetSheetEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit studyset'**
|
||
String get studysetSheetEditTitle;
|
||
|
||
/// No description provided for @studysetSheetCreate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create'**
|
||
String get studysetSheetCreate;
|
||
|
||
/// No description provided for @studysetSheetSave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get studysetSheetSave;
|
||
|
||
/// No description provided for @studysetSheetTitleLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get studysetSheetTitleLabel;
|
||
|
||
/// No description provided for @studysetSheetSecondaryLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Secondary title'**
|
||
String get studysetSheetSecondaryLabel;
|
||
|
||
/// No description provided for @studysetSheetSecondaryHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Shown as a small label above the title.'**
|
||
String get studysetSheetSecondaryHelper;
|
||
|
||
/// No description provided for @studysetSheetColor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Color'**
|
||
String get studysetSheetColor;
|
||
|
||
/// No description provided for @studysetSheetDiscardTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discard changes?'**
|
||
String get studysetSheetDiscardTitle;
|
||
|
||
/// No description provided for @studysetSheetDiscardMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You have unsaved changes to this studyset. Discard them and close the form?'**
|
||
String get studysetSheetDiscardMessage;
|
||
|
||
/// No description provided for @studysetSheetDiscardConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discard'**
|
||
String get studysetSheetDiscardConfirm;
|
||
|
||
/// A colour of the palette content can take, by its stored name.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{name, select, 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}}}'**
|
||
String paletteColorName(String name);
|
||
|
||
/// No description provided for @colorPickerLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Color: {color}'**
|
||
String colorPickerLabel(String color);
|
||
|
||
/// No description provided for @studysetCountFlashcards.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 flashcard} other{{count} flashcards}}'**
|
||
String studysetCountFlashcards(int count);
|
||
|
||
/// No description provided for @studysetCountNotes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 note} other{{count} notes}}'**
|
||
String studysetCountNotes(int count);
|
||
|
||
/// No description provided for @studysetNoContent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No content yet'**
|
||
String get studysetNoContent;
|
||
|
||
/// No description provided for @studysetActionReview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Review'**
|
||
String get studysetActionReview;
|
||
|
||
/// No description provided for @studysetActionStudy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study'**
|
||
String get studysetActionStudy;
|
||
|
||
/// No description provided for @studysetActionAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add content'**
|
||
String get studysetActionAdd;
|
||
|
||
/// No description provided for @studysetArchived.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Archived'**
|
||
String get studysetArchived;
|
||
|
||
/// No description provided for @studysetStar.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Star'**
|
||
String get studysetStar;
|
||
|
||
/// No description provided for @studysetUnstar.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unstar'**
|
||
String get studysetUnstar;
|
||
|
||
/// No description provided for @studysetOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Options'**
|
||
String get studysetOptions;
|
||
|
||
/// No description provided for @studysetMenuEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit'**
|
||
String get studysetMenuEdit;
|
||
|
||
/// No description provided for @studysetMenuArchive.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Archive'**
|
||
String get studysetMenuArchive;
|
||
|
||
/// No description provided for @studysetMenuUnarchive.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unarchive'**
|
||
String get studysetMenuUnarchive;
|
||
|
||
/// No description provided for @studysetMenuDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get studysetMenuDelete;
|
||
|
||
/// No description provided for @studysetMenuMove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Move to…'**
|
||
String get studysetMenuMove;
|
||
|
||
/// No description provided for @studysetTabFlashcards.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flashcards'**
|
||
String get studysetTabFlashcards;
|
||
|
||
/// No description provided for @studysetTabNotes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notes'**
|
||
String get studysetTabNotes;
|
||
|
||
/// No description provided for @studysetTabPaths.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Paths'**
|
||
String get studysetTabPaths;
|
||
|
||
/// No description provided for @studysetCreatePath.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create a path'**
|
||
String get studysetCreatePath;
|
||
|
||
/// No description provided for @pathImportMenu.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import a path (JSON)'**
|
||
String get pathImportMenu;
|
||
|
||
/// No description provided for @pathImportFileType.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Learning path (JSON)'**
|
||
String get pathImportFileType;
|
||
|
||
/// No description provided for @pathImported.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Imported \"{title}\" with 1 step.} other{Imported \"{title}\" with {count} steps.}}'**
|
||
String pathImported(String title, int count);
|
||
|
||
/// No description provided for @pathImportSkipped.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 block was left out: images and animations aren\'t imported.} other{{count} blocks were left out: images and animations aren\'t imported.}}'**
|
||
String pathImportSkipped(int count);
|
||
|
||
/// No description provided for @pathImportFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Couldn\'t import this file. {reason}'**
|
||
String pathImportFailed(String reason);
|
||
|
||
/// No description provided for @pathImportUnreadable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'It isn\'t text in UTF-8.'**
|
||
String get pathImportUnreadable;
|
||
|
||
/// No description provided for @pathsEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No paths yet'**
|
||
String get pathsEmpty;
|
||
|
||
/// No description provided for @pathsEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A path leads through a lesson, step by step.'**
|
||
String get pathsEmptyHint;
|
||
|
||
/// No description provided for @pathOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Path options'**
|
||
String get pathOptions;
|
||
|
||
/// No description provided for @pathEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit'**
|
||
String get pathEdit;
|
||
|
||
/// No description provided for @pathResetProgress.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset progress'**
|
||
String get pathResetProgress;
|
||
|
||
/// No description provided for @pathProgressReset.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Progress reset'**
|
||
String get pathProgressReset;
|
||
|
||
/// No description provided for @pathDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get pathDelete;
|
||
|
||
/// No description provided for @pathDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete path?'**
|
||
String get pathDeleteTitle;
|
||
|
||
/// No description provided for @pathDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This path and its steps will be removed from the studyset. You can undo this for a few seconds.'**
|
||
String get pathDeleteMessage;
|
||
|
||
/// No description provided for @pathDeleteConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get pathDeleteConfirm;
|
||
|
||
/// No description provided for @pathDeleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Path deleted'**
|
||
String get pathDeleted;
|
||
|
||
/// No description provided for @pathCreateTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New path'**
|
||
String get pathCreateTitle;
|
||
|
||
/// No description provided for @pathCreate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create'**
|
||
String get pathCreate;
|
||
|
||
/// No description provided for @pathTitleLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get pathTitleLabel;
|
||
|
||
/// No description provided for @pathTitleRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A path needs a title.'**
|
||
String get pathTitleRequired;
|
||
|
||
/// No description provided for @pathSecondaryTitleLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Secondary title'**
|
||
String get pathSecondaryTitleLabel;
|
||
|
||
/// No description provided for @pathSecondaryTitleHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'E.g. the title in the language you learn'**
|
||
String get pathSecondaryTitleHint;
|
||
|
||
/// No description provided for @pathEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit path'**
|
||
String get pathEditTitle;
|
||
|
||
/// No description provided for @pathDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Description'**
|
||
String get pathDescription;
|
||
|
||
/// No description provided for @pathAddDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a description'**
|
||
String get pathAddDescription;
|
||
|
||
/// No description provided for @pathDescriptionEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Path description'**
|
||
String get pathDescriptionEditTitle;
|
||
|
||
/// No description provided for @pathAddTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add tags'**
|
||
String get pathAddTags;
|
||
|
||
/// No description provided for @pathTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tags'**
|
||
String get pathTags;
|
||
|
||
/// No description provided for @pathSteps.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Steps'**
|
||
String get pathSteps;
|
||
|
||
/// No description provided for @pathStepsEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No steps yet'**
|
||
String get pathStepsEmpty;
|
||
|
||
/// No description provided for @pathStepsEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pick a step type to start writing the lesson.'**
|
||
String get pathStepsEmptyHint;
|
||
|
||
/// No description provided for @pathAddStep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add step'**
|
||
String get pathAddStep;
|
||
|
||
/// No description provided for @pathReorder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reorder'**
|
||
String get pathReorder;
|
||
|
||
/// No description provided for @pathReorderDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get pathReorderDone;
|
||
|
||
/// No description provided for @pathStepDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete step'**
|
||
String get pathStepDelete;
|
||
|
||
/// No description provided for @pathStepDeleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Step deleted'**
|
||
String get pathStepDeleted;
|
||
|
||
/// No description provided for @stepUntitled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Untitled step'**
|
||
String get stepUntitled;
|
||
|
||
/// No description provided for @stepKindInfo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Info'**
|
||
String get stepKindInfo;
|
||
|
||
/// No description provided for @stepKindSingleChoice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Single choice'**
|
||
String get stepKindSingleChoice;
|
||
|
||
/// No description provided for @stepKindMultipleChoice.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Multiple choice'**
|
||
String get stepKindMultipleChoice;
|
||
|
||
/// No description provided for @stepKindDragAndDrop.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drag and drop'**
|
||
String get stepKindDragAndDrop;
|
||
|
||
/// No description provided for @stepKindFillInTheBlank.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fill in the blank'**
|
||
String get stepKindFillInTheBlank;
|
||
|
||
/// No description provided for @stepEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit step'**
|
||
String get stepEditTitle;
|
||
|
||
/// No description provided for @stepTitleHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get stepTitleHint;
|
||
|
||
/// No description provided for @stepOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Options'**
|
||
String get stepOptions;
|
||
|
||
/// No description provided for @stepOptionHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Option {number}'**
|
||
String stepOptionHint(int number);
|
||
|
||
/// No description provided for @stepAddOption.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add option'**
|
||
String get stepAddOption;
|
||
|
||
/// No description provided for @stepRemoveOption.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove option'**
|
||
String get stepRemoveOption;
|
||
|
||
/// No description provided for @stepCorrectOption.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The right one'**
|
||
String get stepCorrectOption;
|
||
|
||
/// No description provided for @stepCorrectOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Right ones'**
|
||
String get stepCorrectOptions;
|
||
|
||
/// No description provided for @stepCategories.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Categories'**
|
||
String get stepCategories;
|
||
|
||
/// No description provided for @stepCategoryHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Category {number}'**
|
||
String stepCategoryHint(int number);
|
||
|
||
/// No description provided for @stepAddCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add category'**
|
||
String get stepAddCategory;
|
||
|
||
/// No description provided for @stepRemoveCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove category'**
|
||
String get stepRemoveCategory;
|
||
|
||
/// No description provided for @stepItems.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Items'**
|
||
String get stepItems;
|
||
|
||
/// No description provided for @stepItemHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Item {number}'**
|
||
String stepItemHint(int number);
|
||
|
||
/// No description provided for @stepAddItem.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add item'**
|
||
String get stepAddItem;
|
||
|
||
/// No description provided for @stepRemoveItem.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove item'**
|
||
String get stepRemoveItem;
|
||
|
||
/// No description provided for @stepItemCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Belongs to'**
|
||
String get stepItemCategory;
|
||
|
||
/// No description provided for @stepPassage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Passage'**
|
||
String get stepPassage;
|
||
|
||
/// No description provided for @stepPassageHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Type ___ (three underscores) wherever a word should be dropped in.'**
|
||
String get stepPassageHint;
|
||
|
||
/// No description provided for @stepBlankHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Word for gap {number}'**
|
||
String stepBlankHint(int number);
|
||
|
||
/// No description provided for @stepIncomplete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not ready to answer yet: fill in every field and choose what is right.'**
|
||
String get stepIncomplete;
|
||
|
||
/// No description provided for @stepFeedbackRight.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Feedback after a right answer'**
|
||
String get stepFeedbackRight;
|
||
|
||
/// No description provided for @stepFeedbackWrong.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Feedback after a wrong answer'**
|
||
String get stepFeedbackWrong;
|
||
|
||
/// No description provided for @stepFeedbackNone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'None'**
|
||
String get stepFeedbackNone;
|
||
|
||
/// No description provided for @stepSources.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sources'**
|
||
String get stepSources;
|
||
|
||
/// No description provided for @stepAddSource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add source'**
|
||
String get stepAddSource;
|
||
|
||
/// No description provided for @stepRemoveSource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove source'**
|
||
String get stepRemoveSource;
|
||
|
||
/// No description provided for @stepSourceAuthors.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Authors'**
|
||
String get stepSourceAuthors;
|
||
|
||
/// No description provided for @stepSourceYear.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Year'**
|
||
String get stepSourceYear;
|
||
|
||
/// No description provided for @stepSourceTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get stepSourceTitle;
|
||
|
||
/// No description provided for @stepSourceUrl.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Link'**
|
||
String get stepSourceUrl;
|
||
|
||
/// No description provided for @stepSourcesCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 source} other{{count} sources}}'**
|
||
String stepSourcesCount(int count);
|
||
|
||
/// No description provided for @stepConflict.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This step was changed differently on another device. Keep one version to go on writing.'**
|
||
String get stepConflict;
|
||
|
||
/// No description provided for @stepFieldTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get stepFieldTitle;
|
||
|
||
/// No description provided for @stepFieldBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Text'**
|
||
String get stepFieldBody;
|
||
|
||
/// No description provided for @stepFieldExercise.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Exercise'**
|
||
String get stepFieldExercise;
|
||
|
||
/// No description provided for @stepFieldRightFeedback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Feedback after a right answer'**
|
||
String get stepFieldRightFeedback;
|
||
|
||
/// No description provided for @stepFieldWrongFeedback.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Feedback after a wrong answer'**
|
||
String get stepFieldWrongFeedback;
|
||
|
||
/// No description provided for @stepFieldSources.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sources'**
|
||
String get stepFieldSources;
|
||
|
||
/// No description provided for @runnerClose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close'**
|
||
String get runnerClose;
|
||
|
||
/// No description provided for @runnerEditStep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit step'**
|
||
String get runnerEditStep;
|
||
|
||
/// No description provided for @runnerBack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back'**
|
||
String get runnerBack;
|
||
|
||
/// No description provided for @runnerCheck.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Check answers'**
|
||
String get runnerCheck;
|
||
|
||
/// No description provided for @runnerContinue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Continue'**
|
||
String get runnerContinue;
|
||
|
||
/// No description provided for @runnerFinish.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Finish'**
|
||
String get runnerFinish;
|
||
|
||
/// No description provided for @runnerRight.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Correct!'**
|
||
String get runnerRight;
|
||
|
||
/// No description provided for @runnerWrong.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not quite'**
|
||
String get runnerWrong;
|
||
|
||
/// No description provided for @runnerAlreadyRight.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You already answered this correctly.'**
|
||
String get runnerAlreadyRight;
|
||
|
||
/// No description provided for @runnerSelectAll.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select all that apply.'**
|
||
String get runnerSelectAll;
|
||
|
||
/// No description provided for @runnerDragHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drag each item into the category it belongs to, or tap it and then the category. Tap a placed item to take it back.'**
|
||
String get runnerDragHint;
|
||
|
||
/// No description provided for @runnerBlankHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drag a word into each gap, or tap it and then the gap. Tap a placed word to take it back.'**
|
||
String get runnerBlankHint;
|
||
|
||
/// No description provided for @runnerEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This path has no steps yet.'**
|
||
String get runnerEmpty;
|
||
|
||
/// No description provided for @runnerFinished.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You finished this path'**
|
||
String get runnerFinished;
|
||
|
||
/// No description provided for @runnerFinishedSteps.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 step complete.} other{{count} steps complete.}}'**
|
||
String runnerFinishedSteps(int count);
|
||
|
||
/// No description provided for @runnerNextPath.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Continue to next path'**
|
||
String get runnerNextPath;
|
||
|
||
/// No description provided for @runnerBackToStudyset.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back to studyset'**
|
||
String get runnerBackToStudyset;
|
||
|
||
/// No description provided for @studysetCountPaths.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 path} other{{count} paths}}'**
|
||
String studysetCountPaths(int count);
|
||
|
||
/// No description provided for @studysetCreateNote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create a note'**
|
||
String get studysetCreateNote;
|
||
|
||
/// No description provided for @notesEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No notes yet'**
|
||
String get notesEmpty;
|
||
|
||
/// No description provided for @notesEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notes will appear here when you add them.'**
|
||
String get notesEmptyHint;
|
||
|
||
/// No description provided for @noteUntitled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Untitled note'**
|
||
String get noteUntitled;
|
||
|
||
/// No description provided for @noteEdited.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edited {when}'**
|
||
String noteEdited(String when);
|
||
|
||
/// No description provided for @timeJustNow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'just now'**
|
||
String get timeJustNow;
|
||
|
||
/// No description provided for @timeMinutesAgo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 minute ago} other{{count} minutes ago}}'**
|
||
String timeMinutesAgo(int count);
|
||
|
||
/// No description provided for @timeHoursAgo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 hour ago} other{{count} hours ago}}'**
|
||
String timeHoursAgo(int count);
|
||
|
||
/// No description provided for @timeDaysAgo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{yesterday} other{{count} days ago}}'**
|
||
String timeDaysAgo(int count);
|
||
|
||
/// No description provided for @noteOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Note options'**
|
||
String get noteOptions;
|
||
|
||
/// No description provided for @noteEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit'**
|
||
String get noteEdit;
|
||
|
||
/// No description provided for @noteDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get noteDelete;
|
||
|
||
/// No description provided for @noteDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete note?'**
|
||
String get noteDeleteTitle;
|
||
|
||
/// No description provided for @noteDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This note will be removed from the studyset. You can undo this for a few seconds.'**
|
||
String get noteDeleteMessage;
|
||
|
||
/// No description provided for @noteDeleteConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get noteDeleteConfirm;
|
||
|
||
/// No description provided for @noteDeleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Note deleted'**
|
||
String get noteDeleted;
|
||
|
||
/// No description provided for @noteNewTitleFor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New note in \"{title}\"'**
|
||
String noteNewTitleFor(String title);
|
||
|
||
/// No description provided for @noteTitleFor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Note in \"{title}\"'**
|
||
String noteTitleFor(String title);
|
||
|
||
/// No description provided for @noteTitleHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get noteTitleHint;
|
||
|
||
/// No description provided for @noteEditing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Editing…'**
|
||
String get noteEditing;
|
||
|
||
/// No description provided for @noteSaving.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saving…'**
|
||
String get noteSaving;
|
||
|
||
/// No description provided for @noteSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saved'**
|
||
String get noteSaved;
|
||
|
||
/// No description provided for @noteSaveFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save failed'**
|
||
String get noteSaveFailed;
|
||
|
||
/// No description provided for @noteConflict.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This note was changed differently on another device. Keep one version to go on writing.'**
|
||
String get noteConflict;
|
||
|
||
/// No description provided for @noteFieldTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get noteFieldTitle;
|
||
|
||
/// No description provided for @noteFieldBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Text'**
|
||
String get noteFieldBody;
|
||
|
||
/// No description provided for @noteKeepThis.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep this'**
|
||
String get noteKeepThis;
|
||
|
||
/// No description provided for @noteAddTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add tags'**
|
||
String get noteAddTags;
|
||
|
||
/// No description provided for @noteTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tags'**
|
||
String get noteTags;
|
||
|
||
/// No description provided for @studysetFlashcardsEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No flashcards yet'**
|
||
String get studysetFlashcardsEmpty;
|
||
|
||
/// No description provided for @studysetFlashcardsEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add some to start studying.'**
|
||
String get studysetFlashcardsEmptyHint;
|
||
|
||
/// No description provided for @studysetAddMaterial.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add material'**
|
||
String get studysetAddMaterial;
|
||
|
||
/// No description provided for @studysetCreateFlashcards.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create flashcards'**
|
||
String get studysetCreateFlashcards;
|
||
|
||
/// No description provided for @studysetStudy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study'**
|
||
String get studysetStudy;
|
||
|
||
/// No description provided for @studysetLearnCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Learn {count}'**
|
||
String studysetLearnCount(int count);
|
||
|
||
/// No description provided for @studysetOpenTopics.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show topics'**
|
||
String get studysetOpenTopics;
|
||
|
||
/// No description provided for @studysetTopics.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Topics'**
|
||
String get studysetTopics;
|
||
|
||
/// No description provided for @studysetAllTopics.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All topics'**
|
||
String get studysetAllTopics;
|
||
|
||
/// No description provided for @studysetNewSubStudyset.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New sub-studyset'**
|
||
String get studysetNewSubStudyset;
|
||
|
||
/// No description provided for @studysetSubStudysetsEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No sub-studysets yet.'**
|
||
String get studysetSubStudysetsEmpty;
|
||
|
||
/// No description provided for @studysetSubStudysetsEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Break this studyset into milestones or lessons.'**
|
||
String get studysetSubStudysetsEmptyHint;
|
||
|
||
/// No description provided for @studysetReorder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reorder'**
|
||
String get studysetReorder;
|
||
|
||
/// No description provided for @studysetReorderDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get studysetReorderDone;
|
||
|
||
/// No description provided for @studysetDragToReorder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drag to reorder'**
|
||
String get studysetDragToReorder;
|
||
|
||
/// No description provided for @studysetMoveTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Move studyset to'**
|
||
String get studysetMoveTitle;
|
||
|
||
/// No description provided for @studysetMoveTopLevel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Top level'**
|
||
String get studysetMoveTopLevel;
|
||
|
||
/// No description provided for @studysetMoveCurrent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Where it is now'**
|
||
String get studysetMoveCurrent;
|
||
|
||
/// No description provided for @studysetMoveConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Move'**
|
||
String get studysetMoveConfirm;
|
||
|
||
/// No description provided for @studysetMoveShowInside.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show what is inside'**
|
||
String get studysetMoveShowInside;
|
||
|
||
/// No description provided for @studysetMoveHideInside.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hide what is inside'**
|
||
String get studysetMoveHideInside;
|
||
|
||
/// No description provided for @studysetMoved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Moved to {destination}.'**
|
||
String studysetMoved(String destination);
|
||
|
||
/// No description provided for @studysetReadMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Read more'**
|
||
String get studysetReadMore;
|
||
|
||
/// No description provided for @studysetDescriptionTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Description'**
|
||
String get studysetDescriptionTitle;
|
||
|
||
/// No description provided for @studysetDescriptionEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit description'**
|
||
String get studysetDescriptionEditTitle;
|
||
|
||
/// No description provided for @richTextSave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get richTextSave;
|
||
|
||
/// No description provided for @studysetSheetDescription.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Description'**
|
||
String get studysetSheetDescription;
|
||
|
||
/// No description provided for @studysetSheetDescriptionAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a description'**
|
||
String get studysetSheetDescriptionAdd;
|
||
|
||
/// No description provided for @studysetSheetInheritColor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Same color as the studyset it is in'**
|
||
String get studysetSheetInheritColor;
|
||
|
||
/// No description provided for @exploreTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Explore'**
|
||
String get exploreTitle;
|
||
|
||
/// No description provided for @exploreEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studysets that others share will appear here.'**
|
||
String get exploreEmpty;
|
||
|
||
/// No description provided for @profileTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Profile'**
|
||
String get profileTitle;
|
||
|
||
/// No description provided for @profileSettingsTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Settings'**
|
||
String get profileSettingsTooltip;
|
||
|
||
/// No description provided for @profileIdentified.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your progress is kept with your account.'**
|
||
String get profileIdentified;
|
||
|
||
/// No description provided for @profileAnonymous.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Progress is saved on this device. Sign in to keep it.'**
|
||
String get profileAnonymous;
|
||
|
||
/// No description provided for @profileSignInWithGitHub.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sign in with GitHub'**
|
||
String get profileSignInWithGitHub;
|
||
|
||
/// No description provided for @profileSignInFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Couldn\'t sign in with GitHub.'**
|
||
String get profileSignInFailed;
|
||
|
||
/// No description provided for @profileContinueInBrowser.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Continue in your browser.'**
|
||
String get profileContinueInBrowser;
|
||
|
||
/// No description provided for @profileSwitchTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Switch to your GitHub account?'**
|
||
String get profileSwitchTitle;
|
||
|
||
/// No description provided for @profileSwitchMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'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.'**
|
||
String get profileSwitchMessage;
|
||
|
||
/// No description provided for @profileSwitchStay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stay anonymous'**
|
||
String get profileSwitchStay;
|
||
|
||
/// No description provided for @profileSwitchConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Switch'**
|
||
String get profileSwitchConfirm;
|
||
|
||
/// No description provided for @settingsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Settings'**
|
||
String get settingsTitle;
|
||
|
||
/// No description provided for @settingsAccount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Account'**
|
||
String get settingsAccount;
|
||
|
||
/// No description provided for @settingsSignOut.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sign out'**
|
||
String get settingsSignOut;
|
||
|
||
/// No description provided for @settingsSignOutTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sign out?'**
|
||
String get settingsSignOutTitle;
|
||
|
||
/// No description provided for @settingsSignOutAnonymousMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This account can\'t be signed into again, so signing out deletes it with its progress.'**
|
||
String get settingsSignOutAnonymousMessage;
|
||
|
||
/// No description provided for @settingsDeleteAccount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete account'**
|
||
String get settingsDeleteAccount;
|
||
|
||
/// No description provided for @settingsDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete your account?'**
|
||
String get settingsDeleteTitle;
|
||
|
||
/// No description provided for @settingsDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Everything you have, your studysets, cards and reviews, is deleted on the server and on all your devices. This can\'t be undone.'**
|
||
String get settingsDeleteMessage;
|
||
|
||
/// No description provided for @settingsAbout.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'About Halkyon Learn'**
|
||
String get settingsAbout;
|
||
|
||
/// No description provided for @tagsReadFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Couldn\'t read the tags.'**
|
||
String get tagsReadFailed;
|
||
|
||
/// No description provided for @tagPickerTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tags'**
|
||
String get tagPickerTitle;
|
||
|
||
/// No description provided for @tagPickerManage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manage tags'**
|
||
String get tagPickerManage;
|
||
|
||
/// No description provided for @tagPickerSearchLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search or create a tag'**
|
||
String get tagPickerSearchLabel;
|
||
|
||
/// No description provided for @tagPickerCreate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create \"{name}\"'**
|
||
String tagPickerCreate(String name);
|
||
|
||
/// No description provided for @tagSheetCreateTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create tag'**
|
||
String get tagSheetCreateTitle;
|
||
|
||
/// No description provided for @tagSheetEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit tag'**
|
||
String get tagSheetEditTitle;
|
||
|
||
/// No description provided for @tagSheetNameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name'**
|
||
String get tagSheetNameLabel;
|
||
|
||
/// No description provided for @tagSheetNameHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stored and displayed in lowercase.'**
|
||
String get tagSheetNameHelper;
|
||
|
||
/// No description provided for @tagSheetNameExists.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The tag \'{name}\' exists already.'**
|
||
String tagSheetNameExists(String name);
|
||
|
||
/// No description provided for @tagSheetNameMerges.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'There is a tag \'{name}\' already: saving merges this one into it.'**
|
||
String tagSheetNameMerges(String name);
|
||
|
||
/// No description provided for @tagSheetColor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Color'**
|
||
String get tagSheetColor;
|
||
|
||
/// No description provided for @tagSheetCreate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create'**
|
||
String get tagSheetCreate;
|
||
|
||
/// No description provided for @tagSheetSave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get tagSheetSave;
|
||
|
||
/// No description provided for @tagManageTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manage tags'**
|
||
String get tagManageTitle;
|
||
|
||
/// No description provided for @tagManageEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No tags yet. Add one below.'**
|
||
String get tagManageEmpty;
|
||
|
||
/// No description provided for @tagManageAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add tag'**
|
||
String get tagManageAdd;
|
||
|
||
/// A tag in the list of tags, with how many flashcards have it.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{name} ({count})'**
|
||
String tagManageRow(String name, int count);
|
||
|
||
/// No description provided for @tagManageEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit tag'**
|
||
String get tagManageEdit;
|
||
|
||
/// No description provided for @tagManageDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete tag'**
|
||
String get tagManageDelete;
|
||
|
||
/// No description provided for @tagDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete the tag \'{name}\'?'**
|
||
String tagDeleteTitle(String name);
|
||
|
||
/// No description provided for @tagDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =0{It isn\'t on any flashcards.} =1{It is removed from 1 flashcard, on all your devices.} other{It is removed from {count} flashcards, on all your devices.}}'**
|
||
String tagDeleteMessage(int count);
|
||
|
||
/// No description provided for @tagDeleteConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get tagDeleteConfirm;
|
||
|
||
/// No description provided for @tagDeleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deleted the tag \'{name}\''**
|
||
String tagDeleted(String name);
|
||
|
||
/// No description provided for @studySettingsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Session settings'**
|
||
String get studySettingsTitle;
|
||
|
||
/// No description provided for @studySettingsFilterByTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter by tags'**
|
||
String get studySettingsFilterByTags;
|
||
|
||
/// No description provided for @studySettingsFilterHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study only the flashcards with any of the tags chosen.'**
|
||
String get studySettingsFilterHint;
|
||
|
||
/// No description provided for @studySettingsNoTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No tags yet. Add tags to your flashcards to filter them here.'**
|
||
String get studySettingsNoTags;
|
||
|
||
/// No description provided for @studySettingsReset.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset'**
|
||
String get studySettingsReset;
|
||
|
||
/// No description provided for @studySettingsSave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get studySettingsSave;
|
||
|
||
/// No description provided for @cardTagsLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tags'**
|
||
String get cardTagsLabel;
|
||
|
||
/// No description provided for @cardTagsAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add tags'**
|
||
String get cardTagsAdd;
|
||
|
||
/// No description provided for @cardTagsEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit tags'**
|
||
String get cardTagsEdit;
|
||
|
||
/// No description provided for @cardFilterTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter'**
|
||
String get cardFilterTooltip;
|
||
|
||
/// No description provided for @cardFilterTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Filter'**
|
||
String get cardFilterTitle;
|
||
|
||
/// No description provided for @cardFilterTag.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tag'**
|
||
String get cardFilterTag;
|
||
|
||
/// No description provided for @cardFilterAllTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All tags'**
|
||
String get cardFilterAllTags;
|
||
|
||
/// No description provided for @cardFilterNoTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'None of these flashcards has a tag yet.'**
|
||
String get cardFilterNoTags;
|
||
|
||
/// No description provided for @cardFilterClear.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear all'**
|
||
String get cardFilterClear;
|
||
|
||
/// No description provided for @cardFilterApply.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Apply'**
|
||
String get cardFilterApply;
|
||
|
||
/// No description provided for @cardFilterNothing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No flashcards have this tag.'**
|
||
String get cardFilterNothing;
|
||
|
||
/// No description provided for @cardListMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More'**
|
||
String get cardListMore;
|
||
|
||
/// No description provided for @cardListManageTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Manage tags'**
|
||
String get cardListManageTags;
|
||
|
||
/// No description provided for @composerTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create flashcards'**
|
||
String get composerTitle;
|
||
|
||
/// No description provided for @composerTitleFor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create flashcards for \"{title}\"'**
|
||
String composerTitleFor(String title);
|
||
|
||
/// No description provided for @composerEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit flashcards'**
|
||
String get composerEditTitle;
|
||
|
||
/// No description provided for @composerEditTitleFor.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit flashcards in \"{title}\"'**
|
||
String composerEditTitleFor(String title);
|
||
|
||
/// No description provided for @composerSaving.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saving…'**
|
||
String get composerSaving;
|
||
|
||
/// No description provided for @composerSaveFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save failed — retry'**
|
||
String get composerSaveFailed;
|
||
|
||
/// No description provided for @composerAllSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All changes saved'**
|
||
String get composerAllSaved;
|
||
|
||
/// No description provided for @composerNewFlashcard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New flashcard'**
|
||
String get composerNewFlashcard;
|
||
|
||
/// No description provided for @composerCollapseStack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Collapse stack'**
|
||
String get composerCollapseStack;
|
||
|
||
/// No description provided for @composerExpandStack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Expand stack'**
|
||
String get composerExpandStack;
|
||
|
||
/// No description provided for @composerStatusSaving.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saving'**
|
||
String get composerStatusSaving;
|
||
|
||
/// No description provided for @composerStatusSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saved'**
|
||
String get composerStatusSaved;
|
||
|
||
/// No description provided for @composerStatusFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save failed'**
|
||
String get composerStatusFailed;
|
||
|
||
/// No description provided for @composerSaveFailedInline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save failed.'**
|
||
String get composerSaveFailedInline;
|
||
|
||
/// No description provided for @composerRetry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry'**
|
||
String get composerRetry;
|
||
|
||
/// No description provided for @composerEmptyPane.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a flashcard to get started.'**
|
||
String get composerEmptyPane;
|
||
|
||
/// No description provided for @composerKindFlashcard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flashcard'**
|
||
String get composerKindFlashcard;
|
||
|
||
/// No description provided for @composerKindVocabulary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Vocabulary'**
|
||
String get composerKindVocabulary;
|
||
|
||
/// No description provided for @composerKindMatching.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Matching'**
|
||
String get composerKindMatching;
|
||
|
||
/// No description provided for @composerKindMap.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Map'**
|
||
String get composerKindMap;
|
||
|
||
/// No description provided for @composerLabelFront.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Front'**
|
||
String get composerLabelFront;
|
||
|
||
/// No description provided for @composerLabelQuestion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Question'**
|
||
String get composerLabelQuestion;
|
||
|
||
/// No description provided for @composerLabelExpression.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Expression'**
|
||
String get composerLabelExpression;
|
||
|
||
/// No description provided for @composerLabelPrompt.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Prompt'**
|
||
String get composerLabelPrompt;
|
||
|
||
/// No description provided for @composerLabelBack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back'**
|
||
String get composerLabelBack;
|
||
|
||
/// No description provided for @composerLabelAnswers.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Answers'**
|
||
String get composerLabelAnswers;
|
||
|
||
/// No description provided for @composerLabelAnswer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Answer'**
|
||
String get composerLabelAnswer;
|
||
|
||
/// No description provided for @composerPlaceholderFront.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add question'**
|
||
String get composerPlaceholderFront;
|
||
|
||
/// No description provided for @composerPlaceholderExpression.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add expression'**
|
||
String get composerPlaceholderExpression;
|
||
|
||
/// No description provided for @composerPlaceholderPrompt.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add prompt'**
|
||
String get composerPlaceholderPrompt;
|
||
|
||
/// No description provided for @composerAddAnswer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add answer'**
|
||
String get composerAddAnswer;
|
||
|
||
/// No description provided for @composerCorrectAnswer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Correct answer'**
|
||
String get composerCorrectAnswer;
|
||
|
||
/// No description provided for @composerWrongAnswer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Wrong answer'**
|
||
String get composerWrongAnswer;
|
||
|
||
/// No description provided for @composerRemoveAnswer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove answer'**
|
||
String get composerRemoveAnswer;
|
||
|
||
/// No description provided for @composerPin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pin {field}: keep it for the next card'**
|
||
String composerPin(String field);
|
||
|
||
/// No description provided for @composerUnpin.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unpin {field}: clear it for the next card'**
|
||
String composerUnpin(String field);
|
||
|
||
/// No description provided for @composerTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tags'**
|
||
String get composerTags;
|
||
|
||
/// No description provided for @composerAddTags.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add tags'**
|
||
String get composerAddTags;
|
||
|
||
/// No description provided for @composerMoreActions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More actions'**
|
||
String get composerMoreActions;
|
||
|
||
/// No description provided for @composerDuplicate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Duplicate'**
|
||
String get composerDuplicate;
|
||
|
||
/// No description provided for @composerClearFields.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear fields'**
|
||
String get composerClearFields;
|
||
|
||
/// No description provided for @composerDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get composerDelete;
|
||
|
||
/// No description provided for @composerDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete this flashcard?'**
|
||
String get composerDeleteTitle;
|
||
|
||
/// No description provided for @composerDeleteDraftMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The draft will be removed from this session. It has not been saved.'**
|
||
String get composerDeleteDraftMessage;
|
||
|
||
/// No description provided for @composerDeleteSavedMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The flashcard will be removed from the studyset, on all your devices.'**
|
||
String get composerDeleteSavedMessage;
|
||
|
||
/// No description provided for @composerDiscardTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Discard unsaved flashcard?} other{Discard unsaved flashcards?}}'**
|
||
String composerDiscardTitle(int count);
|
||
|
||
/// No description provided for @composerDiscardMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 flashcard hasn\'t been saved yet. Leaving now will discard it.} other{{count} flashcards haven\'t been saved yet. Leaving now will discard them.}}'**
|
||
String composerDiscardMessage(int count);
|
||
|
||
/// No description provided for @composerDiscardConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discard'**
|
||
String get composerDiscardConfirm;
|
||
|
||
/// No description provided for @composerConflict.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This flashcard was changed differently on two devices. Choose the version to keep of each part below.'**
|
||
String get composerConflict;
|
||
|
||
/// No description provided for @composerKeepThis.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep this'**
|
||
String get composerKeepThis;
|
||
|
||
/// No description provided for @formatAlignLeft.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Align left'**
|
||
String get formatAlignLeft;
|
||
|
||
/// No description provided for @formatAlignCenter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Center'**
|
||
String get formatAlignCenter;
|
||
|
||
/// No description provided for @formatAlignRight.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Align right'**
|
||
String get formatAlignRight;
|
||
|
||
/// No description provided for @formatBold.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bold'**
|
||
String get formatBold;
|
||
|
||
/// No description provided for @formatItalic.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Italic'**
|
||
String get formatItalic;
|
||
|
||
/// No description provided for @formatUnderline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Underline'**
|
||
String get formatUnderline;
|
||
|
||
/// No description provided for @formatSuperscript.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Superscript'**
|
||
String get formatSuperscript;
|
||
|
||
/// No description provided for @formatSubscript.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Subscript'**
|
||
String get formatSubscript;
|
||
|
||
/// No description provided for @vocabularyReading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reading'**
|
||
String get vocabularyReading;
|
||
|
||
/// No description provided for @vocabularyReadingHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Kana reading'**
|
||
String get vocabularyReadingHint;
|
||
|
||
/// No description provided for @vocabularyMeanings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Meanings'**
|
||
String get vocabularyMeanings;
|
||
|
||
/// No description provided for @vocabularyPrimaryMeaningHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Primary meaning'**
|
||
String get vocabularyPrimaryMeaningHint;
|
||
|
||
/// No description provided for @vocabularyMeaningHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Meaning'**
|
||
String get vocabularyMeaningHint;
|
||
|
||
/// No description provided for @vocabularyAddMeaning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add meaning'**
|
||
String get vocabularyAddMeaning;
|
||
|
||
/// No description provided for @vocabularyRemoveMeaning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove meaning'**
|
||
String get vocabularyRemoveMeaning;
|
||
|
||
/// No description provided for @matchingCategories.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Categories'**
|
||
String get matchingCategories;
|
||
|
||
/// No description provided for @matchingCategoriesHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'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.'**
|
||
String get matchingCategoriesHint;
|
||
|
||
/// No description provided for @matchingCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Category {number}'**
|
||
String matchingCategory(int number);
|
||
|
||
/// No description provided for @matchingAddCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add category'**
|
||
String get matchingAddCategory;
|
||
|
||
/// No description provided for @matchingAddCategoryBlocked.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add an item first: a card can\'t have more categories than items'**
|
||
String get matchingAddCategoryBlocked;
|
||
|
||
/// No description provided for @matchingRemoveCategory.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove category'**
|
||
String get matchingRemoveCategory;
|
||
|
||
/// No description provided for @matchingMinCategories.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'At least two categories required'**
|
||
String get matchingMinCategories;
|
||
|
||
/// No description provided for @matchingItems.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Items'**
|
||
String get matchingItems;
|
||
|
||
/// No description provided for @matchingItemsHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The draggable items. Assign every item to its correct category: an unassigned item can never be placed right.'**
|
||
String get matchingItemsHint;
|
||
|
||
/// No description provided for @matchingItem.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Item {number}'**
|
||
String matchingItem(int number);
|
||
|
||
/// No description provided for @matchingAddItem.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add item'**
|
||
String get matchingAddItem;
|
||
|
||
/// No description provided for @matchingUnassigned.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unassigned'**
|
||
String get matchingUnassigned;
|
||
|
||
/// No description provided for @matchingRemoveItem.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove item'**
|
||
String get matchingRemoveItem;
|
||
|
||
/// No description provided for @matchingMinItems.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'At least two items required'**
|
||
String get matchingMinItems;
|
||
|
||
/// No description provided for @cardTileOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Options'**
|
||
String get cardTileOptions;
|
||
|
||
/// No description provided for @cardTileEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit'**
|
||
String get cardTileEdit;
|
||
|
||
/// No description provided for @cardTileDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get cardTileDelete;
|
||
|
||
/// No description provided for @cardTileUntitled.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Untitled'**
|
||
String get cardTileUntitled;
|
||
|
||
/// No description provided for @cardTileConflict.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Changed on two devices'**
|
||
String get cardTileConflict;
|
||
|
||
/// No description provided for @studyClose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close session'**
|
||
String get studyClose;
|
||
|
||
/// No description provided for @studyBackFirstOn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Showing the back of cards first: tap to revert'**
|
||
String get studyBackFirstOn;
|
||
|
||
/// No description provided for @studyBackFirstOff.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show the back of cards first'**
|
||
String get studyBackFirstOff;
|
||
|
||
/// No description provided for @studyShowAnswer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show answer'**
|
||
String get studyShowAnswer;
|
||
|
||
/// No description provided for @studyCheck.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Check'**
|
||
String get studyCheck;
|
||
|
||
/// No description provided for @studyRatingBad.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bad'**
|
||
String get studyRatingBad;
|
||
|
||
/// No description provided for @studyRatingOk.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'OK'**
|
||
String get studyRatingOk;
|
||
|
||
/// No description provided for @studyRatingGood.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Good'**
|
||
String get studyRatingGood;
|
||
|
||
/// No description provided for @studyRatingPerfect.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Perfect'**
|
||
String get studyRatingPerfect;
|
||
|
||
/// No description provided for @studyNothingTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Nothing to study right now'**
|
||
String get studyNothingTitle;
|
||
|
||
/// No description provided for @studyNothingBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Come back later when more cards are due.'**
|
||
String get studyNothingBody;
|
||
|
||
/// No description provided for @studyNextDue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The next card is due in {interval}.'**
|
||
String studyNextDue(String interval);
|
||
|
||
/// No description provided for @studyDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get studyDone;
|
||
|
||
/// No description provided for @studyRoundDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Round complete'**
|
||
String get studyRoundDone;
|
||
|
||
/// No description provided for @studyContinue.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Continue learning'**
|
||
String get studyContinue;
|
||
|
||
/// No description provided for @studyPrevious.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous card'**
|
||
String get studyPrevious;
|
||
|
||
/// No description provided for @studyNext.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next card'**
|
||
String get studyNext;
|
||
|
||
/// No description provided for @studyReading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reading'**
|
||
String get studyReading;
|
||
|
||
/// No description provided for @studyMeanings.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Meanings'**
|
||
String get studyMeanings;
|
||
|
||
/// No description provided for @studyPlaceItems.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drag each item onto its category, or tap an item and then a category.'**
|
||
String get studyPlaceItems;
|
||
|
||
/// No description provided for @studyMinutes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count} min'**
|
||
String studyMinutes(int count);
|
||
|
||
/// No description provided for @studyHours.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count} h'**
|
||
String studyHours(int count);
|
||
|
||
/// No description provided for @studyDays.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 day} other{{count} days}}'**
|
||
String studyDays(int count);
|
||
|
||
/// No description provided for @studyMonths.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 month} other{{count} months}}'**
|
||
String studyMonths(int count);
|
||
|
||
/// No description provided for @studyYears.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 year} other{{count} years}}'**
|
||
String studyYears(int count);
|
||
|
||
/// No description provided for @studyFilteredBy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Narrowed to 1 tag} other{Narrowed to {count} tags}}'**
|
||
String studyFilteredBy(int count);
|
||
|
||
/// No description provided for @studySettingsCardsPerRound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cards per round'**
|
||
String get studySettingsCardsPerRound;
|
||
|
||
/// No description provided for @studySettingsNewPerDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New cards per day'**
|
||
String get studySettingsNewPerDay;
|
||
|
||
/// No description provided for @studySettingsNewPerDayHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'How many never-studied cards each studyset starts a day. Due reviews are never limited.'**
|
||
String get studySettingsNewPerDayHint;
|
||
|
||
/// No description provided for @studySettingsUnlimited.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Unlimited'**
|
||
String get studySettingsUnlimited;
|
||
|
||
/// No description provided for @studySettingsSortBy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort by'**
|
||
String get studySettingsSortBy;
|
||
|
||
/// No description provided for @studySettingsLearnMode.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Learn mode'**
|
||
String get studySettingsLearnMode;
|
||
|
||
/// No description provided for @studyModeSpaced.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spaced repetition'**
|
||
String get studyModeSpaced;
|
||
|
||
/// No description provided for @studyModeSpacedHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Due cards on their schedules; ratings move them.'**
|
||
String get studyModeSpacedHint;
|
||
|
||
/// No description provided for @studyModeCram.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cram'**
|
||
String get studyModeCram;
|
||
|
||
/// No description provided for @studyModeCramHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Walk every card without touching the schedules.'**
|
||
String get studyModeCramHint;
|
||
|
||
/// No description provided for @studySortOldestFirst.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Oldest first'**
|
||
String get studySortOldestFirst;
|
||
|
||
/// No description provided for @studySortRandom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Random'**
|
||
String get studySortRandom;
|
||
|
||
/// No description provided for @studySortNewestFirst.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Newest first'**
|
||
String get studySortNewestFirst;
|
||
|
||
/// No description provided for @studyFewer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fewer'**
|
||
String get studyFewer;
|
||
|
||
/// No description provided for @studyMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More'**
|
||
String get studyMore;
|
||
|
||
/// No description provided for @studysetMenuReset.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset progress'**
|
||
String get studysetMenuReset;
|
||
|
||
/// No description provided for @studysetResetTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset progress?'**
|
||
String get studysetResetTitle;
|
||
|
||
/// No description provided for @studysetResetMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'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.'**
|
||
String get studysetResetMessage;
|
||
|
||
/// No description provided for @studysetResetConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset'**
|
||
String get studysetResetConfirm;
|
||
|
||
/// No description provided for @studysetResetDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Progress reset'**
|
||
String get studysetResetDone;
|
||
|
||
/// No description provided for @mapUnknown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This map needs a newer version of the app.'**
|
||
String get mapUnknown;
|
||
|
||
/// No description provided for @mapPickRegion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tap the region that answers the question; pinch or scroll to zoom.'**
|
||
String get mapPickRegion;
|
||
|
||
/// No description provided for @mapNonePicked.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No region picked yet'**
|
||
String get mapNonePicked;
|
||
|
||
/// No description provided for @composerPlaceholderQuestion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add question'**
|
||
String get composerPlaceholderQuestion;
|
||
|
||
/// No description provided for @composerLabelRegion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Answer'**
|
||
String get composerLabelRegion;
|
||
|
||
/// No description provided for @homeStreakTooltip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study streak'**
|
||
String get homeStreakTooltip;
|
||
|
||
/// No description provided for @homeArrange.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Arrange widgets'**
|
||
String get homeArrange;
|
||
|
||
/// No description provided for @homeDone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Done'**
|
||
String get homeDone;
|
||
|
||
/// No description provided for @homeDragToReorder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drag to reorder'**
|
||
String get homeDragToReorder;
|
||
|
||
/// No description provided for @homeShowWidget.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show {label}'**
|
||
String homeShowWidget(String label);
|
||
|
||
/// No description provided for @homeHideWidget.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hide {label}'**
|
||
String homeHideWidget(String label);
|
||
|
||
/// No description provided for @homeAllHidden.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All widgets are hidden'**
|
||
String get homeAllHidden;
|
||
|
||
/// No description provided for @homeAllHiddenHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Long-press here to bring some back.'**
|
||
String get homeAllHiddenHint;
|
||
|
||
/// No description provided for @homeWidgetGoal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study goal'**
|
||
String get homeWidgetGoal;
|
||
|
||
/// No description provided for @homeWidgetWeek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Week overview'**
|
||
String get homeWidgetWeek;
|
||
|
||
/// No description provided for @homeWidgetActivity.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Activity heatmap'**
|
||
String get homeWidgetActivity;
|
||
|
||
/// No description provided for @homeActivityTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your activity'**
|
||
String get homeActivityTitle;
|
||
|
||
/// No description provided for @streakDays.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 day streak} other{{count} day streak}}'**
|
||
String streakDays(num count);
|
||
|
||
/// No description provided for @streakStart.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study today to start your streak.'**
|
||
String get streakStart;
|
||
|
||
/// No description provided for @streakGrow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep it going: study at least once a day to grow your streak.'**
|
||
String get streakGrow;
|
||
|
||
/// No description provided for @streakFirstDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Review some cards today to light the first day.'**
|
||
String get streakFirstDay;
|
||
|
||
/// No description provided for @streakComeBack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Come back tomorrow to keep your streak.'**
|
||
String get streakComeBack;
|
||
|
||
/// No description provided for @streakKeepAlive.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study today to keep your streak alive.'**
|
||
String get streakKeepAlive;
|
||
|
||
/// No description provided for @goalEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit study goal'**
|
||
String get goalEditTitle;
|
||
|
||
/// No description provided for @goalSetTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set a study goal'**
|
||
String get goalSetTitle;
|
||
|
||
/// No description provided for @goalDescriptionDaily.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Review a number of flashcards each day. Every card you rate counts.'**
|
||
String get goalDescriptionDaily;
|
||
|
||
/// No description provided for @goalDescriptionWeekly.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Review a number of flashcards each week, from Monday. Every card you rate counts.'**
|
||
String get goalDescriptionWeekly;
|
||
|
||
/// No description provided for @goalPeriod.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Period'**
|
||
String get goalPeriod;
|
||
|
||
/// No description provided for @goalPerDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Per day'**
|
||
String get goalPerDay;
|
||
|
||
/// No description provided for @goalPerWeek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Per week'**
|
||
String get goalPerWeek;
|
||
|
||
/// No description provided for @goalCardsPerDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cards per day'**
|
||
String get goalCardsPerDay;
|
||
|
||
/// No description provided for @goalCardsPerWeek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cards per week'**
|
||
String get goalCardsPerWeek;
|
||
|
||
/// No description provided for @goalSave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save goal'**
|
||
String get goalSave;
|
||
|
||
/// No description provided for @goalRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove goal'**
|
||
String get goalRemove;
|
||
|
||
/// No description provided for @goalEmptySubtitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Review a set number of cards each day or week.'**
|
||
String get goalEmptySubtitle;
|
||
|
||
/// No description provided for @goalDailyHeadline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Daily goal'**
|
||
String get goalDailyHeadline;
|
||
|
||
/// No description provided for @goalWeeklyHeadline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Weekly goal'**
|
||
String get goalWeeklyHeadline;
|
||
|
||
/// No description provided for @goalProgressToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{reviewed} of {target} cards today'**
|
||
String goalProgressToday(int reviewed, int target);
|
||
|
||
/// No description provided for @goalProgressThisWeek.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{reviewed} of {target} cards this week'**
|
||
String goalProgressThisWeek(int reviewed, int target);
|
||
|
||
/// No description provided for @goalMet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Goal met: nice work!'**
|
||
String get goalMet;
|
||
|
||
/// No description provided for @goalRemaining.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count} to go'**
|
||
String goalRemaining(int count);
|
||
|
||
/// No description provided for @weekToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Today'**
|
||
String get weekToday;
|
||
|
||
/// No description provided for @weekPreviousDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous day'**
|
||
String get weekPreviousDay;
|
||
|
||
/// No description provided for @weekNextDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next day'**
|
||
String get weekNextDay;
|
||
|
||
/// No description provided for @weekRestDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rest day'**
|
||
String get weekRestDay;
|
||
|
||
/// No description provided for @weekDueCount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 card due} other{{count} cards due}}'**
|
||
String weekDueCount(int count);
|
||
|
||
/// No description provided for @heatmapLess.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Less'**
|
||
String get heatmapLess;
|
||
|
||
/// No description provided for @heatmapMore.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More'**
|
||
String get heatmapMore;
|
||
|
||
/// No description provided for @heatmapTotal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 activity in the last year} other{{count} activities in the last year}}'**
|
||
String heatmapTotal(int count);
|
||
|
||
/// No description provided for @heatmapDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =0{Nothing} =1{1 activity} other{{count} activities}} · {date}'**
|
||
String heatmapDay(int count, String date);
|
||
|
||
/// No description provided for @commonCancel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel'**
|
||
String get commonCancel;
|
||
|
||
/// No description provided for @commonSave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save'**
|
||
String get commonSave;
|
||
|
||
/// No description provided for @commonClose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close'**
|
||
String get commonClose;
|
||
|
||
/// No description provided for @commonUndo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Undo'**
|
||
String get commonUndo;
|
||
|
||
/// No description provided for @commonTryAgain.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Try again'**
|
||
String get commonTryAgain;
|
||
|
||
/// No description provided for @sessionUnreachable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Couldn\'t reach the server.'**
|
||
String get sessionUnreachable;
|
||
|
||
/// No description provided for @notFoundGone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This no longer exists. It may have been deleted on another device.'**
|
||
String get notFoundGone;
|
||
|
||
/// No description provided for @fileImage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Image'**
|
||
String get fileImage;
|
||
|
||
/// No description provided for @fileSound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sound'**
|
||
String get fileSound;
|
||
|
||
/// No description provided for @fileImageUnavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This image isn\'t on this device yet. It shows once it\'s uploaded and you\'re online.'**
|
||
String get fileImageUnavailable;
|
||
|
||
/// No description provided for @fileImageUnreadable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This image can\'t be shown. Its file may be damaged, or in a format this device can\'t read.'**
|
||
String get fileImageUnreadable;
|
||
|
||
/// No description provided for @fileFromElsewhere.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Files from the web aren\'t shown.'**
|
||
String get fileFromElsewhere;
|
||
|
||
/// No description provided for @filePlaySound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Play sound'**
|
||
String get filePlaySound;
|
||
|
||
/// No description provided for @fileStopSound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Stop sound'**
|
||
String get fileStopSound;
|
||
|
||
/// No description provided for @fileSoundUnavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This sound isn\'t on this device yet. It plays once it\'s uploaded and you\'re online.'**
|
||
String get fileSoundUnavailable;
|
||
|
||
/// No description provided for @fileSoundUnplayable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This sound can\'t be played. Its file may be damaged, or in a format this device can\'t play.'**
|
||
String get fileSoundUnplayable;
|
||
|
||
/// No description provided for @fileImages.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Images'**
|
||
String get fileImages;
|
||
|
||
/// No description provided for @fileSounds.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sounds'**
|
||
String get fileSounds;
|
||
|
||
/// No description provided for @fileNotAnImage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This file isn\'t an image the app can show.'**
|
||
String get fileNotAnImage;
|
||
|
||
/// No description provided for @fileNotASound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This file isn\'t a sound the app can play.'**
|
||
String get fileNotASound;
|
||
|
||
/// No description provided for @fileTooLarge.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This file is larger than {megabytes} MB.'**
|
||
String fileTooLarge(int megabytes);
|
||
|
||
/// No description provided for @fileNotKept.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The file couldn\'t be kept on this device.'**
|
||
String get fileNotKept;
|
||
|
||
/// No description provided for @fileRemoveImage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove image'**
|
||
String get fileRemoveImage;
|
||
|
||
/// No description provided for @fileRemoveSound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove sound'**
|
||
String get fileRemoveSound;
|
||
|
||
/// No description provided for @editorInsert.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Insert'**
|
||
String get editorInsert;
|
||
|
||
/// No description provided for @blockGroupText.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Text'**
|
||
String get blockGroupText;
|
||
|
||
/// No description provided for @blockGroupBlocks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Blocks'**
|
||
String get blockGroupBlocks;
|
||
|
||
/// No description provided for @blockGroupMedia.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Media'**
|
||
String get blockGroupMedia;
|
||
|
||
/// No description provided for @blockHeading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Heading {level}'**
|
||
String blockHeading(int level);
|
||
|
||
/// No description provided for @blockBulletedList.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bulleted list'**
|
||
String get blockBulletedList;
|
||
|
||
/// No description provided for @blockNumberedList.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Numbered list'**
|
||
String get blockNumberedList;
|
||
|
||
/// No description provided for @blockChecklist.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Checklist'**
|
||
String get blockChecklist;
|
||
|
||
/// No description provided for @blockQuote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Quote'**
|
||
String get blockQuote;
|
||
|
||
/// No description provided for @blockDivider.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Divider'**
|
||
String get blockDivider;
|
||
|
||
/// No description provided for @blockTable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Table'**
|
||
String get blockTable;
|
||
|
||
/// No description provided for @blockRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove'**
|
||
String get blockRemove;
|
||
|
||
/// No description provided for @blockUnknown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This part needs a newer version of the app.'**
|
||
String get blockUnknown;
|
||
|
||
/// No description provided for @blockCallout.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Callout'**
|
||
String get blockCallout;
|
||
|
||
/// No description provided for @blockSpoiler.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Spoiler'**
|
||
String get blockSpoiler;
|
||
|
||
/// No description provided for @calloutNote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Note'**
|
||
String get calloutNote;
|
||
|
||
/// No description provided for @calloutInfo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Info'**
|
||
String get calloutInfo;
|
||
|
||
/// No description provided for @calloutTip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tip'**
|
||
String get calloutTip;
|
||
|
||
/// No description provided for @calloutSuccess.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Success'**
|
||
String get calloutSuccess;
|
||
|
||
/// No description provided for @calloutQuestion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Question'**
|
||
String get calloutQuestion;
|
||
|
||
/// No description provided for @calloutWarning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Warning'**
|
||
String get calloutWarning;
|
||
|
||
/// No description provided for @calloutDanger.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Danger'**
|
||
String get calloutDanger;
|
||
|
||
/// No description provided for @calloutQuote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Quote'**
|
||
String get calloutQuote;
|
||
|
||
/// No description provided for @calloutOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Callout options'**
|
||
String get calloutOptions;
|
||
|
||
/// No description provided for @calloutEditTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit title…'**
|
||
String get calloutEditTitle;
|
||
|
||
/// No description provided for @calloutFoldedAtFirst.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Folded at first'**
|
||
String get calloutFoldedAtFirst;
|
||
|
||
/// No description provided for @calloutRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove callout'**
|
||
String get calloutRemove;
|
||
|
||
/// No description provided for @calloutShow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show'**
|
||
String get calloutShow;
|
||
|
||
/// No description provided for @calloutHide.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hide'**
|
||
String get calloutHide;
|
||
|
||
/// No description provided for @calloutWriteInside.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Write inside'**
|
||
String get calloutWriteInside;
|
||
|
||
/// No description provided for @calloutTitleDialog.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Callout title'**
|
||
String get calloutTitleDialog;
|
||
|
||
/// No description provided for @calloutTitleLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get calloutTitleLabel;
|
||
|
||
/// No description provided for @calloutTitleHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Leave it empty to show the kind\'s name.'**
|
||
String get calloutTitleHelper;
|
||
|
||
/// No description provided for @spoilerReveal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reveal'**
|
||
String get spoilerReveal;
|
||
|
||
/// No description provided for @spoilerPlaceholder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hidden text, revealed on a tap'**
|
||
String get spoilerPlaceholder;
|
||
|
||
/// No description provided for @blockFormula.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Formula'**
|
||
String get blockFormula;
|
||
|
||
/// No description provided for @formatInlineMath.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Formula in the line'**
|
||
String get formatInlineMath;
|
||
|
||
/// No description provided for @formulaTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Formula'**
|
||
String get formulaTitle;
|
||
|
||
/// No description provided for @formulaInLineTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Formula in the line'**
|
||
String get formulaInLineTitle;
|
||
|
||
/// No description provided for @formulaPreview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Preview'**
|
||
String get formulaPreview;
|
||
|
||
/// No description provided for @formulaPreviewEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The formula shows here'**
|
||
String get formulaPreviewEmpty;
|
||
|
||
/// No description provided for @formulaLatex.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'LaTeX'**
|
||
String get formulaLatex;
|
||
|
||
/// No description provided for @formulaLatexHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'\\\\ starts a new line in aligned, cases or a matrix.'**
|
||
String get formulaLatexHelper;
|
||
|
||
/// No description provided for @formulaEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'An empty formula. Tap to write it.'**
|
||
String get formulaEmpty;
|
||
|
||
/// No description provided for @formulaEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit formula'**
|
||
String get formulaEdit;
|
||
|
||
/// No description provided for @formulaRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove formula'**
|
||
String get formulaRemove;
|
||
|
||
/// No description provided for @blockYoutube.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YouTube video'**
|
||
String get blockYoutube;
|
||
|
||
/// No description provided for @youtubeLink.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YouTube link'**
|
||
String get youtubeLink;
|
||
|
||
/// No description provided for @youtubeLinkHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Paste a link from YouTube.'**
|
||
String get youtubeLinkHelper;
|
||
|
||
/// No description provided for @youtubeNotFound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No YouTube video in this link.'**
|
||
String get youtubeNotFound;
|
||
|
||
/// No description provided for @youtubeFound.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Found the video.'**
|
||
String get youtubeFound;
|
||
|
||
/// No description provided for @youtubeFoundFrom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Found the video, starting at {time}.'**
|
||
String youtubeFoundFrom(String time);
|
||
|
||
/// No description provided for @youtubeCaption.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Caption'**
|
||
String get youtubeCaption;
|
||
|
||
/// No description provided for @youtubeCaptionHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Shown in place of the video until it plays.'**
|
||
String get youtubeCaptionHelper;
|
||
|
||
/// No description provided for @youtubeVideo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YouTube video'**
|
||
String get youtubeVideo;
|
||
|
||
/// No description provided for @youtubeSource.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YouTube'**
|
||
String get youtubeSource;
|
||
|
||
/// No description provided for @youtubeFrom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YouTube · from {time}'**
|
||
String youtubeFrom(String time);
|
||
|
||
/// No description provided for @youtubeEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit video'**
|
||
String get youtubeEdit;
|
||
|
||
/// No description provided for @youtubePlay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Play video'**
|
||
String get youtubePlay;
|
||
|
||
/// No description provided for @youtubeOpen.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open on YouTube'**
|
||
String get youtubeOpen;
|
||
|
||
/// No description provided for @youtubeRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove video'**
|
||
String get youtubeRemove;
|
||
|
||
/// No description provided for @youtubeBroken.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This video\'s link can\'t be read.'**
|
||
String get youtubeBroken;
|
||
|
||
/// No description provided for @youtubeNotOpened.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Couldn\'t open YouTube.'**
|
||
String get youtubeNotOpened;
|
||
|
||
/// No description provided for @blockStudyButton.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study button'**
|
||
String get blockStudyButton;
|
||
|
||
/// No description provided for @studyButtonDefaultLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study'**
|
||
String get studyButtonDefaultLabel;
|
||
|
||
/// No description provided for @studyButtonStudyset.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Studyset to study'**
|
||
String get studyButtonStudyset;
|
||
|
||
/// No description provided for @studyButtonTag.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cards'**
|
||
String get studyButtonTag;
|
||
|
||
/// No description provided for @studyButtonAllCards.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'All cards'**
|
||
String get studyButtonAllCards;
|
||
|
||
/// No description provided for @studyButtonLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Label'**
|
||
String get studyButtonLabel;
|
||
|
||
/// No description provided for @studyButtonTopics.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'With its topics'**
|
||
String get studyButtonTopics;
|
||
|
||
/// No description provided for @studyButtonBackFirst.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back first'**
|
||
String get studyButtonBackFirst;
|
||
|
||
/// No description provided for @studyButtonBackFirstHelper.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Front/back and vocabulary cards ask their back.'**
|
||
String get studyButtonBackFirstHelper;
|
||
|
||
/// No description provided for @studyButtonWithTag.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tagged {tag}'**
|
||
String studyButtonWithTag(String tag);
|
||
|
||
/// No description provided for @studyButtonAlone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Without its topics'**
|
||
String get studyButtonAlone;
|
||
|
||
/// No description provided for @studyButtonEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit study button'**
|
||
String get studyButtonEdit;
|
||
|
||
/// No description provided for @studyButtonRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove study button'**
|
||
String get studyButtonRemove;
|
||
|
||
/// No description provided for @studyButtonBroken.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This study button doesn\'t say what to study.'**
|
||
String get studyButtonBroken;
|
||
|
||
/// No description provided for @studyButtonGone.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'That studyset no longer exists.'**
|
||
String get studyButtonGone;
|
||
|
||
/// No description provided for @pdfPageField.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'PDF page'**
|
||
String get pdfPageField;
|
||
|
||
/// No description provided for @studysetTabFiles.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Files'**
|
||
String get studysetTabFiles;
|
||
|
||
/// No description provided for @pdfUploadMenu.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Upload a PDF'**
|
||
String get pdfUploadMenu;
|
||
|
||
/// No description provided for @pdfFileType.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'PDFs'**
|
||
String get pdfFileType;
|
||
|
||
/// No description provided for @pdfAdded.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Added \"{title}\".'**
|
||
String pdfAdded(String title);
|
||
|
||
/// No description provided for @pdfNotPdf.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This file isn\'t a PDF.'**
|
||
String get pdfNotPdf;
|
||
|
||
/// No description provided for @pdfTooLarge.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This PDF is larger than {megabytes} MB.'**
|
||
String pdfTooLarge(int megabytes);
|
||
|
||
/// No description provided for @pdfDuplicateTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'PDF already here'**
|
||
String get pdfDuplicateTitle;
|
||
|
||
/// No description provided for @pdfDuplicateMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This file is \"{title}\", which this studyset holds already. Add it as a copy, or keep the one there?'**
|
||
String pdfDuplicateMessage(String title);
|
||
|
||
/// No description provided for @pdfDuplicateKeep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep the one there'**
|
||
String get pdfDuplicateKeep;
|
||
|
||
/// No description provided for @pdfDuplicateAdd.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Add a copy'**
|
||
String get pdfDuplicateAdd;
|
||
|
||
/// No description provided for @filesEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No files yet'**
|
||
String get filesEmpty;
|
||
|
||
/// No description provided for @filesEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use \"Add material → Upload a PDF\" to add one.'**
|
||
String get filesEmptyHint;
|
||
|
||
/// No description provided for @filesSort.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sort'**
|
||
String get filesSort;
|
||
|
||
/// No description provided for @filesSortName.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Name (A–Z)'**
|
||
String get filesSortName;
|
||
|
||
/// No description provided for @filesSortNewest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Newest first'**
|
||
String get filesSortNewest;
|
||
|
||
/// No description provided for @filesSortOldest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Oldest first'**
|
||
String get filesSortOldest;
|
||
|
||
/// No description provided for @filesSortLargest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Largest first'**
|
||
String get filesSortLargest;
|
||
|
||
/// No description provided for @pdfPages.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 page} other{{count} pages}}'**
|
||
String pdfPages(int count);
|
||
|
||
/// No description provided for @pdfPercentRead.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{percent}% read'**
|
||
String pdfPercentRead(int percent);
|
||
|
||
/// No description provided for @pdfDeadlineMet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reading deadline met'**
|
||
String get pdfDeadlineMet;
|
||
|
||
/// No description provided for @pdfDeadlineUpcoming.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Starts in {days, plural, =1{1 day} other{{days} days}} — {pages}/day planned'**
|
||
String pdfDeadlineUpcoming(int days, int pages);
|
||
|
||
/// No description provided for @pdfDeadlinePassed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Deadline passed — {pages, plural, =1{1 page} other{{pages} pages}} left'**
|
||
String pdfDeadlinePassed(int pages);
|
||
|
||
/// No description provided for @pdfDeadlineToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Due today — {pages, plural, =1{1 page} other{{pages} pages}} left'**
|
||
String pdfDeadlineToday(int pages);
|
||
|
||
/// No description provided for @pdfDeadlinePace.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{pages}/day to reach page {target} in {days, plural, =1{1 day} other{{days} days}}'**
|
||
String pdfDeadlinePace(int pages, int target, int days);
|
||
|
||
/// No description provided for @pdfOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Actions'**
|
||
String get pdfOptions;
|
||
|
||
/// No description provided for @pdfRename.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rename'**
|
||
String get pdfRename;
|
||
|
||
/// No description provided for @pdfRenameTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Rename PDF'**
|
||
String get pdfRenameTitle;
|
||
|
||
/// No description provided for @pdfRenameLabel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Title'**
|
||
String get pdfRenameLabel;
|
||
|
||
/// No description provided for @pdfSetDeadline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set reading deadline'**
|
||
String get pdfSetDeadline;
|
||
|
||
/// No description provided for @pdfEditDeadline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit reading deadline'**
|
||
String get pdfEditDeadline;
|
||
|
||
/// No description provided for @pdfMarkFinished.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mark as finished'**
|
||
String get pdfMarkFinished;
|
||
|
||
/// No description provided for @pdfResetReading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset reading progress'**
|
||
String get pdfResetReading;
|
||
|
||
/// No description provided for @pdfResetTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset reading progress?'**
|
||
String get pdfResetTitle;
|
||
|
||
/// No description provided for @pdfResetMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'How far you\'ve read \"{title}\" is forgotten. The PDF, its flashcards and notes stay.'**
|
||
String pdfResetMessage(String title);
|
||
|
||
/// No description provided for @pdfResetConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reset'**
|
||
String get pdfResetConfirm;
|
||
|
||
/// No description provided for @pdfMoreInfo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'More info'**
|
||
String get pdfMoreInfo;
|
||
|
||
/// No description provided for @pdfInfoFileName.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'File name'**
|
||
String get pdfInfoFileName;
|
||
|
||
/// No description provided for @pdfInfoSize.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Size'**
|
||
String get pdfInfoSize;
|
||
|
||
/// No description provided for @pdfInfoPages.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Pages'**
|
||
String get pdfInfoPages;
|
||
|
||
/// No description provided for @pdfInfoUnknown.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Known once it is opened'**
|
||
String get pdfInfoUnknown;
|
||
|
||
/// No description provided for @pdfDelete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get pdfDelete;
|
||
|
||
/// No description provided for @pdfDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete PDF?'**
|
||
String get pdfDeleteTitle;
|
||
|
||
/// No description provided for @pdfDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'\"{title}\" is removed from this studyset, with how far it was read. Flashcards and notes made from it stay.'**
|
||
String pdfDeleteMessage(String title);
|
||
|
||
/// No description provided for @pdfDeleteConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get pdfDeleteConfirm;
|
||
|
||
/// No description provided for @pdfDeleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'PDF deleted'**
|
||
String get pdfDeleted;
|
||
|
||
/// No description provided for @deadlineSheetSet.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set a reading deadline'**
|
||
String get deadlineSheetSet;
|
||
|
||
/// No description provided for @deadlineSheetEdit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit reading deadline'**
|
||
String get deadlineSheetEdit;
|
||
|
||
/// No description provided for @deadlineSheetHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reach a page by a day. Progress follows the furthest page you reach as you read.'**
|
||
String get deadlineSheetHelp;
|
||
|
||
/// No description provided for @deadlineReachPageOf.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reach page (of {count})'**
|
||
String deadlineReachPageOf(int count);
|
||
|
||
/// No description provided for @deadlineReachPage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reach page'**
|
||
String get deadlineReachPage;
|
||
|
||
/// No description provided for @deadlineDecrease.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Decrease'**
|
||
String get deadlineDecrease;
|
||
|
||
/// No description provided for @deadlineIncrease.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Increase'**
|
||
String get deadlineIncrease;
|
||
|
||
/// No description provided for @deadlineChapter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Or finish a chapter'**
|
||
String get deadlineChapter;
|
||
|
||
/// No description provided for @deadlineChapterEntry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{title} · to p.{page}'**
|
||
String deadlineChapterEntry(String title, int page);
|
||
|
||
/// No description provided for @deadlineBy.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'By'**
|
||
String get deadlineBy;
|
||
|
||
/// No description provided for @deadlineStart.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start on'**
|
||
String get deadlineStart;
|
||
|
||
/// No description provided for @deadlineStartToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Today'**
|
||
String get deadlineStartToday;
|
||
|
||
/// No description provided for @deadlineStartReset.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Start today'**
|
||
String get deadlineStartReset;
|
||
|
||
/// No description provided for @deadlineStartHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The daily pace counts from this day on. Until then the PDF waits under \"Upcoming\".'**
|
||
String get deadlineStartHelp;
|
||
|
||
/// No description provided for @deadlineSave.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save deadline'**
|
||
String get deadlineSave;
|
||
|
||
/// No description provided for @deadlineRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove deadline'**
|
||
String get deadlineRemove;
|
||
|
||
/// No description provided for @readerMissing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This PDF isn\'t on this device yet. It opens once the device that added it has uploaded it and you\'re online.'**
|
||
String get readerMissing;
|
||
|
||
/// No description provided for @readerUnreadable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This file can\'t be read as a PDF.'**
|
||
String get readerUnreadable;
|
||
|
||
/// No description provided for @readerBack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back to studyset'**
|
||
String get readerBack;
|
||
|
||
/// No description provided for @readerSearch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Search PDF'**
|
||
String get readerSearch;
|
||
|
||
/// No description provided for @readerFitWidth.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fit width'**
|
||
String get readerFitWidth;
|
||
|
||
/// No description provided for @readerFitHeight.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fit height'**
|
||
String get readerFitHeight;
|
||
|
||
/// No description provided for @readerZoomIn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Zoom in'**
|
||
String get readerZoomIn;
|
||
|
||
/// No description provided for @readerZoomOut.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Zoom out'**
|
||
String get readerZoomOut;
|
||
|
||
/// No description provided for @readerSetZoom.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set zoom'**
|
||
String get readerSetZoom;
|
||
|
||
/// No description provided for @readerZoomTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Zoom'**
|
||
String get readerZoomTitle;
|
||
|
||
/// No description provided for @readerZoomApply.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Apply'**
|
||
String get readerZoomApply;
|
||
|
||
/// No description provided for @readerFullscreen.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Fullscreen'**
|
||
String get readerFullscreen;
|
||
|
||
/// No description provided for @readerExitFullscreen.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Exit fullscreen'**
|
||
String get readerExitFullscreen;
|
||
|
||
/// No description provided for @readerPreviousPage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous page'**
|
||
String get readerPreviousPage;
|
||
|
||
/// No description provided for @readerNextPage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next page'**
|
||
String get readerNextPage;
|
||
|
||
/// No description provided for @readerPageOf.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'/ {count}'**
|
||
String readerPageOf(int count);
|
||
|
||
/// No description provided for @readerFindHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Find in PDF'**
|
||
String get readerFindHint;
|
||
|
||
/// No description provided for @readerMatchOf.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{current} of {total}'**
|
||
String readerMatchOf(int current, int total);
|
||
|
||
/// No description provided for @readerPreviousMatch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Previous match'**
|
||
String get readerPreviousMatch;
|
||
|
||
/// No description provided for @readerNextMatch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Next match'**
|
||
String get readerNextMatch;
|
||
|
||
/// No description provided for @readerCloseSearch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Close search'**
|
||
String get readerCloseSearch;
|
||
|
||
/// No description provided for @readerExpand.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Expand'**
|
||
String get readerExpand;
|
||
|
||
/// No description provided for @readerCollapse.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Collapse'**
|
||
String get readerCollapse;
|
||
|
||
/// No description provided for @readerTabFlashcards.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flashcards'**
|
||
String get readerTabFlashcards;
|
||
|
||
/// No description provided for @readerTabNotes.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notes'**
|
||
String get readerTabNotes;
|
||
|
||
/// No description provided for @readerCardCreated.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flashcard created'**
|
||
String get readerCardCreated;
|
||
|
||
/// No description provided for @readerCardDeleteTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete flashcard?'**
|
||
String get readerCardDeleteTitle;
|
||
|
||
/// No description provided for @readerCardDeleteMessage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The flashcard is deleted, with how it was studied.'**
|
||
String get readerCardDeleteMessage;
|
||
|
||
/// No description provided for @readerCardDeleteConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Delete'**
|
||
String get readerCardDeleteConfirm;
|
||
|
||
/// No description provided for @readerFrontMatter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Front matter'**
|
||
String get readerFrontMatter;
|
||
|
||
/// No description provided for @readerPage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Page {page}'**
|
||
String readerPage(int page);
|
||
|
||
/// No description provided for @readerByPage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Page'**
|
||
String get readerByPage;
|
||
|
||
/// No description provided for @readerByChapter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Chapter'**
|
||
String get readerByChapter;
|
||
|
||
/// No description provided for @readerCardsEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select text to make flashcards in no time'**
|
||
String get readerCardsEmpty;
|
||
|
||
/// No description provided for @readerCardsEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Select the lines that matter and send them to a question or an answer, or press \"Create flashcard\".'**
|
||
String get readerCardsEmptyHint;
|
||
|
||
/// No description provided for @readerCreateCard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create flashcard'**
|
||
String get readerCreateCard;
|
||
|
||
/// No description provided for @readerEditCard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Edit flashcard'**
|
||
String get readerEditCard;
|
||
|
||
/// No description provided for @readerBackToCards.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back to flashcards'**
|
||
String get readerBackToCards;
|
||
|
||
/// No description provided for @readerReferencedPage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Referenced page: {page}'**
|
||
String readerReferencedPage(int page);
|
||
|
||
/// No description provided for @readerUseCurrentPage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use current ({page})'**
|
||
String readerUseCurrentPage(int page);
|
||
|
||
/// No description provided for @readerQuestion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Question'**
|
||
String get readerQuestion;
|
||
|
||
/// No description provided for @readerAnswer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Answer'**
|
||
String get readerAnswer;
|
||
|
||
/// No description provided for @readerKeepOpen.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep creation mode open'**
|
||
String get readerKeepOpen;
|
||
|
||
/// No description provided for @readerClear.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Clear'**
|
||
String get readerClear;
|
||
|
||
/// No description provided for @readerCreate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create'**
|
||
String get readerCreate;
|
||
|
||
/// No description provided for @readerUntitledCard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Untitled flashcard'**
|
||
String get readerUntitledCard;
|
||
|
||
/// No description provided for @readerCardOptions.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Card options'**
|
||
String get readerCardOptions;
|
||
|
||
/// No description provided for @readerNoteSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saved'**
|
||
String get readerNoteSaved;
|
||
|
||
/// No description provided for @readerNoteEditing.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Editing…'**
|
||
String get readerNoteEditing;
|
||
|
||
/// No description provided for @readerNoteSaving.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Saving…'**
|
||
String get readerNoteSaving;
|
||
|
||
/// No description provided for @readerNoteFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Save failed'**
|
||
String get readerNoteFailed;
|
||
|
||
/// No description provided for @readerToQuestion.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Question'**
|
||
String get readerToQuestion;
|
||
|
||
/// No description provided for @readerToAnswer.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Answer'**
|
||
String get readerToAnswer;
|
||
|
||
/// No description provided for @readerToNote.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Notes'**
|
||
String get readerToNote;
|
||
|
||
/// No description provided for @readerLineBreaksJoined.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Line breaks joined (tap to keep)'**
|
||
String get readerLineBreaksJoined;
|
||
|
||
/// No description provided for @readerLineBreaksKept.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Line breaks kept (tap to join)'**
|
||
String get readerLineBreaksKept;
|
||
|
||
/// No description provided for @blockScreenshot.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Screenshot of the page'**
|
||
String get blockScreenshot;
|
||
|
||
/// No description provided for @readerCaptureCancel.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Cancel screenshot'**
|
||
String get readerCaptureCancel;
|
||
|
||
/// No description provided for @readerCaptureHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Drag over the part of the page to keep'**
|
||
String get readerCaptureHint;
|
||
|
||
/// No description provided for @readerCaptureFailed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The page couldn\'t be drawn. Try again once it has loaded.'**
|
||
String get readerCaptureFailed;
|
||
|
||
/// No description provided for @readerScreenshotSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Screenshot saved'**
|
||
String get readerScreenshotSaved;
|
||
|
||
/// No description provided for @imageOpenPdfPage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open the PDF at this page'**
|
||
String get imageOpenPdfPage;
|
||
|
||
/// No description provided for @homeWidgetDeadlines.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reading deadlines'**
|
||
String get homeWidgetDeadlines;
|
||
|
||
/// No description provided for @deadlinesTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reading deadlines'**
|
||
String get deadlinesTitle;
|
||
|
||
/// No description provided for @deadlinesCurrent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Current'**
|
||
String get deadlinesCurrent;
|
||
|
||
/// No description provided for @deadlinesUpcoming.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Upcoming'**
|
||
String get deadlinesUpcoming;
|
||
|
||
/// No description provided for @deadlinesProgress.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'p.{furthest}/{target} · {when}'**
|
||
String deadlinesProgress(int furthest, int target, String when);
|
||
|
||
/// No description provided for @deadlinePassedShort.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'deadline passed'**
|
||
String get deadlinePassedShort;
|
||
|
||
/// No description provided for @deadlineDueTodayShort.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'due today'**
|
||
String get deadlineDueTodayShort;
|
||
|
||
/// No description provided for @deadlineDaysLeft.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{days, plural, =1{1 day left} other{{days} days left}}'**
|
||
String deadlineDaysLeft(int days);
|
||
|
||
/// No description provided for @deadlineToPageToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'to p.{page} today'**
|
||
String deadlineToPageToday(int page);
|
||
|
||
/// No description provided for @deadlineStartsIn.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Starts in {days, plural, =1{1 day} other{{days} days}}'**
|
||
String deadlineStartsIn(int days);
|
||
|
||
/// No description provided for @deadlinesPlaceholder.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Appears when you have reading deadlines'**
|
||
String get deadlinesPlaceholder;
|
||
|
||
/// No description provided for @deadlinesOpenTimeline.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open the timeline'**
|
||
String get deadlinesOpenTimeline;
|
||
|
||
/// No description provided for @timelineTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reading timeline'**
|
||
String get timelineTitle;
|
||
|
||
/// No description provided for @timelineEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No reading deadlines yet'**
|
||
String get timelineEmpty;
|
||
|
||
/// No description provided for @timelineEmptyHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Set a reading deadline on a PDF to see it here.'**
|
||
String get timelineEmptyHint;
|
||
|
||
/// No description provided for @timelineToday.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Today'**
|
||
String get timelineToday;
|
||
|
||
/// No description provided for @timelinePages.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'p.{furthest}/{target}'**
|
||
String timelinePages(int furthest, int target);
|
||
|
||
/// No description provided for @chapterFinished.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Finished “{chapter}” — study the {count, plural, =1{card} other{{count} cards}} you made?'**
|
||
String chapterFinished(String chapter, int count);
|
||
|
||
/// No description provided for @chapterStudyNow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Study now'**
|
||
String get chapterStudyNow;
|
||
|
||
/// No description provided for @chapterDismiss.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Dismiss'**
|
||
String get chapterDismiss;
|
||
|
||
/// No description provided for @deadlineChapterLoading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading chapters…'**
|
||
String get deadlineChapterLoading;
|
||
|
||
/// No description provided for @fileSizeKb.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{size} KB'**
|
||
String fileSizeKb(int size);
|
||
|
||
/// No description provided for @fileSizeMb.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{size} MB'**
|
||
String fileSizeMb(String size);
|
||
|
||
/// No description provided for @pdfPageShort.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'p. {page}'**
|
||
String pdfPageShort(int page);
|
||
|
||
/// No description provided for @ankiImportMenu.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import from Anki'**
|
||
String get ankiImportMenu;
|
||
|
||
/// No description provided for @ankiImportFileType.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Anki decks'**
|
||
String get ankiImportFileType;
|
||
|
||
/// No description provided for @ankiImportTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import Anki deck'**
|
||
String get ankiImportTitle;
|
||
|
||
/// No description provided for @ankiImportOptionsTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'How should subdecks be imported?'**
|
||
String get ankiImportOptionsTitle;
|
||
|
||
/// No description provided for @ankiImportReading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reading the deck…'**
|
||
String get ankiImportReading;
|
||
|
||
/// No description provided for @ankiImportSummary.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{cards, plural, =1{1 card.} other{{cards} cards.}}'**
|
||
String ankiImportSummary(int cards);
|
||
|
||
/// No description provided for @ankiImportSummaryDecks.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{cards, plural, =1{1 card} other{{cards} cards}} across {decks} subdecks.'**
|
||
String ankiImportSummaryDecks(int cards, int decks);
|
||
|
||
/// No description provided for @ankiImportModeFlatten.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Flatten into this studyset'**
|
||
String get ankiImportModeFlatten;
|
||
|
||
/// No description provided for @ankiImportModeFlattenSubtitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import every card here and ignore the subdecks.'**
|
||
String get ankiImportModeFlattenSubtitle;
|
||
|
||
/// No description provided for @ankiImportModeSubStudysets.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recreate as sub-studysets'**
|
||
String get ankiImportModeSubStudysets;
|
||
|
||
/// No description provided for @ankiImportModeSubStudysetsSubtitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Mirror the subdeck tree: each subdeck becomes a nested studyset.'**
|
||
String get ankiImportModeSubStudysetsSubtitle;
|
||
|
||
/// No description provided for @ankiImportModeTag.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Tag cards by subdeck'**
|
||
String get ankiImportModeTag;
|
||
|
||
/// No description provided for @ankiImportModeTagSubtitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep every card here, tagged with each subdeck it came from.'**
|
||
String get ankiImportModeTagSubtitle;
|
||
|
||
/// No description provided for @ankiImportProgress.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import study progress'**
|
||
String get ankiImportProgress;
|
||
|
||
/// No description provided for @ankiImportProgressSubtitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Bring Anki\'s review history over: cards continue where they left off. New cards stay new.'**
|
||
String get ankiImportProgressSubtitle;
|
||
|
||
/// No description provided for @ankiImportMedia.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Include media (1 file)} other{Include media ({count} files)}}'**
|
||
String ankiImportMedia(int count);
|
||
|
||
/// No description provided for @ankiImportMediaSubtitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep the deck\'s images and sounds on the cards.'**
|
||
String get ankiImportMediaSubtitle;
|
||
|
||
/// No description provided for @ankiImportMediaMayNotFit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'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.'**
|
||
String ankiImportMediaMayNotFit(String size, String left);
|
||
|
||
/// No description provided for @ankiImportRunning.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Importing…'**
|
||
String get ankiImportRunning;
|
||
|
||
/// No description provided for @ankiImportConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Import'**
|
||
String get ankiImportConfirm;
|
||
|
||
/// No description provided for @ankiImportNotAPackage.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This isn\'t an Anki deck. In Anki, export a deck as an .apkg file and import that.'**
|
||
String get ankiImportNotAPackage;
|
||
|
||
/// No description provided for @ankiImportNewerFormat.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This deck comes from a newer Anki than this app knows. Export it again with “Support older Anki versions”.'**
|
||
String get ankiImportNewerFormat;
|
||
|
||
/// No description provided for @ankiImportUnreadable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This deck is damaged and can\'t be read.'**
|
||
String get ankiImportUnreadable;
|
||
|
||
/// No description provided for @ankiImportBrokeOff.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The import broke off. The cards it brought in so far stay.'**
|
||
String get ankiImportBrokeOff;
|
||
|
||
/// No description provided for @ankiImported.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Imported 1 flashcard from Anki.} other{Imported {count} flashcards from Anki.}}'**
|
||
String ankiImported(int count);
|
||
|
||
/// No description provided for @ankiImportedSubStudysets.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Imported 1 card into sub-studysets.} other{Imported {count} cards into sub-studysets.}}'**
|
||
String ankiImportedSubStudysets(int count);
|
||
|
||
/// No description provided for @ankiImportedTagged.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{Imported 1 card, tagged by subdeck.} other{Imported {count} cards, tagged by subdeck.}}'**
|
||
String ankiImportedTagged(int count);
|
||
|
||
/// No description provided for @ankiImportFilesSkipped.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'{count, plural, =1{1 media file couldn\'t be imported.} other{{count} media files couldn\'t be imported.}}'**
|
||
String ankiImportFilesSkipped(int count);
|
||
}
|
||
|
||
class _AppLocalizationsDelegate
|
||
extends LocalizationsDelegate<AppLocalizations> {
|
||
const _AppLocalizationsDelegate();
|
||
|
||
@override
|
||
Future<AppLocalizations> load(Locale locale) {
|
||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||
}
|
||
|
||
@override
|
||
bool isSupported(Locale locale) =>
|
||
<String>['en'].contains(locale.languageCode);
|
||
|
||
@override
|
||
bool shouldReload(_AppLocalizationsDelegate old) => false;
|
||
}
|
||
|
||
AppLocalizations lookupAppLocalizations(Locale locale) {
|
||
// Lookup logic when only language code is specified.
|
||
switch (locale.languageCode) {
|
||
case 'en':
|
||
return AppLocalizationsEn();
|
||
}
|
||
|
||
throw FlutterError(
|
||
'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely '
|
||
'an issue with the localizations generation tool. Please file an issue '
|
||
'on GitHub with a reproducible sample app and the gen-l10n configuration '
|
||
'that was used.',
|
||
);
|
||
}
|