halkyon/halkyon_learn_flutter/lib/l10n/app_en.arb
Tizian 「ティツィアーン」 7975586994
feat: files in an order of one's own, with Reorder beside the tabs
A PDF now has a position among its studyset's files, as notes and paths
have: a fractional index in a column of its own (so moving it on one
device and renaming it on another don't overwrite each other), last
writer wins. The migration adds it to pdf_source on the server and on
each device with 'a0', so PDFs from before stand in the order they were
added (ties sort by id), and new ones go at the end.

The Files tab lists them in that order by default (Custom order, first
in the Sort menu; newest first was the default before). With two files
or more, Reorder beside the tabs shows the custom order whatever they
were sorted by, a grip in place of each file's options and the Sort menu
put away, until Done.

The next release changes synced tables anyway (card.buriedAt, since
v0.2.2), so older apps have to update for that already.

Also: card.position's doc no longer speaks of moving cards.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-09 18:09:22 +02:00

1280 lines
63 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"@@locale": "en",
"appTitle": "Halkyon Learn",
"@appTitle": {"description": "The app's name, e.g. in the window title and the rail's logo."},
"shellTabHome": "Home",
"shellTabLibrary": "Library",
"shellTabExplore": "Explore",
"shellTabProfile": "Profile",
"homeTitle": "Home",
"libraryTitle": "Library",
"libraryCreateStudyset": "Create studyset",
"libraryEmpty": "No studysets yet",
"libraryUnreadable": "Couldn't read your studysets.",
"libraryArchivedSection": "Archived",
"librarySearchTooltip": "Search",
"librarySearchHint": "Search studysets",
"librarySearchClearTooltip": "Clear query",
"librarySearchCloseTooltip": "Close search",
"librarySearchNoMatches": "No studysets match your search",
"libraryStudysetArchived": "Studyset archived",
"libraryStudysetUnarchived": "Studyset unarchived",
"libraryStudysetDeleted": "Studyset deleted",
"libraryDeleteTitle": "Delete studyset?",
"libraryDeleteMessage": "It is deleted with everything inside it and all their cards, on all your devices. You can undo this for a few seconds.",
"libraryDeleteConfirm": "Delete",
"studysetSheetCreateTitle": "Create studyset",
"studysetSheetEditTitle": "Edit studyset",
"studysetSheetCreate": "Create",
"studysetSheetSave": "Save",
"studysetSheetTitleLabel": "Title",
"studysetSheetSecondaryLabel": "Secondary title",
"studysetSheetSecondaryHelper": "Shown as a small label above the title on cards and the studyset's header. Paths use it to label tiers (Challenge, Milestone, Lesson).",
"studysetSheetColor": "Colour",
"studysetSheetDiscardTitle": "Discard changes?",
"studysetSheetDiscardMessage": "You have unsaved changes to this studyset. Discard them and close the form?",
"studysetSheetDiscardConfirm": "Discard",
"paletteColorName": "{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}}}",
"@paletteColorName": {"description": "A colour of the palette content can take, by its stored name.", "placeholders": {"name": {"type": "String"}}},
"colorPickerLabel": "Colour: {color}",
"@colorPickerLabel": {"placeholders": {"color": {"type": "String"}}},
"studysetCountFlashcards": "{count, plural, =1{1 flashcard} other{{count} flashcards}}",
"@studysetCountFlashcards": {"placeholders": {"count": {"type": "int"}}},
"studysetCountNotes": "{count, plural, =1{1 note} other{{count} notes}}",
"@studysetCountNotes": {"placeholders": {"count": {"type": "int"}}},
"studysetCountFiles": "{count, plural, =1{1 file} other{{count} files}}",
"@studysetCountFiles": {"placeholders": {"count": {"type": "int"}}},
"libraryRefresh": "Refresh",
"libraryImport": "Import",
"libraryImportAnkiHint": "Becomes a studyset of its own, from an .apkg or .colpkg file",
"libraryRetry": "Retry",
"studysetNoContent": "No content yet",
"studysetEmpty": "Empty",
"studysetActionReview": "Review",
"studysetActionStudy": "Study",
"studysetActionAdd": "Add content",
"studysetArchived": "Archived",
"studysetStar": "Star",
"studysetUnstar": "Unstar",
"studysetOptions": "Options",
"studysetBibliography": "Bibliography",
"studysetBibliographyIntro": "Works cited across this studyset, in the citation style chosen in Settings.",
"studysetMenuEdit": "Edit",
"studysetMenuArchive": "Archive",
"studysetMenuUnarchive": "Unarchive",
"studysetMenuDelete": "Delete",
"studysetMenuMove": "Move to…",
"studysetTabFlashcards": "Flashcards",
"studysetTabNotes": "Notes",
"studysetTabPaths": "Paths",
"studysetCreatePath": "Create a path",
"pathImportMenu": "Import a path (JSON)",
"pathImportFileType": "Learning path (JSON)",
"pathImported": "{count, plural, =1{Imported \"{title}\" with 1 step.} other{Imported \"{title}\" with {count} steps.}}",
"@pathImported": {"placeholders": {"title": {"type": "String"}, "count": {"type": "int"}}},
"pathImportSkipped": "{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.}}",
"@pathImportSkipped": {"placeholders": {"count": {"type": "int"}}},
"pathImportFailed": "Couldn't import this file. {reason}",
"@pathImportFailed": {"placeholders": {"reason": {"type": "String"}}},
"pathImportUnreadable": "It isn't text in UTF-8.",
"pathsEmpty": "No paths yet",
"pathsEmptyHint": "A path leads through a lesson, step by step.",
"pathOptions": "Path options",
"pathEdit": "Edit",
"pathResetProgress": "Reset progress",
"pathProgressReset": "Progress reset",
"pathResetTitle": "Reset progress?",
"pathResetMessage": "All your progress through this path will be cleared. You can undo this for a few seconds.",
"pathResetConfirm": "Reset",
"pathDelete": "Delete",
"pathDeleteTitle": "Delete path?",
"pathDeleteMessage": "This path and its steps will be removed from the studyset. You can undo this for a few seconds.",
"pathDeleteConfirm": "Delete",
"pathDeleted": "Path deleted",
"pathCreateTitle": "New path",
"pathCreate": "Create",
"pathTitleLabel": "Title",
"pathTitleRequired": "A path needs a title.",
"pathSecondaryTitleLabel": "Secondary title",
"pathSecondaryTitleHint": "E.g. the title in the language you learn",
"pathEditTitle": "Edit path",
"pathDescription": "Description",
"pathAddDescription": "Add a description",
"pathDescriptionEditTitle": "Path description",
"pathAddTags": "Add tags",
"pathTags": "Tags",
"pathEditTags": "Edit tags",
"pathSteps": "Steps",
"pathStepsEmpty": "No steps yet",
"pathStepsEmptyHint": "Pick a step type to start writing the lesson.",
"pathAddStep": "Add step",
"pathReorder": "Reorder",
"pathReorderDone": "Done",
"pathStepDelete": "Delete step",
"pathStepDeleted": "Step deleted",
"stepUntitled": "Untitled step",
"stepKindInfo": "Info",
"stepKindSingleChoice": "Single choice",
"stepKindMultipleChoice": "Multiple choice",
"stepKindDragAndDrop": "Drag and drop",
"stepKindFillInTheBlank": "Fill in the blank",
"stepEditTitle": "Edit step",
"stepTitleHint": "Title",
"stepOptions": "Options",
"stepOptionHint": "Option {number}",
"@stepOptionHint": {"placeholders": {"number": {"type": "int"}}},
"stepAddOption": "Add option",
"stepRemoveOption": "Remove option",
"stepCorrectOption": "The right one",
"stepCorrectOptions": "Right ones",
"stepCategories": "Categories",
"stepCategoryHint": "Category {number}",
"@stepCategoryHint": {"placeholders": {"number": {"type": "int"}}},
"stepAddCategory": "Add category",
"stepRemoveCategory": "Remove category",
"stepItems": "Items",
"stepItemHint": "Item {number}",
"@stepItemHint": {"placeholders": {"number": {"type": "int"}}},
"stepAddItem": "Add item",
"stepRemoveItem": "Remove item",
"stepItemCategory": "Belongs to",
"stepPassage": "Passage",
"stepPassageHint": "Type ___ (three underscores) wherever a word should be dropped in.",
"stepBlankHint": "Word for gap {number}",
"@stepBlankHint": {"placeholders": {"number": {"type": "int"}}},
"stepIncomplete": "Not ready to answer yet: fill in every field and choose what is right.",
"stepFeedbackRight": "Feedback after a right answer",
"stepFeedbackWrong": "Feedback after a wrong answer",
"stepFeedbackNone": "None",
"sources": "Sources",
"sourcesCount": "{count, plural, =1{1 source} other{{count} sources}}",
"@sourcesCount": {"placeholders": {"count": {"type": "int"}}},
"sourcesNone": "No sources cited yet.",
"sourcesEdit": "Edit sources",
"sourcesEditDone": "Done editing",
"sourceAdd": "Add a source",
"sourceEdit": "Edit source",
"sourceRemove": "Remove source",
"sourceRemoved": "Source removed",
"sourceSheetAdd": "Add",
"sourceAuthors": "Authors",
"sourceAuthorsHint": "Full names, one per line, e.g. Mark A. McDaniel",
"sourceYear": "Year",
"sourceYearHint": "e.g. 2014",
"sourceTitle": "Title",
"sourceTitleHint": "Title of the work",
"sourceContainer": "Published in",
"sourceContainerHint": "Journal, book or website it is part of, with pages",
"sourceContainerHelper": "Leave empty for a work of its own, such as a book.",
"sourcePublisher": "Publisher",
"sourcePublisherHint": "e.g. Belknap Press",
"sourceIsbn": "ISBN",
"sourceIsbnHint": "e.g. 978-0-674-72901-8",
"sourceUrl": "Link",
"sourceUrlHint": "https://…",
"sourceImportedAs": "Imported as: {citation}",
"@sourceImportedAs": {"placeholders": {"citation": {"type": "String"}}},
"sourceIsbnLine": "ISBN: {isbn}",
"@sourceIsbnLine": {"placeholders": {"isbn": {"type": "String"}}},
"sourceAvailableAt": "Available at:",
"sourceEmpty": "Empty reference",
"sourceDiscardTitle": "Discard changes?",
"sourceDiscardMessage": "What you typed for this source will be lost.",
"sourceDiscardConfirm": "Discard",
"stepConflict": "This step was changed differently on another device. Keep one version to go on writing.",
"stepFieldTitle": "Title",
"stepFieldBody": "Text",
"stepFieldExercise": "Exercise",
"stepFieldRightFeedback": "Feedback after a right answer",
"stepFieldWrongFeedback": "Feedback after a wrong answer",
"stepFieldSources": "Sources",
"runnerClose": "Close",
"runnerEditStep": "Edit step",
"runnerBack": "Back",
"runnerCheck": "Check answers",
"runnerContinue": "Continue",
"runnerFinish": "Finish",
"runnerRight": "Correct!",
"runnerWrong": "Not quite",
"runnerAlreadyRight": "You already answered this correctly.",
"runnerSelectAll": "Select all that apply.",
"runnerDragHint": "Drag each item into the category it belongs to, or tap it and then the category. Tap a placed item to take it back.",
"runnerBlankHint": "Drag a word into each gap, or tap it and then the gap. Tap a placed word to take it back.",
"runnerEmpty": "This path has no steps yet.",
"runnerFinished": "You finished this path",
"runnerFinishedSteps": "{count, plural, =1{1 step complete.} other{{count} steps complete.}}",
"@runnerFinishedSteps": {"placeholders": {"count": {"type": "int"}}},
"runnerNextPath": "Continue to next path",
"runnerBackToStudyset": "Back to studyset",
"studysetCountPaths": "{count, plural, =1{1 path} other{{count} paths}}",
"@studysetCountPaths": {"placeholders": {"count": {"type": "int"}}},
"studysetCreateNote": "Create a note",
"notesEmpty": "No notes yet",
"notesEmptyHint": "Notes will appear here when you add them.",
"noteUntitled": "Untitled note",
"noteEdited": "Edited {when}",
"@noteEdited": {"placeholders": {"when": {"type": "String"}}},
"timeJustNow": "just now",
"timeMinutesAgo": "{count, plural, =1{1 minute ago} other{{count} minutes ago}}",
"@timeMinutesAgo": {"placeholders": {"count": {"type": "int"}}},
"timeHoursAgo": "{count, plural, =1{1 hour ago} other{{count} hours ago}}",
"@timeHoursAgo": {"placeholders": {"count": {"type": "int"}}},
"timeDaysAgo": "{count, plural, =1{yesterday} other{{count} days ago}}",
"@timeDaysAgo": {"placeholders": {"count": {"type": "int"}}},
"noteOptions": "Note options",
"noteEdit": "Edit",
"noteDelete": "Delete",
"noteDeleteTitle": "Delete note?",
"noteDeleteMessage": "This note will be removed from the studyset. You can undo this for a few seconds.",
"noteDeleteConfirm": "Delete",
"noteDeleted": "Note deleted",
"noteTitleHint": "Title",
"noteEditing": "Editing…",
"noteSaving": "Saving…",
"noteSaved": "Saved",
"noteSaveFailed": "Save failed",
"noteConflict": "This note was changed differently on another device. Keep one version to go on writing.",
"noteFieldTitle": "Title",
"noteFieldBody": "Text",
"noteKeepThis": "Keep this",
"noteAddTags": "Add tags",
"noteEditTags": "Edit tags",
"studysetFlashcardsEmpty": "No flashcards yet",
"studysetFlashcardsEmptyHint": "Add some to start studying.",
"studysetAddMaterial": "Add material",
"studysetCreateFlashcards": "Create flashcards",
"studysetStudy": "Study",
"studysetLearnCount": "Learn {count}",
"@studysetLearnCount": {"placeholders": {"count": {"type": "int"}}},
"studysetLearnFlashcards": "{count, plural, =1{Learn 1 flashcard} other{Learn {count} flashcards}}",
"@studysetLearnFlashcards": {"placeholders": {"count": {"type": "int"}}},
"studysetNothingToStudy": "Nothing to study yet",
"studysetStudyMode": "Study mode",
"studysetStartPath": "Start: {title}",
"@studysetStartPath": {"placeholders": {"title": {"type": "String"}}},
"studysetContinuePath": "Continue: {title}",
"@studysetContinuePath": {"placeholders": {"title": {"type": "String"}}},
"studysetStartPathHint": "Begin the first step of this path.",
"studysetContinuePathHint": "Pick up the next path step where you left off.",
"studysetSpacedRepetition": "Spaced repetition",
"studysetSpacedRepetitionHint": "Review the cards that are due, scheduled by FSRS.",
"studysetImportContent": "Import content",
"studysetMenuExport": "Export content",
"exportRunning": "Exporting…",
"exportedMarkdown": "Exported as Markdown.",
"exportedZip": "{count, plural, =1{Exported as Markdown with 1 file (.zip).} other{Exported as Markdown with {count} files (.zip).}}",
"@exportedZip": {"placeholders": {"count": {"type": "int"}}},
"exportMissingFiles": "{count, plural, =1{1 file wasn't on this device and is left out.} other{{count} files weren't on this device and are left out.}}",
"@exportMissingFiles": {"placeholders": {"count": {"type": "int"}}},
"exportFailed": "Couldn't export the studyset.",
"exportQuestion": "Q",
"exportAnswer": "A",
"exportHint": "Hint",
"exportIfRight": "If right",
"exportIfWrong": "If wrong",
"exportSound": "Sound",
"exportVideo": "YouTube video",
"exportSpoiler": "Spoiler",
"exportUnavailable": "not available on this device",
"studysetImportPath": "Learning path",
"studysetImportPathHint": "From a Halkyon path JSON file",
"studysetImportAnki": "Anki deck",
"studysetImportAnkiHint": "From an .apkg or .colpkg file",
"studysetImportCards": "Flashcards",
"studysetImportCardsHint": "Pasted, or from a CSV or TSV file",
"cardTextImportTitle": "Import flashcards",
"cardTextImportDescription": "One card per line: its front, a separator, then its back. Each line is split at its first separator; lines without one are left out.",
"cardTextImportHint": "Paste the cards here",
"cardTextImportLoadFile": "Load a CSV or TSV file",
"cardTextImportFileType": "CSV or TSV files",
"cardTextImportUnreadable": "This file isn't text in UTF-8.",
"cardTextImportSeparator": "Separator",
"cardTextSeparatorTab": "Tab",
"cardTextSeparatorComma": "Comma",
"cardTextSeparatorSemicolon": "Semicolon",
"cardTextImportNone": "No cards found yet.",
"cardTextImportReady": "{count, plural, =1{1 card ready to import.} other{{count} cards ready to import.}}",
"@cardTextImportReady": {"placeholders": {"count": {"type": "int"}}},
"cardTextImportSubmit": "Import",
"cardTextImported": "{count, plural, =1{Imported 1 flashcard.} other{Imported {count} flashcards.}}",
"@cardTextImported": {"placeholders": {"count": {"type": "int"}}},
"studysetReorder": "Reorder",
"studysetReorderPaths": "Reorder paths",
"studysetReorderNotes": "Reorder notes",
"studysetReorderFiles": "Reorder files",
"studysetReorderDone": "Done",
"studysetOpenTopics": "Show topics",
"studysetTopics": "Topics",
"studysetAllTopics": "All topics",
"studysetNewSubStudyset": "New sub-studyset",
"studysetSubStudysetsEmpty": "No sub-studysets yet.",
"studysetSubStudysetsEmptyHint": "Break this studyset into milestones or lessons.",
"studysetDragToReorder": "Drag to reorder",
"studysetMoveTitle": "Move studyset to",
"studysetMoveTopLevel": "Top level",
"studysetMoveCurrent": "(current)",
"studysetMoveTopLevelRow": "Top level (no parent)",
"studysetMoveArchived": "Archived",
"studysetMoveNew": "New studyset",
"studysetMoveSelectDestination": "Select a destination",
"studysetMoveDestination": "Destination: {name}",
"@studysetMoveDestination": {"placeholders": {"name": {"type": "String"}}},
"studysetMoveConfirm": "Move",
"studysetMoveShowInside": "Show sub-studysets",
"studysetMoveHideInside": "Hide sub-studysets",
"studysetMoved": "Moved \"{title}\" to {destination}.",
"@studysetMoved": {"placeholders": {"title": {"type": "String"}, "destination": {"type": "String"}}},
"studysetReadMore": "Read more",
"studysetDescriptionTitle": "Description",
"studysetDescriptionEditTitle": "Edit description",
"richTextSave": "Save",
"studysetSheetDescription": "Description",
"studysetSheetDescriptionAdd": "Tap to add a description",
"studysetSheetDescriptionAdded": "Description added — tap to edit",
"studysetSheetInheritColor": "Inherit",
"fieldRequired": "required",
"exploreTitle": "Explore",
"exploreEmpty": "Studysets that others share will appear here.",
"profileTitle": "Profile",
"profileSettingsTooltip": "Settings",
"profileIdentified": "Your progress is kept with your account.",
"profileAnonymous": "Progress is saved on this device. Sign in to keep it.",
"profileSignInWithGitHub": "Sign in with GitHub",
"profileSignInFailed": "Couldn't sign in with GitHub.",
"profileContinueInBrowser": "Continue in your browser.",
"profileSwitchTitle": "Switch to your GitHub account?",
"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.",
"profileSwitchStay": "Stay anonymous",
"profileSwitchConfirm": "Switch",
"settingsTitle": "Settings",
"settingsAccount": "Account",
"settingsSignOut": "Sign out",
"settingsSignOutTitle": "Sign out?",
"settingsSignOutAnonymousMessage": "This account can't be signed into again, so signing out deletes it with its progress.",
"settingsDeleteAccount": "Delete account",
"settingsDeleteTitle": "Delete your account?",
"settingsDeleteMessage": "Everything you have, your studysets, cards and reviews, is deleted on the server and on all your devices. This can't be undone.",
"settingsAbout": "About Halkyon Learn",
"aboutLegalese": "Free software: the app is under the GNU Affero General Public License, version 3 or any later version, the server under the Server Side Public License, version 1.",
"aboutSourceCode": "The source of what this instance runs:",
"aboutSourceUnreachable": "Couldn't reach this instance to ask where its source is.",
"settingsAppearance": "Appearance",
"settingsAppearanceDevice": "Device theme",
"settingsAppearanceLight": "Light",
"settingsAppearanceDark": "Dark",
"settingsLanguage": "Language",
"settingsLanguageDevice": "Device language",
"settingsCitations": "Citations",
"settingsCitationsDescription": "How sources and studysets' bibliographies are cited on this device. Type authors' full names: each style abbreviates and orders them itself.",
"settingsCitationStyle": "Style",
"settingsCitationStyleApa": "APA (7th edition)",
"settingsCitationStyleMla": "MLA (9th edition)",
"settingsCitationStyleChicago": "Chicago (18th edition)",
"settingsCitationPreview": "Preview",
"settingsCitationGuide": "Official guide",
"settingsStudy": "Study",
"settingsStudyPomodoroTitle": "Show the Pomodoro timer while studying",
"settingsStudyPomodoroSubtitle": "Show the focus / break countdown inside the study session, so you can see the time left without opening the notification.",
"settingsVersion": "Version {version} (build {build})",
"@settingsVersion": {"placeholders": {"version": {"type": "String"}, "build": {"type": "String"}}},
"syncTitle": "Sync",
"syncStateSyncing": "Syncing…",
"syncStateSynced": "Everything synced",
"syncStateNotYet": "Not synced yet",
"syncStateFailing": "Sync is failing",
"syncStateMismatch": "This app can't sync with {server}",
"@syncStateMismatch": {"placeholders": {"server": {"type": "String"}}},
"syncMismatchDetail": "Update the app. If it is up to date, the server needs an update. What you do meanwhile stays on this device and syncs afterwards.",
"syncLastCompleted": "Last completed at {time}",
"@syncLastCompleted": {"placeholders": {"time": {"type": "String"}}},
"syncNoRunYet": "No sync has completed since the app started",
"syncLastFailed": "Last attempt failed at {time}",
"@syncLastFailed": {"placeholders": {"time": {"type": "String"}}},
"syncNow": "Sync now",
"syncTroubleLabel": "Sync needs attention",
"syncMismatchBanner": "This app can't sync with {server} any more. Update it to keep syncing.",
"@syncMismatchBanner": {"placeholders": {"server": {"type": "String"}}},
"syncMismatchMore": "More",
"tagsReadFailed": "Couldn't read the tags.",
"tagPickerTitle": "Tags",
"tagPickerManage": "Manage tags",
"tagPickerSearchLabel": "Search or create a tag",
"tagPickerCreate": "Create \"{name}\"",
"@tagPickerCreate": {"placeholders": {"name": {"type": "String"}}},
"tagSheetCreateTitle": "Create tag",
"tagSheetEditTitle": "Edit tag",
"tagSheetNameLabel": "Name",
"tagSheetNameHelper": "Stored and displayed in lowercase.",
"tagSheetNameExists": "The tag '{name}' exists already.",
"@tagSheetNameExists": {"placeholders": {"name": {"type": "String"}}},
"tagSheetNameMerges": "There is a tag '{name}' already: saving merges this one into it.",
"@tagSheetNameMerges": {"placeholders": {"name": {"type": "String"}}},
"tagSheetColor": "Colour",
"tagSheetCreate": "Create",
"tagSheetSave": "Save",
"tagManageTitle": "Manage tags",
"tagManageEmpty": "No tags yet. Add one below.",
"tagManageAdd": "Add tag",
"tagManageRow": "{name} ({count})",
"@tagManageRow": {"description": "A tag in the list of tags, with how many flashcards have it.", "placeholders": {"name": {"type": "String"}, "count": {"type": "int"}}},
"tagManageEdit": "Edit tag",
"tagManageDelete": "Delete tag",
"tagDeleteTitle": "Delete the tag '{name}'?",
"@tagDeleteTitle": {"placeholders": {"name": {"type": "String"}}},
"tagDeleteMessage": "{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.}}",
"@tagDeleteMessage": {"placeholders": {"count": {"type": "int"}}},
"tagDeleteConfirm": "Delete",
"tagDeleted": "Deleted the tag '{name}'",
"@tagDeleted": {"placeholders": {"name": {"type": "String"}}},
"studySettingsTitle": "Session settings",
"studySettingsFilterByTags": "Filter by tags",
"studySettingsNoTags": "No content tags yet. Add tags to your cards to filter them here.",
"studySettingsReset": "Reset",
"studySettingsSave": "Save",
"studySettingsHeadsUpTitle": "Heads up!",
"studySettingsHeadsUpBody": "The changes you’ve made will reload the session, and you’ll lose your current progress.",
"studySettingsApplyChanges": "Apply changes",
"studySettingsPerDay": " / day",
"studySettingsMoreTags": "+{count} more",
"@studySettingsMoreTags": {"placeholders": {"count": {"type": "int"}}},
"cardTagsLabel": "Tags",
"cardTagsAdd": "Add tags",
"cardTagsEdit": "Edit tags",
"tagChipsOverflow": "+{count, plural, =1{1 tag} other{{count} tags}}",
"@tagChipsOverflow": {"placeholders": {"count": {"type": "int"}}},
"cardHints": "Hints",
"cardHint": "Hint {number}",
"@cardHint": {"placeholders": {"number": {"type": "int"}}},
"cardAddHint": "Add hint",
"cardRemoveHint": "Remove hint",
"cardExplanation": "Explanation",
"cardAddExplanation": "Add explanation",
"cardRemoveExplanation": "Remove explanation",
"cardHintsSheetTitle": "{count, plural, =1{Hint} other{Hints {count}}}",
"@cardHintsSheetTitle": {"placeholders": {"count": {"type": "int"}}},
"cardPreviousHint": "Previous hint",
"cardNextHint": "Next hint",
"cardReport": "Report",
"cardSenses": "Senses",
"cardReportTitle": "Report an error",
"cardReportSubtitle": "Flag this card so you can find and fix it later.",
"cardReportTypo": "Typo",
"cardReportGrammar": "Grammar",
"cardReportContent": "Content",
"cardReportOther": "Other",
"cardReportNote": "Note",
"cardReportNoteHint": "What needs fixing?",
"cardReportSubmit": "Report",
"cardReported": "Flagged for fixing",
"cardResolveReport": "Resolve report",
"cardReportResolved": "Report resolved",
"cardBuriedBadge": "Buried",
"cardUnbury": "Unbury",
"cardTileBuried": "Flashcard buried until tomorrow",
"cardTileUnburied": "Flashcard unburied",
"cardDeleteTitle": "Delete flashcard?",
"cardDeleteMessage": "This flashcard will be removed from the studyset. You can undo this for a few seconds.",
"cardDeleted": "Flashcard deleted",
"cardFilterTooltip": "Filter",
"cardFilterTitle": "Filter",
"cardFilterTag": "Tag",
"cardFilterAllTags": "All tags",
"cardFilterNoTags": "None of these flashcards has a tag yet.",
"cardFilterClear": "Clear all",
"cardFilterApply": "Apply",
"cardFilterNothing": "No flashcards have this tag.",
"cardListFailed": "Couldn't read the cards.",
"cardListMore": "More",
"cardListManageTags": "Manage tags",
"composerTitle": "Create flashcards",
"composerTitleFor": "Create flashcards for \"{title}\"",
"@composerTitleFor": {"placeholders": {"title": {"type": "String"}}},
"composerEditTitle": "Edit flashcards",
"composerEditTitleFor": "Edit flashcards in \"{title}\"",
"@composerEditTitleFor": {"placeholders": {"title": {"type": "String"}}},
"composerSaving": "Saving…",
"composerSaveFailed": "Save failed — retry",
"composerAllSaved": "All changes saved",
"composerNewFlashcard": "New flashcard",
"composerCollapseStack": "Collapse stack",
"composerExpandStack": "Expand stack",
"composerStatusSaving": "Saving",
"composerStatusSaved": "Saved",
"composerStatusFailed": "Save failed",
"composerSaveFailedInline": "Save failed.",
"composerRetry": "Retry",
"composerEmptyPane": "Add a flashcard to get started.",
"composerKindFlashcard": "Flashcard",
"composerKindVocabulary": "Vocabulary",
"composerKindMatching": "Matching",
"composerKindMap": "Map",
"composerLabelFront": "Front",
"composerLabelQuestion": "Question",
"composerLabelExpression": "Expression",
"composerLabelPrompt": "Prompt",
"composerLabelBack": "Back",
"composerLabelAnswers": "Answers",
"composerLabelAnswer": "Answer",
"composerPlaceholderFront": "Add question",
"composerPlaceholderExpression": "Add expression",
"composerPlaceholderPrompt": "Add prompt",
"composerAddAnswer": "Add answer",
"composerCorrectAnswer": "Correct answer",
"composerWrongAnswer": "Wrong answer",
"composerRemoveAnswer": "Remove answer",
"composerPin": "Pin {field}: keep it for the next card",
"@composerPin": {"placeholders": {"field": {"type": "String"}}},
"composerUnpin": "Unpin {field}: clear it for the next card",
"@composerUnpin": {"placeholders": {"field": {"type": "String"}}},
"composerTags": "Tags",
"composerAddTags": "Add tags",
"composerMoreActions": "More actions",
"composerDuplicate": "Duplicate",
"composerClearFields": "Clear fields",
"composerDelete": "Delete",
"composerDeleteTitle": "Delete this flashcard?",
"composerDeleteDraftMessage": "The draft will be removed from this session. It has not been saved.",
"composerDeleteSavedMessage": "The flashcard will be removed from the studyset, on all your devices.",
"composerDiscardTitle": "{count, plural, =1{Discard unsaved flashcard?} other{Discard unsaved flashcards?}}",
"@composerDiscardTitle": {"placeholders": {"count": {"type": "int"}}},
"composerDiscardMessage": "{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.}}",
"@composerDiscardMessage": {"placeholders": {"count": {"type": "int"}}},
"composerDiscardConfirm": "Discard",
"composerConflict": "This flashcard was changed differently on two devices. Choose the version to keep of each part below.",
"composerKeepThis": "Keep this",
"formatAlignLeft": "Align left",
"formatAlignCenter": "Centre",
"formatAlignRight": "Align right",
"formatBold": "Bold",
"formatItalic": "Italic",
"formatUnderline": "Underline",
"formatSuperscript": "Superscript",
"formatSubscript": "Subscript",
"vocabularyReading": "Reading",
"vocabularyReadingHint": "Kana reading",
"vocabularyMeanings": "Meanings",
"vocabularyPrimaryMeaningHint": "Primary meaning",
"vocabularyMeaningHint": "Meaning",
"vocabularyAddMeaning": "Add meaning",
"vocabularyRemoveMeaning": "Remove meaning",
"vocabularyGlossHint": "Translation",
"vocabularyAddGloss": "Add translation",
"vocabularyRemoveGloss": "Remove translation",
"vocabularyAddSense": "Add sense",
"vocabularyRemoveSense": "Remove sense",
"matchingCategories": "Categories",
"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.",
"matchingCategory": "Category {number}",
"@matchingCategory": {"placeholders": {"number": {"type": "int"}}},
"matchingAddCategory": "Add category",
"matchingAddCategoryBlocked": "Add an item first: a card can't have more categories than items",
"matchingRemoveCategory": "Remove category",
"matchingMinCategories": "At least two categories required",
"matchingItems": "Items",
"matchingItemsHint": "The draggable items. Assign every item to its correct category: an unassigned item can never be placed right.",
"matchingItem": "Item {number}",
"@matchingItem": {"placeholders": {"number": {"type": "int"}}},
"matchingAddItem": "Add item",
"matchingUnassigned": "Unassigned",
"matchingRemoveItem": "Remove item",
"matchingMinItems": "At least two items required",
"cardTileOptions": "Options",
"cardTileEdit": "Edit",
"cardTileDelete": "Delete",
"cardTileUntitled": "Untitled",
"cardTileConflict": "Changed on two devices",
"studyClose": "Close session",
"studyReviewsDueTitle": "You have reviews due",
"studyReviewsDueBody": "{reviews, plural, =1{1 card is} other{{reviews} cards are}} due for review. Learning {news, plural, =1{1 new card} other{{news} new cards}} now will add to your review load.",
"@studyReviewsDueBody": {"placeholders": {"reviews": {"type": "int"}, "news": {"type": "int"}}},
"studyReviewsDueAllTagsNote": "“Review first” studies the whole backlog across every tag — your tag filter doesn't apply until it's clear.",
"studyReviewFirst": "Review first",
"studyLearnAnyway": "Learn anyway",
"studySettingsTagFilterPausedForBacklog": "This session is clearing your review backlog across every tag, so these tags aren't narrowing it. They apply again to your next session.",
"studyBuryCard": "Bury until tomorrow",
"studyCardBuried": "Card buried until tomorrow",
"studyUndo": "Undo",
"studyLockScreen": "Lock screen",
"studyUnlock": "Unlock",
"studyTapToUnlock": "Tap to unlock",
"studyLoadFailed": "Couldn't read this session.",
"studyRatingFailed": "Couldn't keep your rating. Rate the card again.",
"studyRetry": "Retry",
"studyScopeTitle": "Study scope",
"studyScopeDescription": "This studyset has sub-studysets. Pick which cards to review.",
"studyScopeEverythingTitle": "Everything",
"studyScopeEverythingSubtitle": "This studyset and all sub-studysets",
"studyScopeSelfTitle": "This studyset only",
"studyScopeSelfSubtitle": "Skip cards in sub-studysets",
"studyBackFirstOn": "Showing the back of cards first: tap to revert",
"studyBackFirstOff": "Show the back of cards first",
"studyShowAnswer": "Show answer",
"studyCheck": "Check",
"studySelectAll": "Select all that apply",
"studySelectOne": "Select the correct answer",
"studyMatchingInstructions": "DRAG AND DROP ONTO CARDS ABOVE",
"studyMatchingAllPlaced": "All placed",
"studyMatchingDropHere": "Drop here",
"studyMapTapPrompt": "Tap a region to answer",
"studyMapSelected": "Selected: {label}",
"@studyMapSelected": {"placeholders": {"label": {"type": "String"}}},
"studyCorrect": "Correct",
"studyCorrectLabel": "Correct — {label}",
"@studyCorrectLabel": {"placeholders": {"label": {"type": "String"}}},
"studyMapAnswer": "Answer: {answer}",
"@studyMapAnswer": {"placeholders": {"answer": {"type": "String"}}},
"studyMapPickedAnswer": "You picked {picked} · Answer: {answer}",
"@studyMapPickedAnswer": {"placeholders": {"picked": {"type": "String"}, "answer": {"type": "String"}}},
"studyRatingBad": "Bad",
"studyRatingOk": "OK",
"studyRatingGood": "Good",
"studyRatingPerfect": "Perfect",
"studyNothingTitle": "Nothing to study right now",
"studyNothingBody": "Come back later when more cards are due.",
"studyNextDue": "The next card is due in {interval}.",
"@studyNextDue": {"placeholders": {"interval": {"type": "String"}}},
"studyDone": "Done",
"studySessionComplete": "Session complete",
"studyProgressReviewed": "{reviewed} / {total} reviewed",
"@studyProgressReviewed": {"placeholders": {"reviewed": {"type": "int"}, "total": {"type": "int"}}},
"studyReviewedCount": "{reviewed} reviewed",
"@studyReviewedCount": {"placeholders": {"reviewed": {"type": "int"}}},
"studyStatCards": "Cards",
"studyStatAccuracy": "Accuracy",
"studyStatTime": "Time",
"studyDurationSec": "{sec} sec",
"@studyDurationSec": {"placeholders": {"sec": {"type": "int"}}},
"studyDurationMin": "{min} min",
"@studyDurationMin": {"placeholders": {"min": {"type": "int"}}},
"studyDurationMinSec": "{min} min {sec} sec",
"@studyDurationMinSec": {"placeholders": {"min": {"type": "int"}, "sec": {"type": "int"}}},
"studyLeaveTitle": "Leave this study session?",
"studyLeaveRated": "{count, plural, =1{Your ratings so far are saved, but the last card in this round will be discarded if you leave now.} other{Your ratings so far are saved, but the {count} cards still left in this round will be discarded if you leave now.}}",
"@studyLeaveRated": {"placeholders": {"count": {"type": "int"}}},
"studyLeaveUnrated": "{count, plural, =1{You haven’t rated this card yet — leaving ends the session without recording any progress for this round.} other{You haven’t rated any of the {count} cards in this round yet — leaving ends the session without recording any progress for it.}}",
"@studyLeaveUnrated": {"placeholders": {"count": {"type": "int"}}},
"studyLeaveConfirm": "Leave",
"studyKeepStudying": "Keep studying",
"studyInMinutes": "{count, plural, =1{in 1 min} other{in {count} min}}",
"@studyInMinutes": {"placeholders": {"count": {"type": "int"}}},
"studyInHours": "{count, plural, =1{in 1 hour} other{in {count} hours}}",
"@studyInHours": {"placeholders": {"count": {"type": "int"}}},
"studyInDays": "{count, plural, =1{in 1 day} other{in {count} days}}",
"@studyInDays": {"placeholders": {"count": {"type": "int"}}},
"studyInMonths": "{count, plural, =1{in 1 month} other{in {count} months}}",
"@studyInMonths": {"placeholders": {"count": {"type": "int"}}},
"studyInYears": "{count, plural, =1{in 1 year} other{in {count} years}}",
"@studyInYears": {"placeholders": {"count": {"type": "int"}}},
"studyContinue": "Continue learning",
"studyPrevious": "Previous card",
"studySkipCard": "Skip card",
"studyMinutes": "{count} min",
"@studyMinutes": {"placeholders": {"count": {"type": "int"}}},
"studyHours": "{count} h",
"@studyHours": {"placeholders": {"count": {"type": "int"}}},
"studyDays": "{count, plural, =1{1 day} other{{count} days}}",
"@studyDays": {"placeholders": {"count": {"type": "int"}}},
"studyMonths": "{count, plural, =1{1 month} other{{count} months}}",
"@studyMonths": {"placeholders": {"count": {"type": "int"}}},
"studyYears": "{count, plural, =1{1 year} other{{count} years}}",
"@studyYears": {"placeholders": {"count": {"type": "int"}}},
"studyFilteredBy": "{count, plural, =1{Narrowed to 1 tag} other{Narrowed to {count} tags}}",
"@studyFilteredBy": {"placeholders": {"count": {"type": "int"}}},
"studySettingsCardsPerRound": "Cards per round",
"studySettingsNewPerDay": "New cards per day",
"studySettingsNewPerDayHint": "How many never-studied cards each studyset starts a day, unless its own study options say otherwise.",
"studyOptionsTitle": "Study options",
"studyOptionsDescription": "How many cards this studyset brings a day, and which come first, on every device. The studysets inside it keep their own.",
"studyOptionsReviewsPerDay": "Reviews per day",
"studyOptionsOrder": "Order",
"studyOptionsReviewsFirst": "Reviews first",
"studyOptionsMixed": "Mixed",
"studyOptionsNewFirst": "New first",
"studyOptionsReset": "Reset to defaults",
"studySettingsUnlimited": "Unlimited",
"studySettingsSortBy": "Sort by",
"studySettingsLearnMode": "Learn mode",
"studyModeSpaced": "Spaced repetition",
"studyModeSpacedHint": "Due cards on their schedules; ratings move them.",
"studyModeCram": "Cram",
"studyModeCramHint": "Walk every card without touching the schedules.",
"studySettingsVocabulary": "Vocabulary",
"studySettingsQuizMc": "Quiz with multiple choice",
"studySettingsQuizMcDescription": "Show vocabulary cards as a multiple-choice question, with wrong answers drawn from other vocabulary in this set.",
"studyAspectMeaning": "Meaning",
"studyAspectReading": "Reading",
"studyAspectExpression": "Expression",
"studyAspectMixed": "Mixed",
"studySettingsAspectDescription": "What to recall — the meaning, the kana reading, or the expression itself (shown the meaning). Mixed varies meaning and reading per card; cards that can’t be quizzed stay a normal flip.",
"studySortOldestFirst": "Oldest first",
"studySortRandom": "Random",
"studySortNewestFirst": "Newest first",
"studyFewer": "Decrease",
"studyMore": "Increase",
"studysetMenuReset": "Reset progress",
"studysetResetTitle": "Reset progress?",
"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.",
"studysetResetConfirm": "Reset",
"studysetResetDone": "Progress reset",
"mapUnknown": "This map needs a newer version of the app.",
"mapPickRegion": "Tap the region that answers the question; pinch or scroll to zoom.",
"mapNonePicked": "No region picked yet",
"composerPlaceholderQuestion": "Add question",
"composerLabelRegion": "Answer",
"homeStreakTooltip": "Study streak",
"homeArrange": "Arrange widgets",
"homeDone": "Done",
"homeDragToReorder": "Drag to reorder",
"homeShowWidget": "Show {label}",
"@homeShowWidget": {"placeholders": {"label": {"type": "String"}}},
"homeHideWidget": "Hide {label}",
"@homeHideWidget": {"placeholders": {"label": {"type": "String"}}},
"homeAllHidden": "All widgets are hidden",
"homeAllHiddenBody": "Bring some back to fill your dashboard.",
"homeCustomise": "Customise",
"homeWidgetGoal": "Daily goal",
"homeWidgetWeek": "Week overview",
"homeWidgetActivity": "Activity heatmap",
"homeActivityTitle": "Your activity",
"streakDays": "{count, plural, =1{1 day streak} other{{count} day streak}}",
"streakStart": "Study today to start your streak.",
"streakGrow": "Keep it going: study at least once a day to grow your streak.",
"streakFirstDay": "Review some cards today to light the first day.",
"streakComeBack": "Come back tomorrow to keep your streak.",
"streakKeepAlive": "Study today to keep your streak alive.",
"goalEditTitle": "Edit study goal",
"goalSetTitle": "Set a study goal",
"goalDescriptionDaily": "Review a number of flashcards each day. Every card you rate counts.",
"goalDescriptionWeekly": "Review a number of flashcards each week, from Monday. Every card you rate counts.",
"goalPeriod": "Period",
"goalPerDay": "Per day",
"goalPerWeek": "Per week",
"goalCardsPerDay": "Cards per day",
"goalCardsPerWeek": "Cards per week",
"goalSave": "Save goal",
"goalRemove": "Remove goal",
"goalEmptySubtitle": "Review a set number of cards each day or week.",
"goalDailyHeadline": "Daily goal",
"goalWeeklyHeadline": "Weekly goal",
"goalProgressToday": "{reviewed} of {target} cards today",
"@goalProgressToday": {"placeholders": {"reviewed": {"type": "int"}, "target": {"type": "int"}}},
"goalProgressThisWeek": "{reviewed} of {target} cards this week",
"@goalProgressThisWeek": {"placeholders": {"reviewed": {"type": "int"}, "target": {"type": "int"}}},
"goalMet": "Goal met: nice work!",
"goalRemaining": "{count} to go",
"@goalRemaining": {"placeholders": {"count": {"type": "int"}}},
"weekToday": "Today",
"weekPreviousDay": "Previous day",
"weekNextDay": "Next day",
"weekRestDay": "Rest day",
"heatmapLess": "Less",
"heatmapMore": "More",
"heatmapTotal": "{count, plural, =1{1 activity in the last year} other{{count} activities in the last year}}",
"@heatmapTotal": {"placeholders": {"count": {"type": "int"}}},
"heatmapDay": "{count, plural, =1{1 activity} other{{count} activities}} · {date}",
"@heatmapDay": {"placeholders": {"count": {"type": "int"}, "date": {"type": "String"}}},
"commonCancel": "Cancel",
"commonSave": "Save",
"commonClose": "Close",
"commonUndo": "Undo",
"moreInfo": "More info",
"moreInfoCreated": "Created",
"moreInfoModified": "Last modified",
"moreInfoItemId": "Item ID",
"moreInfoStudysetId": "Studyset ID",
"moreInfoPdfId": "PDF source ID",
"moreInfoParentId": "Parent ID",
"moreInfoFile": "File",
"moreInfoReviews": "Reviews",
"moreInfoReviewCount": "Review count",
"moreInfoLastReviewed": "Last reviewed",
"moreInfoCopy": "Copy",
"copiedToClipboard": "Copied to clipboard",
"commonTryAgain": "Try again",
"personDataFailed": "Couldn't open this device's data.",
"sessionUnreachable": "Couldn't reach the server.",
"notFoundGone": "This no longer exists. It may have been deleted on another device.",
"studysetBackToLibrary": "Back to library",
"fileImage": "Image",
"fileSound": "Sound",
"fileImageUnavailable": "This image isn't on this device yet. It shows once it's uploaded and you're online.",
"fileImageUnreadable": "This image can't be shown. Its file may be damaged, or in a format this device can't read.",
"fileFromElsewhere": "Files from the web aren't shown.",
"filePlaySound": "Play sound",
"fileStopSound": "Stop sound",
"fileSoundUnavailable": "This sound isn't on this device yet. It plays once it's uploaded and you're online.",
"fileSoundUnplayable": "This sound can't be played. Its file may be damaged, or in a format this device can't play.",
"fileImages": "Images",
"fileSounds": "Sounds",
"fileNotAnImage": "This file isn't an image the app can show.",
"fileNotASound": "This file isn't a sound the app can play.",
"fileTooLarge": "This file is larger than {megabytes} MB.",
"@fileTooLarge": {
"placeholders": {
"megabytes": {"type": "int"}
}
},
"fileNotKept": "The file couldn't be kept on this device.",
"fileRemoveImage": "Remove image",
"fileRemoveSound": "Remove sound",
"editorInsert": "Insert",
"blockGroupText": "Text",
"blockGroupBlocks": "Blocks",
"blockGroupMedia": "Media",
"blockHeading": "Heading {level}",
"@blockHeading": {
"placeholders": {
"level": {"type": "int"}
}
},
"blockBulletedList": "Bulleted list",
"blockNumberedList": "Numbered list",
"blockChecklist": "Checklist",
"blockQuote": "Quote",
"blockListItem": "List item",
"blockChecklistItem": "To-do",
"editorSlashHint": "Type / to insert a block, or just start typing",
"blockDivider": "Divider",
"blockTable": "Table",
"blockRemove": "Remove",
"blockUnknown": "This part needs a newer version of the app.",
"blockCallout": "Callout",
"blockSpoiler": "Spoiler",
"calloutNote": "Note",
"calloutInfo": "Info",
"calloutTip": "Tip",
"calloutSuccess": "Success",
"calloutQuestion": "Question",
"calloutWarning": "Warning",
"calloutDanger": "Danger",
"calloutQuote": "Quote",
"calloutOptions": "Callout options",
"calloutEditTitle": "Edit title…",
"calloutFoldedAtFirst": "Folded at first",
"calloutRemove": "Remove callout",
"calloutShow": "Show",
"calloutHide": "Hide",
"calloutWriteInside": "Write inside",
"calloutTitleDialog": "Callout title",
"calloutTitleLabel": "Title",
"calloutTitleHelper": "Leave it empty to show the kind's name.",
"spoilerReveal": "Reveal",
"spoilerPlaceholder": "Hidden text, revealed on a tap",
"blockFormula": "Formula",
"formatInlineMath": "Formula in the line",
"formulaTitle": "Formula",
"formulaInLineTitle": "Formula in the line",
"formulaPreview": "Preview",
"formulaPreviewEmpty": "The formula shows here",
"formulaLatex": "LaTeX",
"formulaLatexHelper": "\\\\ starts a new line in aligned, cases or a matrix.",
"formulaEmpty": "An empty formula. Tap to write it.",
"formulaEdit": "Edit formula",
"formulaRemove": "Remove formula",
"blockYoutube": "YouTube video",
"youtubeLink": "YouTube link",
"youtubeLinkHelper": "Paste a link from YouTube.",
"youtubeNotFound": "No YouTube video in this link.",
"youtubeFound": "Found the video.",
"youtubeFoundFrom": "Found the video, starting at {time}.",
"@youtubeFoundFrom": {
"placeholders": {
"time": {"type": "String"}
}
},
"youtubeCaption": "Caption",
"youtubeCaptionHelper": "Shown in place of the video until it plays.",
"youtubeVideo": "YouTube video",
"youtubeSource": "YouTube",
"youtubeFrom": "YouTube · from {time}",
"@youtubeFrom": {
"placeholders": {
"time": {"type": "String"}
}
},
"youtubeEdit": "Edit video",
"youtubePlay": "Play video",
"youtubeOpen": "Open on YouTube",
"youtubeRemove": "Remove video",
"youtubeBroken": "This video's link can't be read.",
"youtubeNotOpened": "Couldn't open YouTube.",
"blockStudyButton": "Study button",
"studyButtonDefaultLabel": "Study",
"studyButtonStudyset": "Studyset to study",
"studyButtonTag": "Cards",
"studyButtonAllCards": "All cards",
"studyButtonLabel": "Label",
"studyButtonTopics": "With its topics",
"studyButtonBackFirst": "Back first",
"studyButtonBackFirstHelper": "Front/back and vocabulary cards ask their back.",
"studyButtonWithTag": "Tagged {tag}",
"@studyButtonWithTag": {
"placeholders": {
"tag": {"type": "String"}
}
},
"studyButtonAlone": "Without its topics",
"studyButtonEdit": "Edit study button",
"studyButtonRemove": "Remove study button",
"studyButtonBroken": "This study button doesn't say what to study.",
"studyButtonGone": "That studyset no longer exists.",
"pdfPageField": "PDF page",
"studysetTabFiles": "Files",
"pdfUploadMenu": "Upload a PDF",
"pdfFileType": "PDFs",
"pdfAdded": "Added \"{title}\".",
"@pdfAdded": {"placeholders": {"title": {"type": "String"}}},
"pdfNotPdf": "This file isn't a PDF.",
"pdfTooLarge": "This PDF is larger than {megabytes} MB.",
"@pdfTooLarge": {"placeholders": {"megabytes": {"type": "int"}}},
"pdfDuplicateTitle": "PDF already here",
"pdfDuplicateMessage": "This file is \"{title}\", which this studyset holds already. Add it as a copy, or keep the one there?",
"@pdfDuplicateMessage": {"placeholders": {"title": {"type": "String"}}},
"pdfDuplicateKeep": "Keep the one there",
"pdfDuplicateAdd": "Add a copy",
"filesEmpty": "No files yet",
"filesEmptyHint": "Use \"Add material → Upload a PDF\" to add one.",
"filesSort": "Sort",
"filesSortCustom": "Custom order",
"filesSortName": "Name (A–Z)",
"filesSortNewest": "Newest first",
"filesSortOldest": "Oldest first",
"filesSortLargest": "Largest first",
"pdfPages": "{count, plural, =1{1 page} other{{count} pages}}",
"@pdfPages": {"placeholders": {"count": {"type": "int"}}},
"pdfPercentRead": "{percent}% read",
"@pdfPercentRead": {"placeholders": {"percent": {"type": "int"}}},
"pdfDeadlineMet": "Reading deadline met",
"pdfDeadlineUpcoming": "Starts in {days, plural, =1{1 day} other{{days} days}} — {pages}/day planned",
"@pdfDeadlineUpcoming": {"placeholders": {"days": {"type": "int"}, "pages": {"type": "int"}}},
"pdfDeadlinePassed": "Deadline passed — {pages, plural, =1{1 page} other{{pages} pages}} left",
"@pdfDeadlinePassed": {"placeholders": {"pages": {"type": "int"}}},
"pdfDeadlineToday": "Due today — {pages, plural, =1{1 page} other{{pages} pages}} left",
"@pdfDeadlineToday": {"placeholders": {"pages": {"type": "int"}}},
"pdfDeadlinePace": "{pages}/day to reach page {target} in {days, plural, =1{1 day} other{{days} days}}",
"@pdfDeadlinePace": {"placeholders": {"pages": {"type": "int"}, "target": {"type": "int"}, "days": {"type": "int"}}},
"pdfOptions": "Actions",
"pdfRename": "Rename",
"pdfRenameTitle": "Rename PDF",
"pdfRenameLabel": "Title",
"pdfSetDeadline": "Set reading deadline",
"pdfEditDeadline": "Edit reading deadline",
"pdfMarkFinished": "Mark as finished",
"pdfResetReading": "Reset reading progress",
"pdfResetTitle": "Reset reading progress?",
"pdfResetMessage": "How far you've read \"{title}\" is forgotten. The PDF, its flashcards and notes stay.",
"@pdfResetMessage": {"placeholders": {"title": {"type": "String"}}},
"pdfResetConfirm": "Reset",
"pdfMoreInfo": "More info",
"pdfInfoFileName": "File name",
"pdfInfoSize": "Size",
"pdfInfoPages": "Pages",
"pdfInfoUnknown": "Known once it is opened",
"pdfDelete": "Delete",
"pdfDeleteTitle": "Delete PDF?",
"pdfDeleteMessage": "\"{title}\" is removed from this studyset, with how far it was read. Flashcards and notes made from it stay.",
"@pdfDeleteMessage": {"placeholders": {"title": {"type": "String"}}},
"pdfDeleteConfirm": "Delete",
"pdfDeleted": "PDF deleted",
"deadlineSheetSet": "Set a reading deadline",
"deadlineSheetEdit": "Edit reading deadline",
"deadlineSheetHelp": "Reach a page by a day. Progress follows the furthest page you reach as you read.",
"deadlineReachPageOf": "Reach page (of {count})",
"@deadlineReachPageOf": {"placeholders": {"count": {"type": "int"}}},
"deadlineReachPage": "Reach page",
"deadlineDecrease": "Decrease",
"deadlineIncrease": "Increase",
"deadlineChapter": "Or finish a chapter",
"deadlineChapterEntry": "{title} · to p.{page}",
"@deadlineChapterEntry": {"placeholders": {"title": {"type": "String"}, "page": {"type": "int"}}},
"deadlineBy": "By",
"deadlineStart": "Start on",
"deadlineStartToday": "Today",
"deadlineStartReset": "Start today",
"deadlineStartHelp": "The daily pace counts from this day on. Until then the PDF waits under \"Upcoming\".",
"deadlineSave": "Save deadline",
"deadlineRemove": "Remove deadline",
"readerMissing": "This PDF isn't on this device yet. It opens once the device that added it has uploaded it and you're online.",
"readerUnreadable": "This file can't be read as a PDF.",
"readerBack": "Back to studyset",
"readerSearch": "Search PDF",
"readerFitWidth": "Fit width",
"readerFitHeight": "Fit height",
"readerZoomIn": "Zoom in",
"readerZoomOut": "Zoom out",
"readerSetZoom": "Set zoom",
"readerZoomTitle": "Zoom",
"readerZoomApply": "Apply",
"readerFullscreen": "Fullscreen",
"readerExitFullscreen": "Exit fullscreen",
"readerPreviousPage": "Previous page",
"readerNextPage": "Next page",
"readerPageOf": "/ {count}",
"@readerPageOf": {"placeholders": {"count": {"type": "int"}}},
"readerFindHint": "Find in PDF",
"readerMatchOf": "{current} of {total}",
"@readerMatchOf": {"placeholders": {"current": {"type": "int"}, "total": {"type": "int"}}},
"readerPreviousMatch": "Previous match",
"readerNextMatch": "Next match",
"readerCloseSearch": "Close search",
"readerExpand": "Expand",
"readerCollapse": "Collapse",
"readerTabFlashcards": "Flashcards",
"readerTabNotes": "Notes",
"readerCardCreated": "Flashcard created",
"readerCardDeleteTitle": "Delete flashcard?",
"readerCardDeleteMessage": "The flashcard is deleted, with how it was studied.",
"readerCardDeleteConfirm": "Delete",
"readerFrontMatter": "Front matter",
"readerPage": "Page {page}",
"@readerPage": {"placeholders": {"page": {"type": "int"}}},
"readerByPage": "Page",
"readerByChapter": "Chapter",
"readerCardsEmpty": "Select text to make flashcards in no time",
"readerCardsEmptyHint": "Select the lines that matter and send them to a question or an answer, or press \"Create flashcard\".",
"readerCreateCard": "Create flashcard",
"readerEditCard": "Edit flashcard",
"readerBackToCards": "Back to flashcards",
"readerReferencedPage": "Referenced page: {page}",
"@readerReferencedPage": {"placeholders": {"page": {"type": "int"}}},
"readerUseCurrentPage": "Use current ({page})",
"@readerUseCurrentPage": {"placeholders": {"page": {"type": "int"}}},
"readerQuestion": "Question",
"readerAnswer": "Answer",
"readerKeepOpen": "Keep creation mode open",
"readerClear": "Clear",
"readerCreate": "Create",
"readerUntitledCard": "Untitled flashcard",
"readerCardOptions": "Card options",
"readerNoteSaved": "Saved",
"readerNoteEditing": "Editing…",
"readerNoteSaving": "Saving…",
"readerNoteFailed": "Save failed",
"readerToQuestion": "Question",
"readerToAnswer": "Answer",
"readerToNote": "Notes",
"readerLineBreaksJoined": "Line breaks joined (tap to keep)",
"readerLineBreaksKept": "Line breaks kept (tap to join)",
"blockScreenshot": "Screenshot of the page",
"readerCaptureCancel": "Cancel screenshot",
"readerCaptureHint": "Drag over the part of the page to keep",
"readerCaptureFailed": "The page couldn't be drawn. Try again once it has loaded.",
"readerScreenshotSaved": "Screenshot saved",
"imageOpenPdfPage": "Open the PDF at this page",
"homeWidgetDeadlines": "PDF reading deadlines",
"deadlinesTitle": "Reading deadlines",
"deadlinesCurrent": "Current",
"deadlinesUpcoming": "Upcoming",
"deadlinesProgress": "p.{furthest}/{target} · {when}",
"@deadlinesProgress": {"placeholders": {"furthest": {"type": "int"}, "target": {"type": "int"}, "when": {"type": "String"}}},
"deadlinePassedShort": "deadline passed",
"deadlineDueTodayShort": "due today",
"deadlineDaysLeft": "{days, plural, =1{1 day left} other{{days} days left}}",
"@deadlineDaysLeft": {"placeholders": {"days": {"type": "int"}}},
"deadlineToPageToday": "to p.{page} today",
"@deadlineToPageToday": {"placeholders": {"page": {"type": "int"}}},
"deadlineStartsIn": "Starts in {days, plural, =1{1 day} other{{days} days}}",
"@deadlineStartsIn": {"placeholders": {"days": {"type": "int"}}},
"deadlinesPlaceholder": "Appears when you have reading deadlines",
"deadlinesOpenTimeline": "Open the timeline",
"timelineTitle": "Reading timeline",
"timelineEmpty": "No reading deadlines yet",
"timelineEmptyHint": "Set a reading deadline on a PDF to see it here.",
"timelineToday": "Today",
"timelinePages": "p.{furthest}/{target}",
"@timelinePages": {"placeholders": {"furthest": {"type": "int"}, "target": {"type": "int"}}},
"chapterFinished": "Finished “{chapter}” — study the {count, plural, =1{card} other{{count} cards}} you made?",
"@chapterFinished": {"placeholders": {"chapter": {"type": "String"}, "count": {"type": "int"}}},
"chapterStudyNow": "Study now",
"chapterDismiss": "Dismiss",
"deadlineChapterLoading": "Loading chapters…",
"fileSizeKb": "{size} KB",
"@fileSizeKb": {"placeholders": {"size": {"type": "int"}}},
"fileSizeMb": "{size} MB",
"@fileSizeMb": {"placeholders": {"size": {"type": "String"}}},
"pdfPageShort": "p. {page}",
"@pdfPageShort": {
"placeholders": {
"page": {"type": "int"}
}
},
"ankiImportMenu": "Import from Anki",
"ankiImportFileType": "Anki decks",
"ankiImportTitle": "Import Anki deck",
"ankiImportOptionsTitle": "How should subdecks be imported?",
"ankiImportReading": "Reading the deck…",
"ankiImportSummary": "{cards, plural, =1{1 card.} other{{cards} cards.}}",
"@ankiImportSummary": {
"placeholders": {
"cards": {"type": "int"}
}
},
"ankiImportSummaryDecks": "{cards, plural, =1{1 card} other{{cards} cards}} across {decks} subdecks.",
"@ankiImportSummaryDecks": {
"placeholders": {
"cards": {"type": "int"},
"decks": {"type": "int"}
}
},
"ankiImportModeFlatten": "Flatten into this studyset",
"ankiImportModeFlattenSubtitle": "Import every card here and ignore the subdecks.",
"ankiImportModeSubStudysets": "Recreate as sub-studysets",
"ankiImportModeSubStudysetsSubtitle": "Mirror the subdeck tree: each subdeck becomes a nested studyset.",
"ankiImportModeTag": "Tag cards by subdeck",
"ankiImportModeTagSubtitle": "Keep every card here, tagged with each subdeck it came from.",
"ankiImportProgress": "Import study progress",
"ankiImportProgressSubtitle": "Bring Anki's review history over: cards continue where they left off. New cards stay new.",
"ankiImportMedia": "{count, plural, =1{Include media (1 file)} other{Include media ({count} files)}}",
"@ankiImportMedia": {
"placeholders": {
"count": {"type": "int"}
}
},
"ankiImportMediaSubtitle": "Keep the deck's images and sounds on the cards.",
"ankiImportMediaMayNotFit": "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.",
"@ankiImportMediaMayNotFit": {
"placeholders": {
"size": {"type": "String"},
"left": {"type": "String"}
}
},
"ankiImportRunning": "Importing…",
"ankiImportConfirm": "Import",
"ankiImportNotAPackage": "This isn't an Anki deck. In Anki, export a deck as an .apkg file and import that.",
"ankiImportNewerFormat": "This deck comes from a newer Anki than this app knows. Export it again with “Support older Anki versions”.",
"ankiImportUnreadable": "This deck is damaged and can't be read.",
"ankiImportBrokeOff": "The import broke off. The cards it brought in so far stay.",
"ankiImported": "{count, plural, =1{Imported 1 flashcard from Anki.} other{Imported {count} flashcards from Anki.}}",
"@ankiImported": {
"placeholders": {
"count": {"type": "int"}
}
},
"ankiImportedSubStudysets": "{count, plural, =1{Imported 1 card into sub-studysets.} other{Imported {count} cards into sub-studysets.}}",
"@ankiImportedSubStudysets": {
"placeholders": {
"count": {"type": "int"}
}
},
"ankiImportedTagged": "{count, plural, =1{Imported 1 card, tagged by subdeck.} other{Imported {count} cards, tagged by subdeck.}}",
"@ankiImportedTagged": {
"placeholders": {
"count": {"type": "int"}
}
},
"ankiImportFilesSkipped": "{count, plural, =1{1 media file couldn't be imported.} other{{count} media files couldn't be imported.}}",
"@ankiImportFilesSkipped": {
"placeholders": {
"count": {"type": "int"}
}
},
"pomodoroTitle": "Pomodoro",
"pomodoroFocus": "Focus",
"pomodoroShortBreak": "Short break",
"pomodoroLongBreak": "Long break",
"pomodoroFocusOf": "Focus {done} of {total}",
"@pomodoroFocusOf": {"placeholders": {"done": {"type": "int"}, "total": {"type": "int"}}},
"pomodoroStart": "Start",
"pomodoroPause": "Pause",
"pomodoroResume": "Resume",
"pomodoroSkip": "Skip",
"pomodoroStop": "Stop",
"pomodoroPaused": "Paused",
"pomodoroPausedProfile": "Paused · {profile}",
"@pomodoroPausedProfile": {"placeholders": {"profile": {"type": "String"}}},
"pomodoroClassic": "Classic",
"pomodoroUnnamed": "Unnamed profile",
"pomodoroProfiles": "Pomodoro profiles",
"pomodoroChooseProfile": "Choose a profile",
"pomodoroAddProfile": "Add a profile",
"pomodoroEditProfile": "Edit profile",
"pomodoroName": "Name",
"pomodoroFocusLength": "Focus",
"pomodoroShortBreakLength": "Short break",
"pomodoroLongBreakLength": "Long break",
"pomodoroMinutes": "{count} min",
"@pomodoroMinutes": {"placeholders": {"count": {"type": "int"}}},
"pomodoroNoLongBreak": "None",
"pomodoroLongBreakAfter": "Focus phases before a long break",
"pomodoroAutoStartBreaks": "Start breaks by themselves",
"pomodoroAutoStartFocus": "Start focus by itself after a break",
"pomodoroDoNotDisturb": "Do Not Disturb while focusing",
"pomodoroDoNotDisturbHint": "The device keeps quiet while you focus; the alert at its end still sounds.",
"pomodoroDoNotDisturbDenied": "The app may not keep this device quiet. Allow it in the system's settings.",
"pomodoroDeleteProfile": "Delete profile",
"pomodoroSummary": "{focus} min focus, {shortBreak} min break",
"@pomodoroSummary": {"placeholders": {"focus": {"type": "int"}, "shortBreak": {"type": "int"}}},
"pomodoroSummaryLong": "{focus} min focus, {shortBreak} min break, {longBreak} min after {after}",
"@pomodoroSummaryLong": {"placeholders": {"focus": {"type": "int"}, "shortBreak": {"type": "int"}, "longBreak": {"type": "int"}, "after": {"type": "int"}}},
"pomodoroAlertFocusDone": "Time for a break",
"pomodoroAlertBreakDone": "Back to focus",
"pomodoroAlertStarts": "{phase} has started.",
"@pomodoroAlertStarts": {"placeholders": {"phase": {"type": "String"}}},
"pomodoroAlertWaits": "{phase} is ready when you are.",
"@pomodoroAlertWaits": {"placeholders": {"phase": {"type": "String"}}},
"homeWidgetPomodoro": "Pomodoro timer",
"pomodoroAlerts": "Pomodoro alerts",
"pomodoroUntil": "Until {time}",
"@pomodoroUntil": {"placeholders": {"time": {"type": "String"}}},
"pomodoroLeft": "{left} left",
"@pomodoroLeft": {"placeholders": {"left": {"type": "String"}}},
"pathImportAtStep": "Step {step}: {problem}",
"@pathImportAtStep": {"placeholders": {"step": {"type": "int"}, "problem": {"type": "String"}}},
"pathImportNotJson": "This is no JSON: {detail}",
"@pathImportNotJson": {"placeholders": {"detail": {"type": "String"}}},
"pathImportNoPath": "a \"path\" object is missing.",
"pathImportNoTitle": "the path has no \"title\".",
"pathImportDescriptionNotText": "the path's \"description\" is no text.",
"pathImportNotAnObject": "no object.",
"pathImportUnknownStepType": "unknown \"type\": {detail}.",
"@pathImportUnknownStepType": {"placeholders": {"detail": {"type": "String"}}},
"pathImportRightOptionMissing": "its right option {detail} is not among its options.",
"@pathImportRightOptionMissing": {"placeholders": {"detail": {"type": "String"}}},
"pathImportRightOptionsMissing": "it names a right option that is not among its options.",
"pathImportNoPairing": "no \"correct_pairing\".",
"pathImportPairingTargetMissing": "it pairs items with a target that isn't there: {detail}.",
"@pathImportPairingTargetMissing": {"placeholders": {"detail": {"type": "String"}}},
"pathImportPairingIncomplete": "every item must be paired with one target.",
"pathImportNoPassage": "no \"passage\".",
"pathImportBlanksMismatch": "it needs one word in \"blanks\" for each ___ in its passage.",
"pathImportBlockWithoutType": "a block without \"type\".",
"pathImportMalformedLevel": "a heading with a malformed level.",
"pathImportMalformedListItem": "a malformed list item.",
"pathImportMalformedMath": "a malformed math block.",
"pathImportMalformedCode": "a malformed code block.",
"pathImportUnknownBlock": "an unknown block: {detail}.",
"@pathImportUnknownBlock": {"placeholders": {"detail": {"type": "String"}}},
"pathImportTextlessBlock": "a {detail} without \"text\" or \"runs\".",
"@pathImportTextlessBlock": {"placeholders": {"detail": {"type": "String"}}},
"pathImportMalformedRun": "a malformed run of text.",
"pathImportListExpected": "a list was expected.",
"pathImportNotText": "\"{detail}\" must be text.",
"@pathImportNotText": {"placeholders": {"detail": {"type": "String"}}},
"pathImportTooFew": "it needs at least two \"{detail}\".",
"@pathImportTooFew": {"placeholders": {"detail": {"type": "String"}}},
"pathImportMalformedNumber": "a malformed number.",
"pathImportTitleNotText": "a title must be text.",
"pathImportMalformedSource": "a source must be an object or text, and its parts text.",
"pomodoroTopBarHint": "The timer can count down in GNOME's top bar, with its buttons, once the AppIndicator extension is on.",
"pomodoroTopBarSetUp": "Set up",
"pomodoroTopBarDismiss": "Don't suggest again"
}