halkyon/halkyon_learn_flutter/lib/l10n/app_localizations_en.dart
Tizian 「ティツィアーン」 a6d5769a2e
Import Anki decks with their files and history
Files in content: the person's images and sounds as asset rows synced like
all content, their files kept by hash on each device, uploaded after each
sync, downloaded on demand and checked against their hash
(core/asset/AssetRepository). Rich text names them as asset:<id> URLs, in
the editor's image block and an audio block of ours; any other URL is never
fetched. Sounds play through audioplayers, one at a time. Content holding
only an image or a sound isn't blank, and lists show it as such.

The Anki import ("Import from Anki" under Add material): .apkg and .colpkg
packages in all three formats Anki has written, read on an isolate of their
own. Modern packages compress everything with zstd in frames that don't
record their size, which pure_zstd v1.0.0 refuses; our fork decodes them.
Fields become rich text by a converter of our own (lines, lists, formatting,
images, sounds, cloze deletions hidden on the front). One card per note,
the files first, studysets as chosen (flatten, sub-studysets, or tags by
subdeck), the notes' tags, and, if wanted, the review history, which FSRS
replays: the first template's reviews to the card's schedule, a reversed
note type's second to the reverse one.

Imported cards say where they came from in their first revision (card
schema 3); the dashboard doesn't count them as written. The test fixtures
are exported by Anki itself (tool/anki/make_fixtures.py).

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

1339 lines
30 KiB
Dart

// ignore: unused_import
import 'package:intl/intl.dart' as intl;
import 'app_localizations.dart';
// ignore_for_file: type=lint
/// The translations for English (`en`).
class AppLocalizationsEn extends AppLocalizations {
AppLocalizationsEn([String locale = 'en']) : super(locale);
@override
String get appTitle => 'Halkyon Learn';
@override
String get shellTabHome => 'Home';
@override
String get shellTabLibrary => 'Library';
@override
String get shellTabExplore => 'Explore';
@override
String get shellTabProfile => 'Profile';
@override
String get homeTitle => 'Home';
@override
String get libraryTitle => 'Library';
@override
String get libraryNewStudyset => 'New studyset';
@override
String get libraryEmpty => 'No studysets yet';
@override
String get libraryUnreadable => 'Couldn\'t read your studysets.';
@override
String get libraryArchivedSection => 'Archived';
@override
String get librarySearchTooltip => 'Search';
@override
String get librarySearchHint => 'Search studysets';
@override
String get librarySearchClearTooltip => 'Clear query';
@override
String get librarySearchCloseTooltip => 'Close search';
@override
String get librarySearchNoMatches => 'No studysets match your search';
@override
String get libraryStudysetArchived => 'Studyset archived';
@override
String get libraryStudysetUnarchived => 'Studyset unarchived';
@override
String get libraryStudysetDeleted => 'Studyset deleted';
@override
String get libraryDeleteTitle => 'Delete studyset?';
@override
String get libraryDeleteMessage =>
'It is deleted with everything inside it and all their cards, on all your devices. You can undo this for a few seconds.';
@override
String get libraryDeleteConfirm => 'Delete';
@override
String get studysetSheetCreateTitle => 'Create studyset';
@override
String get studysetSheetEditTitle => 'Edit studyset';
@override
String get studysetSheetCreate => 'Create';
@override
String get studysetSheetSave => 'Save';
@override
String get studysetSheetTitleLabel => 'Title';
@override
String get studysetSheetSecondaryLabel => 'Secondary title';
@override
String get studysetSheetSecondaryHelper =>
'Shown as a small label above the title.';
@override
String get studysetSheetColor => 'Color';
@override
String get studysetSheetDiscardTitle => 'Discard changes?';
@override
String get studysetSheetDiscardMessage =>
'You have unsaved changes to this studyset. Discard them and close the form?';
@override
String get studysetSheetDiscardConfirm => 'Discard';
@override
String paletteColorName(String name) {
String _temp0 = intl.Intl.selectLogic(
name,
{
'carrot': 'Carrot',
'cerise': 'Cerise',
'cobalt': 'Cobalt',
'copper': 'Copper',
'enzian': 'Enzian',
'fern': 'Fern',
'forest': 'Forest',
'ocean': 'Ocean',
'olive': 'Olive',
'pacific': 'Pacific',
'pickle': 'Pickle',
'pine': 'Pine',
'pink': 'Pink',
'plum': 'Plum',
'purple': 'Purple',
'reef': 'Reef',
'sahara': 'Sahara',
'slateblue': 'Slate blue',
'soil': 'Soil',
'strawberry': 'Strawberry',
'other': '$name',
},
);
return '$_temp0';
}
@override
String colorPickerLabel(String color) {
return 'Color: $color';
}
@override
String studysetCountFlashcards(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count flashcards',
one: '1 flashcard',
);
return '$_temp0';
}
@override
String get studysetNoContent => 'No content yet';
@override
String get studysetActionReview => 'Review';
@override
String get studysetActionStudy => 'Study';
@override
String get studysetActionAdd => 'Add content';
@override
String get studysetArchived => 'Archived';
@override
String get studysetStar => 'Star';
@override
String get studysetUnstar => 'Unstar';
@override
String get studysetOptions => 'Options';
@override
String get studysetMenuEdit => 'Edit';
@override
String get studysetMenuArchive => 'Archive';
@override
String get studysetMenuUnarchive => 'Unarchive';
@override
String get studysetMenuDelete => 'Delete';
@override
String get studysetMenuMove => 'Move to…';
@override
String get studysetTabFlashcards => 'Flashcards';
@override
String get studysetFlashcardsEmpty => 'No flashcards yet';
@override
String get studysetFlashcardsEmptyHint => 'Add some to start studying.';
@override
String get studysetAddMaterial => 'Add material';
@override
String get studysetCreateFlashcards => 'Create flashcards';
@override
String get studysetStudy => 'Study';
@override
String studysetLearnCount(int count) {
return 'Learn $count';
}
@override
String get studysetOpenTopics => 'Show topics';
@override
String get studysetTopics => 'Topics';
@override
String get studysetAllTopics => 'All topics';
@override
String get studysetNewSubStudyset => 'New sub-studyset';
@override
String get studysetSubStudysetsEmpty => 'No sub-studysets yet.';
@override
String get studysetSubStudysetsEmptyHint =>
'Break this studyset into milestones or lessons.';
@override
String get studysetReorder => 'Reorder';
@override
String get studysetReorderDone => 'Done';
@override
String get studysetDragToReorder => 'Drag to reorder';
@override
String get studysetMoveTitle => 'Move studyset to';
@override
String get studysetMoveTopLevel => 'Top level';
@override
String get studysetMoveCurrent => 'Where it is now';
@override
String get studysetMoveConfirm => 'Move';
@override
String get studysetMoveShowInside => 'Show what is inside';
@override
String get studysetMoveHideInside => 'Hide what is inside';
@override
String studysetMoved(String destination) {
return 'Moved to $destination.';
}
@override
String get studysetReadMore => 'Read more';
@override
String get studysetDescriptionTitle => 'Description';
@override
String get studysetDescriptionEditTitle => 'Edit description';
@override
String get studysetDescriptionSave => 'Save';
@override
String get studysetSheetDescription => 'Description';
@override
String get studysetSheetDescriptionAdd => 'Add a description';
@override
String get studysetSheetInheritColor => 'Same color as the studyset it is in';
@override
String get exploreTitle => 'Explore';
@override
String get exploreEmpty => 'Studysets that others share will appear here.';
@override
String get profileTitle => 'Profile';
@override
String get profileSettingsTooltip => 'Settings';
@override
String get profileIdentified => 'Your progress is kept with your account.';
@override
String get profileAnonymous =>
'Progress is saved on this device. Sign in to keep it.';
@override
String get profileSignInWithGitHub => 'Sign in with GitHub';
@override
String get profileSignInFailed => 'Couldn\'t sign in with GitHub.';
@override
String get profileContinueInBrowser => 'Continue in your browser.';
@override
String get profileSwitchTitle => 'Switch to your GitHub account?';
@override
String get profileSwitchMessage =>
'This GitHub account already has progress from another device. The studysets on this device can\'t be combined with it yet: if you switch, they are deleted.';
@override
String get profileSwitchStay => 'Stay anonymous';
@override
String get profileSwitchConfirm => 'Switch';
@override
String get settingsTitle => 'Settings';
@override
String get settingsAccount => 'Account';
@override
String get settingsSignOut => 'Sign out';
@override
String get settingsSignOutTitle => 'Sign out?';
@override
String get settingsSignOutAnonymousMessage =>
'This account can\'t be signed into again, so signing out deletes it with its progress.';
@override
String get settingsDeleteAccount => 'Delete account';
@override
String get settingsDeleteTitle => 'Delete your account?';
@override
String get settingsDeleteMessage =>
'Everything you have, your studysets, cards and reviews, is deleted on the server and on all your devices. This can\'t be undone.';
@override
String get settingsAbout => 'About Halkyon Learn';
@override
String get tagsReadFailed => 'Couldn\'t read the tags.';
@override
String get tagPickerTitle => 'Tags';
@override
String get tagPickerManage => 'Manage tags';
@override
String get tagPickerSearchLabel => 'Search or create a tag';
@override
String tagPickerCreate(String name) {
return 'Create \"$name\"';
}
@override
String get tagSheetCreateTitle => 'Create tag';
@override
String get tagSheetEditTitle => 'Edit tag';
@override
String get tagSheetNameLabel => 'Name';
@override
String get tagSheetNameHelper => 'Stored and displayed in lowercase.';
@override
String tagSheetNameExists(String name) {
return 'The tag \'$name\' exists already.';
}
@override
String tagSheetNameMerges(String name) {
return 'There is a tag \'$name\' already: saving merges this one into it.';
}
@override
String get tagSheetColor => 'Color';
@override
String get tagSheetCreate => 'Create';
@override
String get tagSheetSave => 'Save';
@override
String get tagManageTitle => 'Manage tags';
@override
String get tagManageEmpty => 'No tags yet. Add one below.';
@override
String get tagManageAdd => 'Add tag';
@override
String tagManageRow(String name, int count) {
return '$name ($count)';
}
@override
String get tagManageEdit => 'Edit tag';
@override
String get tagManageDelete => 'Delete tag';
@override
String tagDeleteTitle(String name) {
return 'Delete the tag \'$name\'?';
}
@override
String tagDeleteMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'It is removed from $count flashcards, on all your devices.',
one: 'It is removed from 1 flashcard, on all your devices.',
zero: 'It isn\'t on any flashcards.',
);
return '$_temp0';
}
@override
String get tagDeleteConfirm => 'Delete';
@override
String tagDeleted(String name) {
return 'Deleted the tag \'$name\'';
}
@override
String get studySettingsTitle => 'Session settings';
@override
String get studySettingsFilterByTags => 'Filter by tags';
@override
String get studySettingsFilterHint =>
'Study only the flashcards with any of the tags chosen.';
@override
String get studySettingsNoTags =>
'No tags yet. Add tags to your flashcards to filter them here.';
@override
String get studySettingsReset => 'Reset';
@override
String get studySettingsSave => 'Save';
@override
String get cardTagsLabel => 'Tags';
@override
String get cardTagsAdd => 'Add tags';
@override
String get cardTagsEdit => 'Edit tags';
@override
String get cardFilterTooltip => 'Filter';
@override
String get cardFilterTitle => 'Filter';
@override
String get cardFilterTag => 'Tag';
@override
String get cardFilterAllTags => 'All tags';
@override
String get cardFilterNoTags => 'None of these flashcards has a tag yet.';
@override
String get cardFilterClear => 'Clear all';
@override
String get cardFilterApply => 'Apply';
@override
String get cardFilterNothing => 'No flashcards have this tag.';
@override
String get cardListMore => 'More';
@override
String get cardListManageTags => 'Manage tags';
@override
String get composerTitle => 'Create flashcards';
@override
String composerTitleFor(String title) {
return 'Create flashcards for \"$title\"';
}
@override
String get composerSaving => 'Saving…';
@override
String get composerSaveFailed => 'Save failed — retry';
@override
String get composerAllSaved => 'All changes saved';
@override
String get composerNewFlashcard => 'New flashcard';
@override
String get composerCollapseStack => 'Collapse stack';
@override
String get composerExpandStack => 'Expand stack';
@override
String get composerStatusSaving => 'Saving';
@override
String get composerStatusSaved => 'Saved';
@override
String get composerStatusFailed => 'Save failed';
@override
String get composerSaveFailedInline => 'Save failed.';
@override
String get composerRetry => 'Retry';
@override
String get composerEmptyPane => 'Add a flashcard to get started.';
@override
String get composerKindFlashcard => 'Flashcard';
@override
String get composerKindVocabulary => 'Vocabulary';
@override
String get composerKindMatching => 'Matching';
@override
String get composerKindMap => 'Map';
@override
String get composerLabelFront => 'Front';
@override
String get composerLabelQuestion => 'Question';
@override
String get composerLabelExpression => 'Expression';
@override
String get composerLabelPrompt => 'Prompt';
@override
String get composerLabelBack => 'Back';
@override
String get composerLabelAnswers => 'Answers';
@override
String get composerLabelAnswer => 'Answer';
@override
String get composerPlaceholderFront => 'Add question';
@override
String get composerPlaceholderExpression => 'Add expression';
@override
String get composerPlaceholderPrompt => 'Add prompt';
@override
String get composerAddAnswer => 'Add answer';
@override
String get composerCorrectAnswer => 'Correct answer';
@override
String get composerWrongAnswer => 'Wrong answer';
@override
String get composerRemoveAnswer => 'Remove answer';
@override
String composerPin(String field) {
return 'Pin $field: keep it for the next card';
}
@override
String composerUnpin(String field) {
return 'Unpin $field: clear it for the next card';
}
@override
String get composerTags => 'Tags';
@override
String get composerAddTags => 'Add tags';
@override
String get composerMoreActions => 'More actions';
@override
String get composerDuplicate => 'Duplicate';
@override
String get composerClearFields => 'Clear fields';
@override
String get composerDelete => 'Delete';
@override
String get composerDeleteTitle => 'Delete this flashcard?';
@override
String get composerDeleteDraftMessage =>
'The draft will be removed from this session. It has not been saved.';
@override
String get composerDeleteSavedMessage =>
'The flashcard will be removed from the studyset, on all your devices.';
@override
String composerDiscardTitle(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Discard unsaved flashcards?',
one: 'Discard unsaved flashcard?',
);
return '$_temp0';
}
@override
String composerDiscardMessage(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other:
'$count flashcards haven\'t been saved yet. Leaving now will discard them.',
one: '1 flashcard hasn\'t been saved yet. Leaving now will discard it.',
);
return '$_temp0';
}
@override
String get composerDiscardConfirm => 'Discard';
@override
String get composerConflict =>
'This flashcard was changed differently on two devices. Choose the version to keep of each part below.';
@override
String get composerKeepThis => 'Keep this';
@override
String get vocabularyReading => 'Reading';
@override
String get vocabularyReadingHint => 'Kana reading';
@override
String get vocabularyMeanings => 'Meanings';
@override
String get vocabularyPrimaryMeaningHint => 'Primary meaning';
@override
String get vocabularyMeaningHint => 'Meaning';
@override
String get vocabularyAddMeaning => 'Add meaning';
@override
String get vocabularyRemoveMeaning => 'Remove meaning';
@override
String get matchingCategories => 'Categories';
@override
String get matchingCategoriesHint =>
'The drop-zone cards learners drag items onto. Each category needs at least one item, so a card can\'t have more categories than items.';
@override
String matchingCategory(int number) {
return 'Category $number';
}
@override
String get matchingAddCategory => 'Add category';
@override
String get matchingAddCategoryBlocked =>
'Add an item first: a card can\'t have more categories than items';
@override
String get matchingRemoveCategory => 'Remove category';
@override
String get matchingMinCategories => 'At least two categories required';
@override
String get matchingItems => 'Items';
@override
String get matchingItemsHint =>
'The draggable items. Assign every item to its correct category: an unassigned item can never be placed right.';
@override
String matchingItem(int number) {
return 'Item $number';
}
@override
String get matchingAddItem => 'Add item';
@override
String get matchingUnassigned => 'Unassigned';
@override
String get matchingRemoveItem => 'Remove item';
@override
String get matchingMinItems => 'At least two items required';
@override
String get cardTileOptions => 'Options';
@override
String get cardTileEdit => 'Edit';
@override
String get cardTileDelete => 'Delete';
@override
String get cardTileUntitled => 'Untitled';
@override
String get cardTileConflict => 'Changed on two devices';
@override
String get studyClose => 'Close session';
@override
String get studyBackFirstOn =>
'Showing the back of cards first: tap to revert';
@override
String get studyBackFirstOff => 'Show the back of cards first';
@override
String get studyShowAnswer => 'Show answer';
@override
String get studyCheck => 'Check';
@override
String get studyRatingBad => 'Bad';
@override
String get studyRatingOk => 'OK';
@override
String get studyRatingGood => 'Good';
@override
String get studyRatingPerfect => 'Perfect';
@override
String get studyNothingTitle => 'Nothing to study right now';
@override
String get studyNothingBody => 'Come back later when more cards are due.';
@override
String studyNextDue(String interval) {
return 'The next card is due in $interval.';
}
@override
String get studyDone => 'Done';
@override
String get studyRoundDone => 'Round complete';
@override
String get studyContinue => 'Continue learning';
@override
String get studyPrevious => 'Previous card';
@override
String get studyNext => 'Next card';
@override
String get studyReading => 'Reading';
@override
String get studyMeanings => 'Meanings';
@override
String get studyPlaceItems =>
'Drag each item onto its category, or tap an item and then a category.';
@override
String studyMinutes(int count) {
return '$count min';
}
@override
String studyHours(int count) {
return '$count h';
}
@override
String studyDays(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count days',
one: '1 day',
);
return '$_temp0';
}
@override
String studyMonths(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count months',
one: '1 month',
);
return '$_temp0';
}
@override
String studyYears(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count years',
one: '1 year',
);
return '$_temp0';
}
@override
String studyFilteredBy(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Narrowed to $count tags',
one: 'Narrowed to 1 tag',
);
return '$_temp0';
}
@override
String get studySettingsCardsPerRound => 'Cards per round';
@override
String get studySettingsNewPerDay => 'New cards per day';
@override
String get studySettingsNewPerDayHint =>
'How many never-studied cards each studyset starts a day. Due reviews are never limited.';
@override
String get studySettingsUnlimited => 'Unlimited';
@override
String get studySettingsSortBy => 'Sort by';
@override
String get studySettingsLearnMode => 'Learn mode';
@override
String get studyModeSpaced => 'Spaced repetition';
@override
String get studyModeSpacedHint =>
'Due cards on their schedules; ratings move them.';
@override
String get studyModeCram => 'Cram';
@override
String get studyModeCramHint =>
'Walk every card without touching the schedules.';
@override
String get studySortOldestFirst => 'Oldest first';
@override
String get studySortRandom => 'Random';
@override
String get studySortNewestFirst => 'Newest first';
@override
String get studyFewer => 'Fewer';
@override
String get studyMore => 'More';
@override
String get studysetMenuReset => 'Reset progress';
@override
String get studysetResetTitle => 'Reset progress?';
@override
String get studysetResetMessage =>
'Every flashcard in it, and in the studysets inside it, starts afresh as new, on all your devices. Your study history stays. You can undo this for a few seconds.';
@override
String get studysetResetConfirm => 'Reset';
@override
String get studysetResetDone => 'Progress reset';
@override
String get mapUnknown => 'This map needs a newer version of the app.';
@override
String get mapPickRegion =>
'Tap the region that answers the question; pinch or scroll to zoom.';
@override
String get mapNonePicked => 'No region picked yet';
@override
String get composerPlaceholderQuestion => 'Add question';
@override
String get composerLabelRegion => 'Answer';
@override
String get homeStreakTooltip => 'Study streak';
@override
String get homeArrange => 'Arrange widgets';
@override
String get homeDone => 'Done';
@override
String get homeDragToReorder => 'Drag to reorder';
@override
String homeShowWidget(String label) {
return 'Show $label';
}
@override
String homeHideWidget(String label) {
return 'Hide $label';
}
@override
String get homeAllHidden => 'All widgets are hidden';
@override
String get homeAllHiddenHint => 'Long-press here to bring some back.';
@override
String get homeWidgetGoal => 'Study goal';
@override
String get homeWidgetWeek => 'Week overview';
@override
String get homeWidgetActivity => 'Activity heatmap';
@override
String get homeActivityTitle => 'Your activity';
@override
String streakDays(num count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count day streak',
one: '1 day streak',
);
return '$_temp0';
}
@override
String get streakStart => 'Study today to start your streak.';
@override
String get streakGrow =>
'Keep it going: study at least once a day to grow your streak.';
@override
String get streakFirstDay =>
'Review some cards today to light the first day.';
@override
String get streakComeBack => 'Come back tomorrow to keep your streak.';
@override
String get streakKeepAlive => 'Study today to keep your streak alive.';
@override
String get goalEditTitle => 'Edit study goal';
@override
String get goalSetTitle => 'Set a study goal';
@override
String get goalDescriptionDaily =>
'Review a number of flashcards each day. Every card you rate counts.';
@override
String get goalDescriptionWeekly =>
'Review a number of flashcards each week, from Monday. Every card you rate counts.';
@override
String get goalPeriod => 'Period';
@override
String get goalPerDay => 'Per day';
@override
String get goalPerWeek => 'Per week';
@override
String get goalCardsPerDay => 'Cards per day';
@override
String get goalCardsPerWeek => 'Cards per week';
@override
String get goalSave => 'Save goal';
@override
String get goalRemove => 'Remove goal';
@override
String get goalEmptySubtitle =>
'Review a set number of cards each day or week.';
@override
String get goalDailyHeadline => 'Daily goal';
@override
String get goalWeeklyHeadline => 'Weekly goal';
@override
String goalProgressToday(int reviewed, int target) {
return '$reviewed of $target cards today';
}
@override
String goalProgressThisWeek(int reviewed, int target) {
return '$reviewed of $target cards this week';
}
@override
String get goalMet => 'Goal met: nice work!';
@override
String goalRemaining(int count) {
return '$count to go';
}
@override
String get weekToday => 'Today';
@override
String get weekPreviousDay => 'Previous day';
@override
String get weekNextDay => 'Next day';
@override
String get weekRestDay => 'Rest day';
@override
String weekDueCount(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count cards due',
one: '1 card due',
);
return '$_temp0';
}
@override
String get heatmapLess => 'Less';
@override
String get heatmapMore => 'More';
@override
String heatmapTotal(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count activities in the last year',
one: '1 activity in the last year',
);
return '$_temp0';
}
@override
String heatmapDay(int count, String date) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count activities',
one: '1 activity',
zero: 'Nothing',
);
return '$_temp0 · $date';
}
@override
String get commonCancel => 'Cancel';
@override
String get commonClose => 'Close';
@override
String get commonUndo => 'Undo';
@override
String get commonTryAgain => 'Try again';
@override
String get sessionUnreachable => 'Couldn\'t reach the server.';
@override
String get notFoundGone =>
'This no longer exists. It may have been deleted on another device.';
@override
String get fileImage => 'Image';
@override
String get fileSound => 'Sound';
@override
String get fileImageUnavailable =>
'This image isn\'t on this device yet. It shows once it\'s uploaded and you\'re online.';
@override
String get fileFromElsewhere => 'Files from the web aren\'t shown.';
@override
String get filePlaySound => 'Play sound';
@override
String get fileStopSound => 'Stop sound';
@override
String get fileSoundUnavailable =>
'This sound isn\'t on this device yet. It plays once it\'s uploaded and you\'re online.';
@override
String get ankiImportMenu => 'Import from Anki';
@override
String get ankiImportFileType => 'Anki decks';
@override
String get ankiImportTitle => 'Import Anki deck';
@override
String get ankiImportOptionsTitle => 'How should subdecks be imported?';
@override
String get ankiImportReading => 'Reading the deck…';
@override
String ankiImportSummary(int cards) {
String _temp0 = intl.Intl.pluralLogic(
cards,
locale: localeName,
other: '$cards cards.',
one: '1 card.',
);
return '$_temp0';
}
@override
String ankiImportSummaryDecks(int cards, int decks) {
String _temp0 = intl.Intl.pluralLogic(
cards,
locale: localeName,
other: '$cards cards',
one: '1 card',
);
return '$_temp0 across $decks subdecks.';
}
@override
String get ankiImportModeFlatten => 'Flatten into this studyset';
@override
String get ankiImportModeFlattenSubtitle =>
'Import every card here and ignore the subdecks.';
@override
String get ankiImportModeSubStudysets => 'Recreate as sub-studysets';
@override
String get ankiImportModeSubStudysetsSubtitle =>
'Mirror the subdeck tree: each subdeck becomes a nested studyset.';
@override
String get ankiImportModeTag => 'Tag cards by subdeck';
@override
String get ankiImportModeTagSubtitle =>
'Keep every card here, tagged with each subdeck it came from.';
@override
String get ankiImportProgress => 'Import study progress';
@override
String get ankiImportProgressSubtitle =>
'Bring Anki\'s review history over: cards continue where they left off. New cards stay new.';
@override
String ankiImportMedia(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Include media ($count files)',
one: 'Include media (1 file)',
);
return '$_temp0';
}
@override
String get ankiImportMediaSubtitle =>
'Keep the deck\'s images and sounds on the cards.';
@override
String get ankiImportRunning => 'Importing…';
@override
String get ankiImportConfirm => 'Import';
@override
String get ankiImportNotAPackage =>
'This isn\'t an Anki deck. In Anki, export a deck as an .apkg file and import that.';
@override
String get ankiImportNewerFormat =>
'This deck comes from a newer Anki than this app knows. Export it again with “Support older Anki versions”.';
@override
String get ankiImportUnreadable => 'This deck is damaged and can\'t be read.';
@override
String get ankiImportBrokeOff =>
'The import broke off. The cards it brought in so far stay.';
@override
String ankiImported(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Imported $count flashcards from Anki.',
one: 'Imported 1 flashcard from Anki.',
);
return '$_temp0';
}
@override
String ankiImportedSubStudysets(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Imported $count cards into sub-studysets.',
one: 'Imported 1 card into sub-studysets.',
);
return '$_temp0';
}
@override
String ankiImportedTagged(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: 'Imported $count cards, tagged by subdeck.',
one: 'Imported 1 card, tagged by subdeck.',
);
return '$_temp0';
}
@override
String ankiImportFilesSkipped(int count) {
String _temp0 = intl.Intl.pluralLogic(
count,
locale: localeName,
other: '$count media files couldn\'t be imported.',
one: '1 media file couldn\'t be imported.',
);
return '$_temp0';
}
}