The import format gains the blocks lessons need: tables (rows of cells), callouts (a kind, a title, blocks inside, but no table or callout), spoilers, quotes and dividers; and runs of text gain a reading shown as furigana, a colour, underline and strikethrough. A line break is a "\n" in the text. Still simple blocks turned into rich text here, so a change of the editor's own format never breaks a file written before. A table's columns are as wide as their longest line, narrowed alike to fit a phone, where the cells wrap. A studyset's Import › Learning paths now takes several files at once, one path each, stored in the order of their names, so a chapter's lessons come in with one pick. Every file is read before anything is stored: one that can't be read is named, and nothing comes in. 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>
1895 lines
101 KiB
Text
1895 lines
101 KiB
Text
{
|
||
"@@locale": "en",
|
||
|
||
"appTitle": "Halkyon Learn",
|
||
"launchBrand": "Halkyon",
|
||
"launchProduct": "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",
|
||
"libraryImportArchive": "Halkyon archive",
|
||
"libraryImportArchiveHint": "A studyset with everything in it and its progress, from a .zip file",
|
||
"archiveFileType": "Halkyon archive",
|
||
"archiveImportTitle": "Import archive",
|
||
"archiveImportReading": "Reading the archive…",
|
||
"archiveImportHolds": "“{title}” holds:",
|
||
"@archiveImportHolds": {"placeholders": {"title": {"type": "String"}}},
|
||
"archiveCountStudysets": "{count, plural, =1{1 studyset} other{{count} studysets}}",
|
||
"@archiveCountStudysets": {"placeholders": {"count": {"type": "int"}}},
|
||
"archiveCountReviews": "{count, plural, =1{1 review} other{{count} reviews}}",
|
||
"@archiveCountReviews": {"placeholders": {"count": {"type": "int"}}},
|
||
"archiveImportConfirm": "Import",
|
||
"archiveImported": "Imported: {cards} and {reviews}.",
|
||
"@archiveImported": {"placeholders": {"cards": {"type": "String"}, "reviews": {"type": "String"}}},
|
||
"archiveImportMissingEntries": "{count, plural, =1{1 word isn't} other{{count} words aren't}} in this instance's dictionary and stayed out.",
|
||
"@archiveImportMissingEntries": {"placeholders": {"count": {"type": "int"}}},
|
||
"archiveNotAnArchive": "This file isn't a Halkyon archive.",
|
||
"archiveNewerFormat": "This archive comes from a newer version of the app. Update the app to import it.",
|
||
"archiveUnreadable": "This archive can't be read.",
|
||
"archiveImportBrokeOff": "The import broke off. Check the connection and try again.",
|
||
"libraryRetry": "Retry",
|
||
"studysetNoContent": "No content yet",
|
||
"studysetEmpty": "Empty",
|
||
"studysetActionReview": "Review",
|
||
"studysetActionStudy": "Study",
|
||
"studysetActionAdd": "Add content",
|
||
"studysetArchived": "Archived",
|
||
"studysetStar": "Star",
|
||
"studysetUnstar": "Unstar",
|
||
"studysetByYou": "By you",
|
||
"studysetByAuthor": "By {author}",
|
||
"@studysetByAuthor": {"placeholders": {"author": {"type": "String"}}},
|
||
"studysetByOthers": "A copy",
|
||
"studysetVisibilityPrivate": "Private",
|
||
"studysetVisibilityPublic": "Public",
|
||
"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"}}},
|
||
"pathImportFileFailed": "Couldn't import {file}. {reason}",
|
||
"@pathImportFileFailed": {"placeholders": {"file": {"type": "String"}, "reason": {"type": "String"}}},
|
||
"pathsImported": "{steps, plural, =0{Imported {count} paths without steps.} =1{Imported {count} paths with 1 step.} other{Imported {count} paths with {steps} steps.}}",
|
||
"@pathsImported": {"placeholders": {"count": {"type": "int"}, "steps": {"type": "int"}}},
|
||
"pathImportUnreadable": "It isn't text in UTF-8.",
|
||
"pathsEmpty": "No paths yet",
|
||
"pathsEmptyHint": "A path leads through a lesson, step by step. Use \"Add material → Create a path\" to write one, or \"⋮ → Import content\" to import one.",
|
||
"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": "Use \"Add material → Create a note\" to write one.",
|
||
"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": "Use \"Add material → Create flashcards\" to write some, or \"⋮ → Import content\" to bring in an Anki deck or a list.",
|
||
"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 paths",
|
||
"studysetImportPathHint": "From Halkyon path JSON files, one path each",
|
||
"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. A field in double quotes, as spreadsheets write them, may hold separators and line breaks.",
|
||
"cardTextImportHint": "Paste the cards here",
|
||
"cardTextImportLoadFile": "Load a CSV or TSV file",
|
||
"cardTextImportFileType": "CSV or TSV files",
|
||
"cardTextImportUnreadable": "This file doesn't hold text.",
|
||
"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",
|
||
"studysetTopicCount": "{count, plural, =1{1 topic} other{{count} topics}}",
|
||
"@studysetTopicCount": {"placeholders": {"count": {"type": "int"}}},
|
||
"studysetShowInnerTopics": "Show the topics inside",
|
||
"studysetHideInnerTopics": "Hide the topics inside",
|
||
"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",
|
||
"studysetSheetLanguages": "Languages",
|
||
"studysetSheetSetLanguages": "Set languages",
|
||
"studysetSheetLanguagesHelper": "Which language each side of the cards is in. Chinese, Japanese and Korean then show in their own character shapes.",
|
||
"studysetSheetLanguagesInherited": "Off, or with neither side set, it takes the languages of the studyset it is in.",
|
||
"studysetSheetFrontLanguage": "Front language",
|
||
"studysetSheetBackLanguage": "Back language",
|
||
"studysetSheetLanguageNotSet": "Not set",
|
||
"studysetSheetLicense": "Licence",
|
||
"studysetSheetLicenseHelp": "Help me choose",
|
||
"studysetSheetLicenseLabel": "Licence",
|
||
"studysetSheetLicenseHelper": "The terms others may use the content under, shown below the studyset with a link to them. Examples: CC-BY-4.0, CC-BY-SA-4.0, MIT, All Rights Reserved.",
|
||
"studysetSheetLicenseYear": "Year",
|
||
"studysetSheetLicenseYearHelper": "The copyright year, shown as “© 2019 Name”. Optional.",
|
||
"studysetSheetLicenseYearInvalid": "Enter a year between {min} and {max}.",
|
||
"@studysetSheetLicenseYearInvalid": {"placeholders": {"min": {"type": "int"}, "max": {"type": "int"}}},
|
||
"studysetSheetLicenseHolder": "Licence holder",
|
||
"studysetSheetLicenseHolderHelper": "Who to credit: a name or an organisation.",
|
||
"studysetSheetLicenseNewer": "{license} is an older Creative Commons licence. Its current version, {current}, may fit better.",
|
||
"@studysetSheetLicenseNewer": {"placeholders": {"license": {"type": "String"}, "current": {"type": "String"}}},
|
||
"licenseChooserTitle": "Choose a licence",
|
||
"licenseChooserSubtitle": "A few questions to find the Creative Commons licence that fits how you want your work shared.",
|
||
"licenseChooserIntroPrompt": "Do you want to keep any rights to your work?",
|
||
"licenseChooserIntroYes": "Yes, share it under a licence",
|
||
"licenseChooserIntroYesDetail": "Others must follow the conditions you choose next.",
|
||
"licenseChooserIntroNo": "No, dedicate it to the public domain",
|
||
"licenseChooserIntroNoDetail": "CC0: anyone may use it for anything, without conditions.",
|
||
"licenseChooserCommercialPrompt": "Allow others to use your work commercially?",
|
||
"licenseChooserYes": "Yes",
|
||
"licenseChooserCommercialYesDetail": "Including for profit.",
|
||
"licenseChooserNo": "No",
|
||
"licenseChooserCommercialNoDetail": "Non-commercial uses only (NC).",
|
||
"licenseChooserAdaptationsPrompt": "Allow others to adapt or build upon your work?",
|
||
"licenseChooserAdaptationsYesDetail": "Remixes and adaptations are allowed.",
|
||
"licenseChooserAdaptationsShareAlike": "Yes, if they share alike",
|
||
"licenseChooserAdaptationsShareAlikeDetail": "Adaptations carry this same licence (SA).",
|
||
"licenseChooserAdaptationsNoDetail": "Sharing only, no adaptations (ND).",
|
||
"licenseChooserBack": "Back",
|
||
"licenseChooserRecommended": "Recommended licence",
|
||
"licenseChooserUse": "Use this licence",
|
||
"licenseSummaryCc0": "Anyone may use it for anything, without conditions or credit.",
|
||
"licenseSummaryBy": "Others may share and adapt it, even commercially, as long as they credit you.",
|
||
"licenseSummaryBySa": "Others may share and adapt it, even commercially, if they credit you and license their adaptations the same way.",
|
||
"licenseSummaryByNc": "Others may share and adapt it for non-commercial purposes, with credit to you.",
|
||
"licenseSummaryByNcSa": "Others may share and adapt it non-commercially, with credit and the same licence on adaptations.",
|
||
"licenseSummaryByNd": "Others may share it, even commercially, with credit, but may not share adaptations.",
|
||
"licenseSummaryByNcNd": "Others may share it non-commercially, with credit, but may not adapt it: the strictest Creative Commons licence.",
|
||
"languageArabic": "Arabic",
|
||
"languageGerman": "German",
|
||
"languageGreek": "Greek",
|
||
"languageEnglish": "English",
|
||
"languageSpanish": "Spanish",
|
||
"languageFrench": "French",
|
||
"languageHebrew": "Hebrew",
|
||
"languageHindi": "Hindi",
|
||
"languageItalian": "Italian",
|
||
"languageJapanese": "Japanese",
|
||
"languageKorean": "Korean",
|
||
"languageDutch": "Dutch",
|
||
"languagePolish": "Polish",
|
||
"languagePortuguese": "Portuguese",
|
||
"languageRussian": "Russian",
|
||
"languageSwedish": "Swedish",
|
||
"languageThai": "Thai",
|
||
"languageTurkish": "Turkish",
|
||
"languageUkrainian": "Ukrainian",
|
||
"languageVietnamese": "Vietnamese",
|
||
"languageChineseSimplified": "Chinese (Simplified)",
|
||
"languageChineseTraditional": "Chinese (Traditional)",
|
||
"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",
|
||
"publicProfileTitle": "Public profile",
|
||
"publicProfileIntro": "How others see you once you publish: the handle they find you by, your name, a few words and links. Nothing here shows until you save it.",
|
||
"publicProfileAnonymousHint": "Sign in with GitHub to have a public profile and publish.",
|
||
"publicProfileDisplayName": "Display name",
|
||
"publicProfileDisplayNameHint": "The name shown beside your handle",
|
||
"publicProfileHandle": "Handle",
|
||
"publicProfileHandleHint": "Letters, digits and underscores, up to 30",
|
||
"publicProfileAddress": "Others find you as @{address}",
|
||
"@publicProfileAddress": {"placeholders": {"address": {"type": "String"}}},
|
||
"publicProfileHandleFixed": "Fixed since you published: others refer to it.",
|
||
"publicProfileBio": "Bio",
|
||
"publicProfileLinks": "Links",
|
||
"publicProfileLinksHint": "Your site or other accounts, up to 4.",
|
||
"publicProfileLinkHint": "https://…",
|
||
"publicProfileAddLink": "Add link",
|
||
"publicProfileRemoveLink": "Remove link",
|
||
"publicProfileSaved": "Profile saved.",
|
||
"publicProfileRemove": "Remove profile",
|
||
"publicProfileRemoveTitle": "Remove your public profile?",
|
||
"publicProfileRemoveMessage": "Your handle becomes free for others to take.",
|
||
"publicProfileRemoved": "Profile removed.",
|
||
"publicProfileFailed": "Couldn't reach the instance. Try again.",
|
||
"publicProfileUnreachable": "Your public profile can't be reached right now.",
|
||
"publicProfileRetry": "Retry",
|
||
"profileProblemHandleInvalid": "A handle is 1 to 30 letters (a to z), digits or underscores.",
|
||
"profileProblemHandleReserved": "This handle is kept for the instance.",
|
||
"profileProblemHandleTaken": "Someone else has this handle.",
|
||
"profileProblemPublished": "You have published: your handle can't change, nor your profile go.",
|
||
"profileProblemDisplayNameTooLong": "At most 30 characters.",
|
||
"profileProblemBioTooLong": "At most 500 characters.",
|
||
"profileProblemTooManyLinks": "At most 4 links.",
|
||
"profileProblemLinkInvalid": "Links start with https:// or http://.",
|
||
"profileProblemAvatarInvalid": "This picture can't be used: choose a PNG, JPEG, WebP or GIF image.",
|
||
"publicProfilePicture": "Picture",
|
||
"publicProfileChoosePicture": "Choose picture",
|
||
"publicProfileRemovePicture": "Remove picture",
|
||
"publicProfilePictureType": "Images",
|
||
"publicProfilePictureLater": "Save your profile to add a picture.",
|
||
|
||
"settingsTitle": "Settings",
|
||
"settingsAccount": "Account",
|
||
"instanceWelcome": "Welcome to Halkyon Learn",
|
||
"instanceFirstStartSubtitle": "Choose the instance to keep your studysets on. Someone runs each one; you can add others later.",
|
||
"instanceAddress": "Instance address",
|
||
"instanceUseBuiltIn": "Use {name}",
|
||
"@instanceUseBuiltIn": {"placeholders": {"name": {"type": "String"}}},
|
||
"instanceContinue": "Continue",
|
||
"instanceAddressRequired": "Enter the address of an instance.",
|
||
"instanceAddressInvalid": "This isn't an address.",
|
||
"instanceUnreachable": "No instance of Halkyon Learn answers at {name}.",
|
||
"@instanceUnreachable": {"placeholders": {"name": {"type": "String"}}},
|
||
"instanceOpenFailed": "Couldn't open the app on {name}.",
|
||
"@instanceOpenFailed": {"placeholders": {"name": {"type": "String"}}},
|
||
"settingsSwitchAccount": "Switch account",
|
||
"accountsTitle": "Accounts",
|
||
"accountAdd": "Add account",
|
||
"accountAddSubtitle": "Choose the instance for the account to add.",
|
||
"accountRemoveTooltip": "Remove account",
|
||
"accountRemoveTitle": "Remove account?",
|
||
"accountRemoveMessage": "Removes the account on {name} from this device, with all the device holds of it. What it synced stays on {name}: sign in there with GitHub to have it again. An anonymous account can't be signed into again.",
|
||
"@accountRemoveMessage": {"placeholders": {"name": {"type": "String"}}},
|
||
"accountRemoveConfirm": "Remove",
|
||
"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",
|
||
"syncPending": "{count, plural, =1{1 change waits to sync} other{{count} changes wait to sync}}",
|
||
"@syncPending": {"placeholders": {"count": {"type": "int"}}},
|
||
"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.",
|
||
"notesReadFailed": "Couldn't read the notes.",
|
||
"pathsReadFailed": "Couldn't read the learning paths.",
|
||
"filesReadFailed": "Couldn't read the files.",
|
||
"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": "Capitals don't make another tag: 'Noun' and 'noun' are one.",
|
||
"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",
|
||
"cardDictionaryEntry": "Dictionary entry",
|
||
"cardDictionaryVersion": "Dictionary version",
|
||
"studysetFromDictionary": "From the dictionary",
|
||
"dictionaryTitle": "Dictionary",
|
||
"dictionarySearchHint": "A word in kanji, kana or romaji, or a meaning",
|
||
"dictionaryNothingFound": "Nothing found for “{query}”.",
|
||
"@dictionaryNothingFound": {"placeholders": {"query": {"type": "String"}}},
|
||
"dictionaryUnreachable": "The dictionary can't be reached right now.",
|
||
"dictionaryRetry": "Retry",
|
||
"dictionaryAddFailed": "Couldn't add the words. Try again.",
|
||
"dictionaryMakingCards": "Making the cards…",
|
||
"dictionaryNone": "This studyset's language has no dictionary on this instance.",
|
||
"dictionaryAdd": "Add",
|
||
"dictionaryInStudyset": "In this studyset",
|
||
"dictionaryAdded": "Added “{word}”.",
|
||
"@dictionaryAdded": {"placeholders": {"word": {"type": "String"}}},
|
||
"dictionaryLevels": "Add a whole level",
|
||
"dictionaryLevelsHint": "Every word of a level becomes a flashcard, in the order of the level's list, tagged with its level and word class. Words already in this studyset are left out.",
|
||
"dictionaryLabelCommon": "Common",
|
||
"dictionaryAddLevel": "{count, plural, =1{Add 1 word} other{Add {count} words}}",
|
||
"@dictionaryAddLevel": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryAddingLevel": "Adding… {done} of {count}",
|
||
"@dictionaryAddingLevel": {"placeholders": {"done": {"type": "int"}, "count": {"type": "int"}}},
|
||
"dictionaryWordsAdded": "{count, plural, =0{No new words.} =1{Added 1 word.} other{Added {count} words.}}",
|
||
"@dictionaryWordsAdded": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryWordsSkipped": "{count, plural, =1{1 was in this studyset already.} other{{count} were in this studyset already.}}",
|
||
"@dictionaryWordsSkipped": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryConfirmTitle": "Add {count} words?",
|
||
"@dictionaryConfirmTitle": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryConfirmMessage": "Each becomes a flashcard in this studyset.",
|
||
"dictionaryConfirmAdd": "Add",
|
||
"dictionaryCredits": "Words from {sources}.",
|
||
"@dictionaryCredits": {"placeholders": {"sources": {"type": "String"}}},
|
||
"dictionaryLookUp": "Look up in the dictionary",
|
||
"dictionaryCharacterSearchHint": "A kanji or kana, a reading in kana or romaji, or a meaning",
|
||
"dictionaryTabWords": "Words",
|
||
"dictionaryTabCharacters": "Kanji & kana",
|
||
"dictionaryLabelHiragana": "Hiragana",
|
||
"dictionaryLabelKatakana": "Katakana",
|
||
"dictionaryGrade": "Grade {grade}",
|
||
"@dictionaryGrade": {"placeholders": {"grade": {"type": "int"}}},
|
||
"dictionaryLabelSecondary": "Secondary school",
|
||
"dictionaryGroupKana": "Kana",
|
||
"dictionaryGroupJlpt": "JLPT levels",
|
||
"dictionaryGroupGrades": "School grades",
|
||
"dictionaryStrokes": "{count, plural, =1{1 stroke} other{{count} strokes}}",
|
||
"@dictionaryStrokes": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryTabRadicals": "Radicals",
|
||
"dictionaryRadicalsHint": "The 214 radicals that dictionaries order kanji by, grouped by their strokes. Choose one for the kanji written with it.",
|
||
"dictionaryAllRadicals": "All radicals",
|
||
"dictionaryRadicalNumber": "Radical {number}",
|
||
"@dictionaryRadicalNumber": {"placeholders": {"number": {"type": "int"}}},
|
||
"dictionaryRadicalKanjiCount": "{count} kanji",
|
||
"@dictionaryRadicalKanjiCount": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryRadicalNone": "The instance's dictionary has no kanji under this radical yet.",
|
||
"dictionaryCharacterLevelsHint": "Every character of a level becomes a flashcard, in the order of the level's list, tagged with its level, school grade or script. Characters already in this studyset are left out.",
|
||
"dictionaryAddCharacters": "{count, plural, =1{Add 1 character} other{Add {count} characters}}",
|
||
"@dictionaryAddCharacters": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryCharactersAdded": "{count, plural, =0{No new characters.} =1{Added 1 character.} other{Added {count} characters.}}",
|
||
"@dictionaryCharactersAdded": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryConfirmCharactersTitle": "Add {count} characters?",
|
||
"@dictionaryConfirmCharactersTitle": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryCharacterCredits": "Characters from {sources}.",
|
||
"@dictionaryCharacterCredits": {"placeholders": {"sources": {"type": "String"}}},
|
||
"dictionaryUpdatesBehind": "{count, plural, =1{1 card is behind the dictionary: its entry was corrected since it was made.} other{{count} cards are behind the dictionary: their entries were corrected since they were made.}}",
|
||
"@dictionaryUpdatesBehind": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryUpdatesTake": "Take the corrections",
|
||
"dictionaryUpdatesTaken": "{count, plural, =1{1 card updated.} other{{count} cards updated.}}",
|
||
"@dictionaryUpdatesTaken": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryUpdatesToSettle": "{count, plural, =1{One has a change of yours there too: open it to choose.} other{{count} have a change of yours there too: open them to choose.}}",
|
||
"@dictionaryUpdatesToSettle": {"placeholders": {"count": {"type": "int"}}},
|
||
"dictionaryUpdatesFailed": "Couldn't take the corrections. Try again.",
|
||
"kanjiStrokeOrder": "Stroke order",
|
||
"kanjiPlayAgain": "Play again",
|
||
"kanjiNoStrokes": "There's no stroke order for this character.",
|
||
"kanjiComponents": "Components",
|
||
"studySettingsCharacters": "Kanji & kana",
|
||
"studySettingsWriteByHand": "Write by hand",
|
||
"studySettingsWriteByHandDescription": "Kanji, kana and words are written stroke by stroke and checked as you go, on a schedule of their own. Words written aren't quizzed or typed.",
|
||
"writingHint": "Hint",
|
||
"writingShow": "Show it",
|
||
"writingMistakes": "{count, plural, =0{No mistakes} =1{1 mistake} other{{count} mistakes}}",
|
||
"@writingMistakes": {"placeholders": {"count": {"type": "int"}}},
|
||
"writingWrongOrder": "Not yet: that stroke comes later.",
|
||
"writingWrong": "That isn't the next stroke.",
|
||
"writingSuggested": "{rating} suggested",
|
||
"@writingSuggested": {"placeholders": {"rating": {"type": "String"}}},
|
||
"writingNoStrokes": "There's no stroke order for these characters: rate how well you knew them.",
|
||
"aboutDictionaries": "Dictionaries on this instance",
|
||
"aboutAppData": "Data in the app",
|
||
"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",
|
||
"composerKindCharacter": "Character",
|
||
"composerLabelFront": "Front",
|
||
"composerLabelQuestion": "Question",
|
||
"composerLabelExpression": "Expression",
|
||
"composerLabelPrompt": "Prompt",
|
||
"composerLabelCharacter": "Character",
|
||
"composerLabelBack": "Back",
|
||
"composerLabelAnswers": "Answers",
|
||
"composerLabelAnswer": "Answer",
|
||
"composerPlaceholderFront": "Add question",
|
||
"composerPlaceholderExpression": "Add expression",
|
||
"composerPlaceholderPrompt": "Add prompt",
|
||
"composerPlaceholderCharacter": "Add a kanji or kana",
|
||
"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 in two ways at once: on two of your devices, or by you and by a correction from the dictionary or a new release of what it was copied from. Choose the version to keep of each part below.",
|
||
"composerKeepThis": "Keep this",
|
||
"formatAlignLeft": "Align left",
|
||
"formatAlignCenter": "Centre",
|
||
"formatAlignRight": "Align right",
|
||
"formatBold": "Bold",
|
||
"formatItalic": "Italic",
|
||
"formatUnderline": "Underline",
|
||
"formatSuperscript": "Superscript",
|
||
"formatSubscript": "Subscript",
|
||
"formatRuby": "Furigana (a reading above the text)",
|
||
"rubyTitle": "Furigana",
|
||
"rubyReading": "Reading",
|
||
"rubyReadingHint": "In kana, e.g. かんじ",
|
||
"rubySave": "Save",
|
||
"rubyRemove": "Remove",
|
||
"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",
|
||
"characterPrimaryMeaningHint": "Primary meaning, or a kana's romaji",
|
||
"characterOnReadings": "On readings",
|
||
"characterOnReadingsHint": "From Chinese, in katakana: ショク、ジキ",
|
||
"characterKunReadings": "Kun readings",
|
||
"characterKunReadingsHint": "Japanese, in hiragana, okurigana after a dot: た.べる",
|
||
"characterOn": "On",
|
||
"characterKun": "Kun",
|
||
"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.",
|
||
"studySettingsTypeReading": "Type the reading",
|
||
"studySettingsTypeReadingDescription": "Words with kanji ask for their reading, typed in kana; romaji turn into kana as you type.",
|
||
"studyTypedHint": "The reading, in kana or romaji",
|
||
"studyTypedRight": "Right",
|
||
"studyTypedWrong": "You typed {answer}",
|
||
"@studyTypedWrong": {"placeholders": {"answer": {"type": "String"}}},
|
||
"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",
|
||
"countStepperType": "Type a number",
|
||
"studyLimitNewPerDay": "Limit new cards per day",
|
||
"studyLimitReviewsPerDay": "Limit reviews per day",
|
||
|
||
"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.",
|
||
"pathImportMalformedTable": "a table needs \"rows\" of cells, each as long as the first.",
|
||
"pathImportMalformedCallout": "a callout with a malformed {detail}.",
|
||
"@pathImportMalformedCallout": {"placeholders": {"detail": {"type": "String"}}},
|
||
"pathImportNotInCallout": "a {detail} can't be inside a callout.",
|
||
"@pathImportNotInCallout": {"placeholders": {"detail": {"type": "String"}}},
|
||
"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",
|
||
"cardBrowserTitle": "Flashcards",
|
||
"cardBrowserTitleWithName": "{title} — flashcards",
|
||
"@cardBrowserTitleWithName": {"placeholders": {"title": {"type": "String"}}},
|
||
"cardBrowserTitleSubtree": "{title} (incl. sub-studysets)",
|
||
"@cardBrowserTitleSubtree": {"placeholders": {"title": {"type": "String"}}},
|
||
"cardBrowserBrowse": "Browse",
|
||
"cardBrowserBrowseTooltip": "Browse flashcards",
|
||
"cardBrowserStudy": "Study",
|
||
"cardBrowserEditor": "Editor",
|
||
"cardBrowserMore": "More",
|
||
"cardBrowserImport": "Import flashcards",
|
||
"cardBrowserGrid": "Grid",
|
||
"cardBrowserDetail": "Detail",
|
||
"cardBrowserSearch": "Search",
|
||
"cardBrowserSort": "Sort",
|
||
"cardBrowserFilter": "Filter",
|
||
"cardBrowserSelect": "Select",
|
||
"cardBrowserSortManual": "Manual order",
|
||
"cardBrowserSortNewest": "Newest first",
|
||
"cardBrowserSortOldest": "Oldest first",
|
||
"cardBrowserSortAlphabetical": "A–Z (front)",
|
||
"cardBrowserSortDue": "Due first",
|
||
"cardBrowserSearchHint": "Search flashcards",
|
||
"cardBrowserCloseSearch": "Close search",
|
||
"cardBrowserClearQuery": "Clear query",
|
||
"cardBrowserFilterTitle": "Filter flashcards",
|
||
"cardBrowserFilterType": "Type",
|
||
"cardBrowserTypeAll": "All cards",
|
||
"cardBrowserTypeFrontBack": "Q&A only",
|
||
"cardBrowserTypeMultipleChoice": "Multiple-choice only",
|
||
"cardBrowserTypeVocabulary": "Words only",
|
||
"cardBrowserTypeMatching": "Matching only",
|
||
"cardBrowserTypeMap": "Maps only",
|
||
"cardBrowserTypeCharacter": "Characters only",
|
||
"cardBrowserFilterTag": "Tag",
|
||
"cardBrowserAllTags": "All tags",
|
||
"cardBrowserFilterStatus": "Status",
|
||
"cardBrowserStatusNew": "New",
|
||
"cardBrowserStatusLearning": "Learning",
|
||
"cardBrowserStatusDue": "Due",
|
||
"cardBrowserStatusBuried": "Buried",
|
||
"cardBrowserStatusReported": "Reported",
|
||
"cardBrowserClearAll": "Clear all",
|
||
"cardBrowserApply": "Apply",
|
||
"cardBrowserEmptyTitle": "No flashcards yet",
|
||
"cardBrowserEmptyHint": "Create some to browse them here.",
|
||
"cardBrowserCreate": "Create flashcards",
|
||
"cardBrowserNoMatches": "No flashcards match",
|
||
"cardBrowserNoMatchesHint": "Try a different search or filter.",
|
||
"cardBrowserClearFilters": "Clear search & filters",
|
||
"cardBrowserRetry": "Retry",
|
||
"cardBrowserPrevious": "Previous",
|
||
"cardBrowserNext": "Next",
|
||
"cardBrowserBuried": "Buried",
|
||
"cardBrowserSelectAll": "Select all",
|
||
"cardBrowserDeselectAll": "Deselect all",
|
||
"cardBrowserSelected": "{count} selected",
|
||
"@cardBrowserSelected": {"placeholders": {"count": {"type": "int"}}},
|
||
"cardBrowserRangeHintTouch": "Long-press another card to select everything in between.",
|
||
"cardBrowserRangeHintPointer": "Shift-click another card to select everything in between.",
|
||
"cardBrowserMove": "Move",
|
||
"cardBrowserAddTags": "Add tags",
|
||
"cardBrowserRemoveTags": "Remove tags",
|
||
"cardBrowserResetProgress": "Reset progress",
|
||
"cardBrowserDelete": "Delete",
|
||
"cardBrowserMoreActions": "More actions",
|
||
"cardBrowserDone": "Done",
|
||
"cardBrowserDeleted": "{count, plural, =1{1 flashcard deleted} other{{count} flashcards deleted}}",
|
||
"@cardBrowserDeleted": {"placeholders": {"count": {"type": "int"}}},
|
||
"cardBrowserMoveTitle": "{count, plural, =1{Move 1 flashcard to} other{Move {count} flashcards to}}",
|
||
"@cardBrowserMoveTitle": {"placeholders": {"count": {"type": "int"}}},
|
||
"cardBrowserMoved": "{count, plural, =1{Moved 1 flashcard to “{title}”} other{Moved {count} flashcards to “{title}”}}",
|
||
"@cardBrowserMoved": {"placeholders": {"count": {"type": "int"}, "title": {"type": "String"}}},
|
||
"cardBrowserAddTagsTitle": "{count, plural, =1{Add tags to 1 flashcard} other{Add tags to {count} flashcards}}",
|
||
"@cardBrowserAddTagsTitle": {"placeholders": {"count": {"type": "int"}}},
|
||
"cardBrowserAddTo": "{count, plural, =1{Add to 1 flashcard} other{Add to {count} flashcards}}",
|
||
"@cardBrowserAddTo": {"placeholders": {"count": {"type": "int"}}},
|
||
"cardBrowserRemoveTagsTitle": "{count, plural, =1{Remove tags from 1 flashcard} other{Remove tags from {count} flashcards}}",
|
||
"@cardBrowserRemoveTagsTitle": {"placeholders": {"count": {"type": "int"}}},
|
||
"cardBrowserRemoveFrom": "{count, plural, =1{Remove from 1 flashcard} other{Remove from {count} flashcards}}",
|
||
"@cardBrowserRemoveFrom": {"placeholders": {"count": {"type": "int"}}},
|
||
"cardBrowserNoTags": "No tags yet. Create tags from a flashcard's editor, then apply them here.",
|
||
"cardBrowserNoTagsOnCards": "The flashcards chosen have no tags.",
|
||
"cardBrowserTagsAdded": "{tags, plural, =1{Added 1 tag to {count, plural, =1{1 flashcard} other{{count} flashcards}}} other{Added {tags} tags to {count, plural, =1{1 flashcard} other{{count} flashcards}}}}",
|
||
"@cardBrowserTagsAdded": {"placeholders": {"tags": {"type": "int"}, "count": {"type": "int"}}},
|
||
"cardBrowserTagsRemoved": "{tags, plural, =1{Removed 1 tag from {count, plural, =1{1 flashcard} other{{count} flashcards}}} other{Removed {tags} tags from {count, plural, =1{1 flashcard} other{{count} flashcards}}}}",
|
||
"@cardBrowserTagsRemoved": {"placeholders": {"tags": {"type": "int"}, "count": {"type": "int"}}},
|
||
"cardBrowserResetTitle": "{count, plural, =1{Start 1 flashcard afresh?} other{Start {count} flashcards afresh?}}",
|
||
"@cardBrowserResetTitle": {"placeholders": {"count": {"type": "int"}}},
|
||
"cardBrowserResetMessage": "They count as new again. Their reviews stay in your history and streaks.",
|
||
"cardBrowserResetConfirm": "Reset",
|
||
"cardBrowserReset": "{count, plural, =1{1 flashcard starts afresh} other{{count} flashcards start afresh}}",
|
||
"@cardBrowserReset": {"placeholders": {"count": {"type": "int"}}},
|
||
"studysetShare": "Share",
|
||
"studysetSharePrivate": "Share: private",
|
||
"studysetSharePublished": "Share: published",
|
||
"publishTitle": "Publish",
|
||
"publishPrivate": "Private · only you can see it",
|
||
"publishPublished": "Published · v{version} · {date}",
|
||
"@publishPublished": {"placeholders": {"version": {"type": "int"}, "date": {"type": "String"}}},
|
||
"publishIntro": "A release is this studyset with everything inside it, as it is now. Others can find it, learn from it and copy it. Each release stays as it was; later changes go into the next one.",
|
||
"publishAnonymous": "Sign in with GitHub to have a public profile and publish.",
|
||
"publishName": "Name",
|
||
"publishNameHint": "japanese",
|
||
"publishLocation": "Found at {location}",
|
||
"@publishLocation": {"placeholders": {"location": {"type": "String"}}},
|
||
"publishNameFixed": "Fixed since you first published: others refer to it.",
|
||
"publishLicence": "Licence",
|
||
"publishLicenceNone": "None",
|
||
"publishLicenceOpen": "Allows publishing.",
|
||
"publishLicenceNoDerivatives": "Allows publishing as it is: learners keep their changes to themselves.",
|
||
"publishLicenceClosed": "Doesn't allow passing it on. Choose another under Edit.",
|
||
"publishLicenceNotOpen": "These studysets' licences don't allow passing them on: {titles}",
|
||
"@publishLicenceNotOpen": {"placeholders": {"titles": {"type": "String"}}},
|
||
"publishNotes": "What changed",
|
||
"publishNotesHint": "New in this release…",
|
||
"publishReleases": "Releases",
|
||
"publishRelease": "v{version} · {date}",
|
||
"@publishRelease": {"placeholders": {"version": {"type": "int"}, "date": {"type": "String"}}},
|
||
"publishButton": "Publish v{version}",
|
||
"@publishButton": {"placeholders": {"version": {"type": "int"}}},
|
||
"publishNoProfile": "A release names you by your public profile. Make one first.",
|
||
"publishMakeProfile": "Make a public profile",
|
||
"publishConflicts": "These were changed differently on two devices. Settle them first:",
|
||
"publishConflictsElsewhere": "Some cards, notes or steps were changed differently on two devices. Sync, then try again.",
|
||
"publishUntitled": "Untitled",
|
||
"publishFilesMissing": "Some files haven't reached your instance yet. Try again in a moment.",
|
||
"publishNothingChanged": "Nothing has changed since the last release.",
|
||
"publishBusy": "This studyset is being published already. Try again in a moment.",
|
||
"publishSlugInvalid": "Lower-case letters, digits and hyphens, starting with a letter or digit.",
|
||
"publishSlugTaken": "Another of your studysets has this name.",
|
||
"publishNotesTooLong": "At most 5,000 characters.",
|
||
"publishDone": "Published v{version}.",
|
||
"@publishDone": {"placeholders": {"version": {"type": "int"}}},
|
||
"publishFailed": "Couldn't reach your instance. Nothing was published.",
|
||
"publishUnreachable": "Publishing can't be reached right now.",
|
||
"publishRetry": "Retry",
|
||
"publishCopyLocation": "Copy address",
|
||
"publishLocationCopied": "Address copied.",
|
||
"publishedField": "Release",
|
||
"publishedVersion": "v{version}",
|
||
"@publishedVersion": {"placeholders": {"version": {"type": "int"}}},
|
||
"exploreSearch": "Search titles and authors",
|
||
"exploreLanguages": "Languages",
|
||
"exploreAnyLanguage": "Any",
|
||
"exploreLanguagePair": "{front} → {back}",
|
||
"@exploreLanguagePair": {"placeholders": {"front": {"type": "String"}, "back": {"type": "String"}}},
|
||
"exploreKinds": "Content",
|
||
"exploreKindsChosen": "{count, plural, =1{1 kind of content} other{{count} kinds of content}}",
|
||
"@exploreKindsChosen": {"placeholders": {"count": {"type": "int"}}},
|
||
"exploreKindCards": "Flashcards",
|
||
"exploreKindNotes": "Notes",
|
||
"exploreKindPaths": "Learning paths",
|
||
"exploreKindPdfs": "PDFs",
|
||
"exploreKindsIntro": "Only studysets holding each of these.",
|
||
"exploreClearFilters": "Clear filters",
|
||
"exploreNothingMatches": "Nothing published here matches.",
|
||
"exploreBy": "by {author}",
|
||
"@exploreBy": {"placeholders": {"author": {"type": "String"}}},
|
||
"exploreRelease": "v{version} · {date}",
|
||
"@exploreRelease": {"placeholders": {"version": {"type": "int"}, "date": {"type": "String"}}},
|
||
"exploreLatestRelease": "Latest release: v{version} · {date}",
|
||
"@exploreLatestRelease": {"placeholders": {"version": {"type": "int"}, "date": {"type": "String"}}},
|
||
"exploreAddToLibrary": "Add to library",
|
||
"exploreInLibrary": "In your library",
|
||
"explorePercent": "{percent} %",
|
||
"@explorePercent": {"placeholders": {"percent": {"type": "int"}}},
|
||
"exploreAdded": "Added to your library.",
|
||
"exploreOpen": "Open",
|
||
"exploreNeedsNewerApp": "This studyset needs a newer version of the app.",
|
||
"exploreFailed": "Couldn't reach your instance. Try again.",
|
||
"exploreUnreachable": "Explore can't be reached right now.",
|
||
"exploreRetry": "Retry",
|
||
"exploreMore": "Show more",
|
||
"exploreNoDescription": "No description.",
|
||
"exploreReadLicence": "Read the licence",
|
||
"publishWithdraw": "Take off Explore",
|
||
"publishWithdrawTitle": "Take it off Explore?",
|
||
"publishWithdrawMessage": "Nobody can add it any more, and copies get no updates. Its releases stay as they are; publishing it again brings it back.",
|
||
"publishWithdrawn": "Withdrawn · copies get no updates",
|
||
"publishWithdrawnDone": "Taken off Explore.",
|
||
"copyUpdateOut": "v{version} is out: {summary}.",
|
||
"@copyUpdateOut": {"placeholders": {"version": {"type": "int"}, "summary": {"type": "String"}}},
|
||
"copyUpdateChanged": "{count} changed",
|
||
"@copyUpdateChanged": {"placeholders": {"count": {"type": "int"}}},
|
||
"copyUpdateAdded": "{count} new",
|
||
"@copyUpdateAdded": {"placeholders": {"count": {"type": "int"}}},
|
||
"copyUpdateWithdrawn": "{count} withdrawn",
|
||
"@copyUpdateWithdrawn": {"placeholders": {"count": {"type": "int"}}},
|
||
"copyUpdateNothing": "nothing in your copy changes",
|
||
"copyUpdate": "Update",
|
||
"copyUpdated": "Updated to v{version}.",
|
||
"@copyUpdated": {"placeholders": {"version": {"type": "int"}}},
|
||
"copyUpdatedToSettle": "{count, plural, =1{One has a change of yours there too: open it to choose.} other{{count} have a change of yours there too: open them to choose.}}",
|
||
"@copyUpdatedToSettle": {"placeholders": {"count": {"type": "int"}}},
|
||
"copyUpdateFailed": "Couldn't reach your instance. Try again.",
|
||
"cardBrowserStatusWithdrawn": "Withdrawn by the author",
|
||
"settingsPrivacy": "Privacy",
|
||
"settingsCountLearning": "Count my learning in Explore",
|
||
"settingsCountLearningSubtitle": "Explore shows how many people on this instance learn a published studyset: those with an identity who chose this and studied it on 3 or more days in the last 30, rounded, from 5 on. Nothing about you is shown, and nothing leaves the instance.",
|
||
"exploreLearners": "{count}+ learn this here",
|
||
"@exploreLearners": {"placeholders": {"count": {"type": "int"}}},
|
||
"publishLearnersFew": "Fewer than 5 learn it here, of those who chose to be counted.",
|
||
"publishForkForbidden": "Its original forbids passing on adaptations: only its author publishes it.",
|
||
"publishLicenseMustStay": "Its original asks adaptations to stay under {license}: choose it under Edit, for every studyset in it.",
|
||
"@publishLicenseMustStay": {"placeholders": {"license": {"type": "String"}}},
|
||
"exploreBasedOn": "based on {location}",
|
||
"@exploreBasedOn": {"placeholders": {"location": {"type": "String"}}},
|
||
"feedbackReport": "Report",
|
||
"feedbackSuggestion": "Suggestion",
|
||
"feedbackOnStudyset": "On the studyset",
|
||
"feedbackOnCard": "On a flashcard",
|
||
"feedbackOnNote": "On a note",
|
||
"feedbackOnStep": "On a step",
|
||
"feedbackByOn": "{name} · {date}",
|
||
"@feedbackByOn": {"placeholders": {"name": {"type": "String"}, "date": {"type": "String"}}},
|
||
"feedbackStatusClosed": "Closed",
|
||
"feedbackStatusAccepted": "Accepted",
|
||
"feedbackStatusDeclined": "Declined",
|
||
"feedbackStatusHidden": "Hidden",
|
||
"feedbackReplyHint": "Write a reply…",
|
||
"feedbackSend": "Send",
|
||
"feedbackAccept": "Accept",
|
||
"feedbackDecline": "Decline",
|
||
"feedbackClose": "Close",
|
||
"feedbackReopen": "Reopen",
|
||
"feedbackHide": "Hide",
|
||
"feedbackShow": "Show",
|
||
"feedbackBlock": "Block {name}",
|
||
"@feedbackBlock": {"placeholders": {"name": {"type": "String"}}},
|
||
"feedbackBlockTitle": "Block {name}?",
|
||
"@feedbackBlockTitle": {"placeholders": {"name": {"type": "String"}}},
|
||
"feedbackBlockMessage": "What they wrote on your studysets, and write, shows to nobody but them.",
|
||
"feedbackProposed": "Proposed",
|
||
"feedbackYours": "Yours now",
|
||
"feedbackAuthor": "Author",
|
||
"feedbackAccepted": "Taken into your studyset. The next release credits its writer.",
|
||
"feedbackDecided": "Done.",
|
||
"feedbackReplied": "Reply sent.",
|
||
"feedbackBlocked": "Blocked.",
|
||
"feedbackNotTaken": "This can't be taken: what it is about isn't in your studyset any more.",
|
||
"feedbackFailed": "Couldn't reach your instance. Try again.",
|
||
"feedbackUnreachable": "Reports and suggestions can't be reached right now.",
|
||
"feedbackRetry": "Retry",
|
||
"inboxTitle": "Inbox",
|
||
"inboxIntro": "Reports and suggestions on your published studysets, and those you wrote.",
|
||
"inboxEmpty": "Nothing yet.",
|
||
"studysetFeedback": "Reports and suggestions",
|
||
"studysetFeedbackEmpty": "Nobody has reported or suggested anything yet.",
|
||
"reportToAuthor": "Report to the author",
|
||
"cardReportToAuthor": "Send to the author too",
|
||
"cardReportToAuthorHint": "Public: everyone learning it reads it, with your public profile.",
|
||
"feedbackReportSent": "Sent to the author.",
|
||
"suggestToAuthor": "Suggest to the author",
|
||
"suggestHint": "What it changes, and why",
|
||
"suggestIntro": "The author sees it as you have it now, beside theirs. Public: everyone learning it reads it, with your public profile.",
|
||
"suggestSent": "Suggestion sent.",
|
||
"suggestNoDerivatives": "Its licence forbids adaptations: no suggestions.",
|
||
"feedbackNeedsIdentity": "Sign in with GitHub to report to the author and suggest.",
|
||
"kanjiExampleWords": "Words with it",
|
||
|
||
"settingsAssistant": "Assistant",
|
||
"settingsAskClaude": "Ask Claude or search the web",
|
||
"settingsAskClaudeSubtitle": "Off unless you turn it on. Adds a field on Home and a button in the Library, on a studyset and while studying. A question opens in Claude or as a web search, with only the context you choose; nothing is sent from here.",
|
||
"assistantHint": "Ask Claude…",
|
||
"assistantHintStudyset": "Ask Claude about {title}…",
|
||
"@assistantHintStudyset": {"placeholders": {"title": {"type": "String"}}},
|
||
"assistantHintCard": "Ask Claude about this card…",
|
||
"assistantSend": "Ask in Claude",
|
||
"assistantOpen": "Ask or search",
|
||
"assistantClose": "Close",
|
||
"assistantOpenFailed": "Claude couldn't be opened.",
|
||
|
||
"assistantConnectTitle": "Connect Claude",
|
||
"assistantConnectSubtitle": "Let Claude read your studysets",
|
||
"assistantConnectIntro": "Claude can read your studysets, cards, notes and progress on {instance} through Halkyon Learn's connector, and answer about them. It can't change anything. What it reads goes to Anthropic, under their privacy policy.",
|
||
"@assistantConnectIntro": {"placeholders": {"instance": {"type": "String"}}},
|
||
"assistantStepAdd": "In Claude, open Settings › Connectors and add a custom connector named Halkyon Learn, with this address. Added once, it works in Claude's apps too.",
|
||
"assistantStepCode": "Claude then opens a page asking for a code. Get one here: it works once, for ten minutes.",
|
||
"assistantShowCode": "Show a code",
|
||
"assistantNewCode": "New code",
|
||
"assistantCodeValid": "Valid until {time}",
|
||
"@assistantCodeValid": {"placeholders": {"time": {"type": "String"}}},
|
||
"assistantCopy": "Copy",
|
||
"assistantCopied": "Copied",
|
||
"assistantConnected": "Connected",
|
||
"assistantNoneConnected": "Nothing connected yet.",
|
||
"assistantConnectedOn": "connected {date}",
|
||
"@assistantConnectedOn": {"placeholders": {"date": {"type": "String"}}},
|
||
"assistantLastRead": "last read {date}",
|
||
"@assistantLastRead": {"placeholders": {"date": {"type": "String"}}},
|
||
"assistantDisconnect": "Disconnect",
|
||
"assistantDisconnectTitle": "Disconnect {name}?",
|
||
"@assistantDisconnectTitle": {"placeholders": {"name": {"type": "String"}}},
|
||
"assistantDisconnectMessage": "It can't read your studysets any more. You can connect it again with a new code.",
|
||
"assistantNotOffered": "This instance doesn't offer a connector yet. Questions still open in Claude with what they are about.",
|
||
"assistantUnreachable": "The instance can't be reached. Try again once you are online.",
|
||
"assistantRetry": "Try again",
|
||
|
||
"assistantLineFront": "Front: {text}",
|
||
"@assistantLineFront": {"description": "A line of context handed to Claude after the question.", "placeholders": {"text": {"type": "String"}}},
|
||
"assistantLineBack": "Back: {text}",
|
||
"@assistantLineBack": {"placeholders": {"text": {"type": "String"}}},
|
||
"assistantLineHint": "Hint {number}: {text}",
|
||
"@assistantLineHint": {"placeholders": {"number": {"type": "int"}, "text": {"type": "String"}}},
|
||
"assistantLineExplanation": "Explanation: {text}",
|
||
"@assistantLineExplanation": {"placeholders": {"text": {"type": "String"}}},
|
||
"assistantLineStudyset": "Studyset: “{title}” in Halkyon Learn on {instance}",
|
||
"@assistantLineStudyset": {"placeholders": {"title": {"type": "String"}, "instance": {"type": "String"}}},
|
||
"assistantLineDescription": "Description: {text}",
|
||
"@assistantLineDescription": {"placeholders": {"text": {"type": "String"}}},
|
||
"assistantChipStudyset": "Studyset: {title}",
|
||
"@assistantChipStudyset": {"placeholders": {"title": {"type": "String"}}},
|
||
"assistantContextLabel": "Send along",
|
||
"assistantTargetClaude": "Claude",
|
||
"assistantTargetWeb": "Web",
|
||
"assistantSwitchToWeb": "Search the web instead",
|
||
"assistantSwitchToClaude": "Ask Claude instead",
|
||
"assistantHintWeb": "Search the web…",
|
||
"assistantSendWeb": "Search",
|
||
"assistantSearchFailed": "The search couldn't be opened.",
|
||
"settingsSearchEngine": "Search engine",
|
||
"searchEngineDevice": "The device's search",
|
||
"searchEngineCustom": "Your own address",
|
||
"searchEngineCustomHint": "https://example.org/search?q=%s",
|
||
"searchEngineCustomInvalid": "An http or https address with %s where the question goes.",
|
||
"searchEngineCustomSave": "Use"
|
||
}
|