Files
ERitors-Scribe-Desktop/lib/locales/en.json
natreex cfd08e3261 Bump app version to 0.5.0 and implement offline mode support across components
- Added offline detection logic with `OfflineContext` to improve app functionality in offline scenarios.
- Integrated Tauri IPC functions to handle local tool settings and character attributes when offline.
- Refined indentation logic in `TextEditor` for better compatibility with WebKit engines.
- Removed unused `indent` property and related settings in editor components to simplify configuration.
- Updated locale files with improved translation consistency and parameterized placeholders.
2026-03-24 22:45:10 -04:00

1442 lines
55 KiB
JSON

{
"generationOptions": {
"explicit": {
"label": "Explicit",
"alertTitle": "Explicit Mode",
"alertMessage": "This mode enables mature content generation. Some restrictions remain in effect. For users 18 years and older only."
},
"smart": {
"label": "Smart",
"alertTitle": "Smart Mode",
"alertMessage": "This mode uses the most powerful models (Claude Opus, Grok 4.1) for superior generation quality. Additional fees apply."
},
"activate": "Activate",
"cancel": "Cancel"
},
"controllerBar": {
"bookNotFound": "No book found",
"errorGettingBook": "Error while trying to get the book information",
"selectBook": "Select a book",
"bookSettings": "Book settings",
"chapterNotFound": "Chapter not found",
"unknownBookError": "Unknown error while retrieving book",
"unknownChapterError": "Unknown error while retrieving chapter"
},
"userMenu": {
"settings": "Settings",
"logout": "Logout"
},
"bookList": {
"library": "Library",
"booksAreMirrors": "\"Books are the mirrors of the soul\"",
"works": "works",
"welcomeWritingWorkshop": "Welcome to your writing workshop!",
"whitePageText": "The blank page is waiting for your creativity. Add your first work to start your literary adventure.",
"guideStep0Title": "Congratulations",
"guideStep0Content": "Your first work has been successfully added. This is the beginning of your adventure with ERitors Scribe. All your works are listed here, categorized by the type you create.",
"guideStep1Title": "Your work",
"guideStep1Content": "This is the work you just added. A simple click allows you to enter the Scribe editor and start letting your imagination flow.",
"guideStep2Title": "Work options",
"guideStep2ContentGear": "lets you manage your work's settings, such as the title, guidelines, and many other options.",
"guideStep2ContentDownload": "lets you download your content as EPUB, PDF, and DOCX.",
"guideStep2ContentTrash": "lets you permanently delete your work.",
"errorBookCreate": "An error occurred while creating the book.",
"errorBooksFetch": "An error occurred while retrieving the books.",
"errorBookDetails": "Error fetching book details.",
"errorUnknown": "An unknown error occurred.",
"seriesSettings": "Series settings",
"emptySeries": "Empty series"
},
"bookCard": {
"noCoverAlt": "No cover",
"initialsSeparator": ".",
"subtitlePlaceholder": "No subtitle"
},
"scribeTopBar": {
"logoAlt": "Logo",
"scribe": "Scribe",
"separator": " - "
},
"scribeLeftBar": {
"editorComponents": {
"structure": {
"title": "Structure",
"description": "Organize your story with chapters, scenes, and characters.",
"badge": "STR"
}
},
"homeComponents": {
"addBook": {
"title": "Add a book",
"description": "Add a book to your library.",
"badge": "ADD"
},
"generateStory": {
"title": "Generate a story",
"description": "Generate a story from scratch.",
"badge": "+"
},
"lyricGenerator": {
"title": "Lyrics Generator",
"description": "Create song lyrics in a few clicks.",
"badge": "Lyrics"
},
"addSeries": {
"title": "Create a series",
"description": "Create a series to group multiple books.",
"badge": "SERIES"
},
"importBook": {
"title": "Import a book",
"description": "Import a DOCX file to create a book.",
"badge": "DOCX"
}
}
},
"importBook": {
"header": "Import a book",
"pickFile": "Select a DOCX file",
"parsing": "Parsing file...",
"fields": {
"type": "Book type",
"title": "Title",
"subTitle": "Subtitle",
"summary": "Summary",
"version": "Chapter version"
},
"chapters": {
"title": "Chapters",
"detected": "{{count}} chapter(s) detected",
"selectAll": "Select all",
"deselectAll": "Deselect all",
"words": "words"
},
"submit": "Import",
"importing": "Importing...",
"success": "Book imported successfully.",
"error": {
"invalidFormat": "Invalid file format. Please select a DOCX file.",
"parseFailed": "Failed to parse the file.",
"titleRequired": "Title is required.",
"typeRequired": "Book type is required.",
"noChaptersSelected": "Please select at least one chapter.",
"importFailed": "An error occurred while importing the book."
}
},
"scribeChapterComponent": {
"sheetHeading": "Sheet",
"createSheet": "Create your sheet",
"chaptersHeading": "Chapters",
"addChapterPlaceholder": "+ Add a chapter",
"deleteChapterTitle": "Delete chapter",
"deleteChapterMessage": "You are about to delete a chapter",
"errorChapterUpdate": "An error occurred while updating the chapter.",
"errorChapterDelete": "An error occurred while deleting the chapter.",
"errorChapterNameRequired": "Chapter name is required.",
"errorChapterSubmit": "Error while trying to submit {{chapterName}} chapter.",
"errorFetchChapter": "Error while fetching chapter.",
"errorFetchChapters": "Error while fetching chapters.",
"successUpdate": "Chapter updated successfully.",
"unknownErrorChapterDelete": "Unknown error while deleting chapter."
},
"composerRightBar": {
"editorComponents": {
"quillSense": {
"title": "QuillSense",
"description": "Get writing advice and suggestions to improve your story.",
"badge": "AI"
},
"worlds": {
"title": "Worlds",
"description": "Develop the worlds of your story, including geography and culture.",
"badge": "WORLD"
},
"locations": {
"title": "Locations",
"description": "Add locations and environments to your story.",
"badge": "LOC"
},
"characters": {
"title": "Characters",
"description": "Create and manage your characters, their relationships, and story arcs.",
"badge": "CHAR"
},
"spells": {
"title": "Spell Book",
"description": "Manage the spells and magic of your universe.",
"badge": "SPELL"
},
"items": {
"title": "Items",
"description": "Manage important items in your story.",
"badge": "ITEM"
}
},
"homeComponents": {
"about": {
"title": "About ERitors",
"description": "Discover ERitors features and advantages.",
"badge": "INFO"
},
"facebook": {
"title": "Facebook",
"description": "Join our community on Facebook.",
"badge": "FB"
},
"discord": {
"title": "Discord",
"description": "Join our community on Discord.",
"badge": "DISCORD"
}
}
},
"quillSense": {
"needSubscription": "Please subscribe to QuillSense or bring your keys to access this feature.",
"subscriptionDescription": "Unlock powerful writing tools to enrich your prose.",
"toggleList": "Show the list of conversations",
"options": {
"chat": "Chat",
"dictionary": "Dictionary",
"synonyms": "Synonyms",
"conjugator": "Conjugator",
"inspiration": "Inspiration"
}
},
"dictionary": {
"fieldName": "Smart dictionary",
"searchPlaceholder": "Search for a word...",
"searchAction": "Search",
"loading": "Searching...",
"definitionHeading": "Definition",
"exampleHeading": "Example",
"literaryUsageHeading": "Literary usage",
"description": "Search for a word to get its definition, usage examples, and literary tips.",
"errorUnknown": "An unknown error occurred while searching for the word.",
"errorNoResponse": "No response received from the server.",
"locked": {
"title": "Access required",
"description": "A QuillSense basic subscription or an API key is required to enable the smart dictionary."
}
},
"synonyms": {
"heading": "Lexical search",
"subheading": "Explore the vocabulary",
"optionSynonyms": "Synonyms",
"optionAntonyms": "Antonyms",
"inputPlaceholder": "Enter a word...",
"enterWordError": "Please enter a word to search.",
"loading": "Searching...",
"resultSynonyms": "Synonyms for \"{{word}}\"",
"resultAntonyms": "Antonyms for \"{{word}}\"",
"emptySynonymsTitle": "Synonym Search",
"emptyAntonymsTitle": "Antonym Search",
"emptySynonymsDescription": "Enter a word to find synonyms suitable for different writing contexts.",
"emptyAntonymsDescription": "Enter a word to find antonyms suitable for different writing contexts.",
"errorUnknown": "An unknown error occurred while searching for the word.",
"errorNoResponse": "No response received from the server.",
"locked": {
"title": "Access required",
"description": "A QuillSense basic subscription or an API key is required to enable synonym search."
}
},
"inspireMe": {
"fieldName": "Find inspiration",
"inputPlaceholder": "How would you like to be inspired?",
"actionLabel": "Inspire me",
"loading": "Looking for inspiration...",
"resultHeading": "Inspiration ideas",
"justificationHeading": "Justification",
"linkHeading": "Link to the story",
"emptyHeading": "Inspire me",
"emptyDescription": "Search for ideas to enrich your writing. Enter a prompt and let AI inspire you with creative suggestions based on your current content.",
"emptyPromptError": "Please enter a prompt to get inspired.",
"error": {
"contentRetrieval": "Error retrieving content.",
"contentRetrievalUnknown": "Unknown error retrieving content.",
"noBook": "No book selected.",
"noChapter": "No chapter selected.",
"unknown": "An unknown error occurred during generation."
},
"locked": {
"title": "Access required",
"description": "A QuillSense basic subscription or an API key is required to enable the Inspire Me mode."
}
},
"conjugator": {
"locked": {
"title": "Access Required",
"description": "A QuillSense basic level subscription or an OpenAI API key is required to activate the smart conjugator."
},
"input": {
"placeholder": "Enter a verb to conjugate...",
"label": "Verb",
"action": "Conjugate"
},
"loading": "Conjugating...",
"welcome": {
"title": "Conjugator",
"description": "Enter a verb to see all its conjugations in different moods and tenses."
},
"error": {
"unknown": "An unknown error has occurred"
},
"persons": {
"je": "I",
"tu": "you",
"il": "he/she",
"nous": "we",
"vous": "you",
"ils": "they"
}
},
"worldSetting": {
"exportSuccess": "World exported to series successfully.",
"exportToSeries": "Export to series",
"getWorldsError": "Error while fetching worlds.",
"unknownError": "Unknown error.",
"newWorldNameError": "Please enter a name for the new world.",
"selectWorld": "World",
"addWorldLabel": "Add world",
"createWorldLabel": "Create world",
"selectWorldPlaceholder": "Select a world",
"noWorldAvailable": "No world available.",
"noWorldDescription": "Create your first world to develop your story's universe.",
"newWorldPlaceholder": "New world name...",
"search": "Search for a world...",
"newWorld": "New world",
"deleteTitle": "Delete world",
"deleteMessage": "You are about to permanently delete the world \"{{name}}\".",
"worldName": "World name",
"worldNamePlaceholder": "Enter the world name",
"worldHistory": "World history",
"worldHistoryPlaceholder": "Describe the history of your world",
"basicInfo": "Basic information",
"politicsEconomy": "Politics and economy",
"cultureLanguages": "Culture and languages",
"politics": "Political description",
"politicsPlaceholder": "The political description of this world...",
"economy": "Rules and economic status",
"economyPlaceholder": "The rules and economic status of the world.",
"religion": "Religions",
"religionPlaceholder": "Talk about religious rules and restrictions.",
"languages": "Languages",
"languagesPlaceholder": "Create your own language or simply mention those available.",
"updateWorldError": "Failed to update:",
"addWorldError": "Error adding world.",
"updateWorldSuccess": "World updated successfully.",
"enableTool": "Enable worlds",
"enableToolDescription": "Enable world management for this book.",
"toolEnabled": "World management enabled.",
"toolDisabled": "World management disabled."
},
"locationComponent": {
"exportSuccess": "Location exported to series successfully.",
"exportToSeries": "Export to series",
"newSectionPlaceholder": "New section name",
"addSectionLabel": "Add section",
"search": "Search for a section...",
"noSectionDescription": "Create your first section to organize your story's locations.",
"newSection": "New section",
"deleteTitle": "Delete section",
"deleteMessage": "You are about to permanently delete the section \"{{name}}\".",
"elementName": "Element name",
"elementNamePlaceholder": "Element name",
"elementDescriptionPlaceholder": "Element description",
"subElementsHeading": "Sub-elements",
"subElementNamePlaceholder": "Sub-element name",
"subElementDescriptionPlaceholder": "Sub-element description",
"newSubElementPlaceholder": "New sub-element",
"noElementAvailable": "No element available.",
"editToAdd": "Click the edit icon to add elements.",
"newElementPlaceholder": "New element",
"noSectionAvailable": "No section available.",
"createSectionLabel": "Create section",
"elementsCount": "{{count}} elements",
"element": "Element",
"addElement": "Add an element",
"addSubElement": "Add a sub-element",
"errorSectionNameEmpty": "Section name cannot be empty.",
"errorElementNameEmpty": "Element name cannot be empty.",
"errorSubElementNameEmpty": "Sub-element name cannot be empty.",
"errorAddSection": "An error occurred while adding the section.",
"errorUnknownAddSection": "Unable to add the section. Please try again later.",
"errorAddElement": "An error occurred while adding the element.",
"errorUnknownAddElement": "Unable to add the element. Please try again later.",
"errorAddSubElement": "An error occurred while adding the sub-element.",
"errorUnknownAddSubElement": "Unable to add the sub-element. Please try again later.",
"errorDeleteElement": "An error occurred while deleting the element.",
"errorUnknownDeleteElement": "Unable to delete the element. Please try again later.",
"errorDeleteSubElement": "An error occurred while deleting the sub-element.",
"errorUnknownDeleteSubElement": "Unable to delete the sub-element. Please try again later.",
"errorDeleteSection": "An error occurred while deleting the section.",
"errorUnknownDeleteSection": "Unable to delete the section. Please try again later.",
"errorSave": "An error occurred while saving the locations.",
"errorUnknownSave": "Unable to save changes. Please try again later.",
"errorUnknownFetchLocations": "Unknown error fetching locations.",
"successSave": "Locations saved successfully.",
"enableTool": "Enable locations",
"enableToolDescription": "Enable location management for this book.",
"toolEnabled": "Location management enabled.",
"toolDisabled": "Location management disabled."
},
"characterCategories": {
"none": "Select role",
"main": "Main",
"secondary": "Secondary",
"recurring": "Recurring"
},
"characterStatus": {
"alive": "Alive",
"dead": "Deceased",
"unknown": "Unknown"
},
"characterComponent": {
"exportSuccess": "Character exported to series successfully.",
"errorNameRequired": "Character name is required.",
"errorCategoryRequired": "Character role is required.",
"successAdd": "Character added successfully.",
"successUpdate": "Character updated successfully.",
"successDelete": "Character deleted successfully.",
"errorAddCharacter": "Error adding character.",
"errorUpdateCharacter": "Error updating character.",
"errorDeleteCharacter": "Error deleting character.",
"errorAddAttribute": "Error adding attribute.",
"errorRemoveAttribute": "Error removing attribute.",
"enableTool": "Enable characters",
"enableToolDescription": "Enable character management for this book.",
"toolEnabled": "Character management enabled.",
"toolDisabled": "Character management disabled."
},
"spellComponent": {
"exportSuccess": "Spell exported to series successfully.",
"enableTool": "Enable spell book",
"enableToolDescription": "Manage the spells and magic of your universe.",
"errorNameRequired": "Spell name is required.",
"errorDescriptionRequired": "Spell description is required.",
"errorAppearanceRequired": "Spell appearance is required.",
"errorAddSpell": "Error adding spell.",
"errorUpdateSpell": "Error updating spell.",
"errorDeleteSpell": "Error deleting spell.",
"successAdd": "Spell added successfully.",
"successUpdate": "Spell updated successfully.",
"successDelete": "Spell deleted successfully."
},
"spellList": {
"search": "Search for a spell...",
"add": "Add a spell",
"manageTags": "Manage tags",
"filterByTag": "Filter by tag",
"filterByLevel": "Filter by level",
"allTags": "All tags",
"allLevels": "All levels",
"noSpells": "No spells created",
"noSpellsDescription": "Add your first spell to get started."
},
"spellDetail": {
"back": "Back",
"newSpell": "New spell",
"exportToSeries": "Export to series",
"save": "Save",
"delete": "Delete",
"deleteTitle": "Delete spell",
"deleteMessage": "You are about to permanently delete the spell \"{{name}}\".",
"basicInfo": "Basic information",
"name": "Spell name",
"namePlaceholder": "Enter spell name",
"description": "Description",
"descriptionPlaceholder": "Describe the effects and nature of the spell",
"appearance": "Appearance",
"appearancePlaceholder": "Describe the visual appearance of the spell",
"tags": "Tags",
"addTag": "Add a tag...",
"createTag": "Create \"{{name}}\"",
"powerLevel": "Power level",
"components": "Components",
"componentsPlaceholder": "Ingredients, gestures, incantations required...",
"limitations": "Limitations",
"limitationsPlaceholder": "Restrictions, side effects, conditions of use...",
"notes": "Notes",
"notesPlaceholder": "Additional notes about the spell..."
},
"spellTagManager": {
"title": "Tag management",
"back": "Back",
"addTag": "Add a tag",
"tagName": "Tag name",
"tagNamePlaceholder": "Tag name...",
"tagColor": "Color",
"editTag": "Edit tag",
"preview": "Preview",
"deleteTagTitle": "Delete tag",
"delete": "Delete",
"confirmDelete": "Delete this tag? It will be removed from all spells.",
"noTags": "No tags created",
"successAdd": "Tag added successfully.",
"successUpdate": "Tag updated successfully.",
"successDelete": "Tag deleted successfully."
},
"spellPowerLevels": {
"none": "None",
"minor": "Minor",
"moderate": "Moderate",
"major": "Major",
"legendary": "Legendary",
"divine": "Divine"
},
"characterDetail": {
"back": "Back",
"newCharacter": "New character",
"exportToSeries": "Export to series",
"deleteTitle": "Delete character",
"deleteMessage": "You are about to permanently delete the character \"{{name}}\".",
"basicInfo": "Basic information",
"name": "Name",
"namePlaceholder": "Enter a name",
"lastName": "Last name",
"lastNamePlaceholder": "Example: Smith",
"nickname": "Nickname",
"nicknamePlaceholder": "Alias or nickname",
"role": "Role",
"title": "Title",
"titlePlaceholder": "Ex: King, Captain, Doctor...",
"gender": "Gender",
"genderPlaceholder": "Ex: Male, Female, Non-binary",
"age": "Age",
"agePlaceholder": "Ex: 25",
"yearsOld": "years old",
"species": "Species",
"speciesPlaceholder": "Ex: Human, Elf, Vampire",
"nationality": "Nationality/Origin",
"nationalityPlaceholder": "Ex: French, Elven",
"status": "Status",
"residence": "Place of residence",
"residencePlaceholder": "Where the character lives",
"speechPattern": "Speech pattern",
"speechPatternPlaceholder": "Verbal tics, accent, vocabulary...",
"catchphrase": "Catchphrase",
"catchphrasePlaceholder": "Character's recurring quote",
"notes": "Author notes",
"notesPlaceholder": "Personal notes, reminders...",
"colorLabel": "Associated color",
"colorPlaceholder": "Ex: #51AE84 or green",
"advancedMode": "Advanced mode",
"showAdvanced": "Show",
"hideAdvanced": "Hide",
"identitySection": "Extended identity",
"voiceSection": "Character voice",
"authorSection": "Author notes",
"historySection": "Background",
"biography": "Biography",
"biographyPlaceholder": "Character biography.",
"history": "History",
"historyPlaceholder": "Character history...",
"roleFull": "Role",
"roleFullPlaceholder": "Role of the character in the story",
"fetchAttributesError": "Error fetching attributes."
},
"characterList": {
"search": "Search for a character...",
"add": "Add a character",
"unknownImage": "?",
"unknown": "Unknown",
"noLastName": "No last name",
"noTitle": "No title",
"noRole": "No role",
"noCharacters": "No characters",
"noCharactersDescription": "Add your first character to get started."
},
"characterSectionElement": {
"newItem": "New {{item}}"
},
"aboutEditors": {
"title": "About Scribe",
"version": "Version",
"copyrightLabel": "Copyright",
"descriptionLabel": "Description",
"teamLabel": "Team",
"techLabel": "Technologies",
"copyright": "© 2025, All rights reserved",
"description": "ERitors is an intuitive writing platform designed for authors. Inspired by a passion for captivating stories, ERitors overcomes traditional writing barriers by offering an integrated environment to structure your ideas, manage versions, and develop your narrative worlds. Whether you're writing a short story or an epic novel, ERitors supports you at every stage of your creative journey. Join us and discover how ERitors can transform your writing process.",
"teamMember": "Kevin Dorion"
},
"bookSettingOption": {
"basicInformation": "Basic information",
"guideLine": "Guidelines",
"storyPlan": "Story plan",
"manageWorlds": "Manage worlds",
"yourLocations": "Your locations",
"characters": "Characters",
"spells": "Spell Book",
"quillsense": "QuillSense Settings",
"export": "Export your book",
"objectsList": "Objects list",
"bookGoals": "Book goals",
"save": "Save",
"notAvailable": "Option not available",
"unknownError": "An unknown error occurred.",
"quillsenseOffline": "QuillSense is not available offline."
},
"noBookHome": {
"title": "Your work is waiting for its first words",
"description": "This work does not have any chapters yet. To start writing, create your first chapter.",
"hint": "Click on the Open Book icon in the toolbar to manage the structure"
},
"textEditor": {
"preferences": "Preferences",
"ghostWriter": "Ghost Writer",
"draftCompanion": "Draft Companion",
"save": "Save",
"indentDisabled": "Indentation disabled",
"indentDisabledTitle": "Paragraph indentation disabled",
"indentDisabledDescription": "First-line paragraph indentation is disabled due to a display bug in Apple's WebKit engine. A fix is being integrated and will be available in an upcoming Safari update. Indentation will be automatically re-enabled once the fix is available on your system.",
"indentDisabledUnderstood": "Got it"
},
"draftCompanion": {
"noPreviousVersion": "No previous version of this chapter",
"errorFetchDraft": "Error while fetching draft content.",
"unknownError": "An unknown error has occurred",
"errorRefineText": "Error refining text",
"errorRefineDraft": "Error while refining draft: {{message}}",
"unknownErrorRefineDraft": "An unknown error occurred while refining the draft",
"successInsert": "Correction successfully inserted",
"selectVersion": "Select a version",
"words": "Words",
"refine": "Refine",
"refining": "Refining...",
"abortSuccess": "Generation stopped. Token and cost totals will be available on next page refresh.",
"sseParsingError": "Error reading generation data"
},
"ghostWriter": {
"title": "Ghost Writer",
"description": "Turn your ideas into captivating prose",
"subscriptionRequired": "You must be subscribed to QuillSense Pro to use Ghost Writer.",
"subscribe": "Subscribe",
"length": "Text length",
"minimum": "Minimum",
"maximum": "Maximum",
"words": "words",
"type": "Writing type",
"toneAtmosphere": "Tone and atmosphere",
"tonePlaceholder": "Ex: Mysterious, joyful, dark...",
"directive": "Creative directives",
"importPrompt": "Import prompt",
"directivePlaceholder": "Ex: Write a chapter about...",
"save": "Save",
"advanced": "Advanced",
"cancel": "Cancel",
"generate": "Generate",
"generating": "Generating...",
"stop": "Stop",
"successGenerate": "Text generated successfully.",
"successInsert": "Excerpt successfully inserted",
"successImport": "Content imported successfully",
"errorGenerate": "An error occurred during generation.",
"errorImport": "An error occurred during import.",
"errorUnknown": "An unknown error occurred.",
"errorUnknownImport": "An unknown error occurred during import.",
"noContentFound": "No content found",
"promptEmpty": "Advanced prompt cannot be empty.",
"errorSaveAdvanced": "Error saving advanced settings.",
"successSaveAdvanced": "Advanced settings saved successfully.",
"errorSave": "An error occurred during saving.",
"errorUnknownSave": "An unknown error occurred during saving.",
"errorRetrieveContent": "Error retrieving content.",
"errorUnknownRetrieveContent": "Unknown error retrieving content.",
"abortSuccess": "Generation stopped. Token and cost totals will be available on next page refresh.",
"settings": {
"addTagPlaceholder": "Tags",
"unknownError": "Unknown error saving settings."
},
"tags": {
"addTagPlaceholder": "Tags",
"unknownError": "Unknown error managing tags."
}
},
"userEditorSettings": {
"displayPreferences": "Display preferences",
"textSize": "Text size",
"zoom": {
"Très petit": "Very small",
"Petit": "Small",
"Normal": "Normal",
"Grand": "Large",
"Très grand": "Very large"
},
"indent": "Paragraph indentation",
"indentNone": "None",
"indentMax": "Maximum",
"lineHeight": "Line height",
"lineHeightCompact": "Compact (1.2)",
"lineHeightNormal": "Normal (1.5)",
"lineHeightSpaced": "Spaced (1.75)",
"lineHeightDouble": "Double (2.0)",
"fontFamily": "Font family",
"fontLora": "Lora (Custom font)",
"fontSerif": "Serif (Times, Georgia)",
"fontSansSerif": "Sans-serif (Arial, Helvetica)",
"fontMonospace": "Monospace (Courier)",
"maxWidth": "Content width",
"maxWidthNarrow": "Narrow",
"maxWidthWide": "Wide",
"theme": "Display theme",
"themeOption": {
"clair": "Light",
"sombre": "Dark",
"sépia": "Sepia"
},
"focusMode": "Focus mode (hide distractions)",
"reset": "Reset preferences",
"saveError": "Error saving preferences.",
"unknownError": "An unknown error occurred while saving preferences."
},
"scribeFooterBar": {
"sheet": "Sheet : ",
"madeWith": "Scribe Editor made with",
"words": "words",
"pages": "pages",
"paragraphs": "paragraphs",
"books": "Books"
},
"addNewBookForm": {
"title": "Add a new work",
"type": "Book type",
"typePlaceholder": "Select a book type",
"bookTitle": "Title",
"bookTitlePlaceholder": "Book title",
"subtitle": "Subtitle",
"subtitlePlaceholder": "Subtitle (optional)",
"publicationDate": "Desired release date",
"wordGoal": "Word goal",
"wordGoalPlaceholder": "Word goal",
"summary": "Summary",
"summaryPlaceholder": "Book summary",
"words": "words",
"add": "Add",
"adding": "Adding...",
"error": {
"titleMissing": "Oops! Title is missing.",
"titleTooShort": "Title is too short. Minimum 2 characters required.",
"titleTooLong": "Title is too long. Maximum 50 characters allowed.",
"typeMissing": "Select a genre.",
"addingBook": "An error occurred while adding the book."
},
"bookTypeHint": {
"title": "Type of work",
"nouvelle": {
"title": "Short story",
"range": "2,000 - 7,500 words",
"description": "Short format centered on a single event. Tight structure, ideal for starting fiction writing."
},
"novelette": {
"title": "Novelette",
"range": "7,500 - 17,500 words",
"description": "Intermediate format allowing a secondary plot. Popular in science fiction and fantasy."
},
"novella": {
"title": "Novella",
"range": "17,500 - 40,000 words",
"description": "Short but substantial work. Deep character development with optimal narrative density."
},
"chapbook": {
"title": "Chapbook",
"range": "500 - 5,000 words",
"description": "Short publication, often experimental. Free and creative format, ideal for testing new styles."
},
"roman": {
"title": "Novel",
"range": "40,000+ words",
"description": "Long work with multiple plots and characters. Requires solid structure and rigorous planning."
},
"tip": "💡 Tip: Start with a short story to master the basics, then move to longer formats as you gain experience."
}
},
"addNewSeriesForm": {
"title": "Create a new series",
"name": "Series name",
"namePlaceholder": "E.g.: The Chronicles of...",
"description": "Description",
"descriptionPlaceholder": "Describe your series...",
"optional": "optional",
"selectBooks": "Books to include",
"selected": "selected",
"noBooks": "No books available",
"add": "Create",
"adding": "Creating...",
"success": "Series created successfully.",
"error": {
"nameMissing": "Series name is required.",
"nameTooShort": "Name is too short. Minimum 2 characters required.",
"nameTooLong": "Name is too long. Maximum 100 characters allowed.",
"addingSeries": "An error occurred while creating the series."
}
},
"searchBook": {
"placeholder": "Search for a book..."
},
"guideLineSetting": {
"saveSuccess": "Guideline saved successfully.",
"saveError": "Error saving guideline.",
"errorUnknown": "Unknown error saving.",
"personal": "Personal",
"quillsense": "QuillSense",
"tone": "Tone",
"tonePlaceholder": "Describe the tone of your book",
"atmosphere": "Atmosphere",
"atmospherePlaceholder": "Describe the atmosphere of your book",
"writingStyle": "Writing style",
"writingStylePlaceholder": "Describe the writing style of your book",
"themes": "Themes",
"themesPlaceholder": "Describe the themes of your book",
"themesPlaceholderQuill": "Desired themes",
"symbolism": "Symbolism",
"symbolismPlaceholder": "Describe the symbolism in your book",
"motifs": "Motifs",
"motifsPlaceholder": "Describe recurring motifs in your book",
"narrativeVoice": "Narrative voice",
"narrativeVoicePlaceholder": "Describe the narrative voice of your book",
"pacing": "Pacing",
"pacingPlaceholder": "Describe the pacing of your book",
"intendedAudience": "Intended audience",
"intendedAudiencePlaceholder": "Describe the intended audience for your book",
"keyMessages": "Key messages",
"keyMessagesPlaceholder": "Describe the key messages of your book",
"plotSummary": "Plot summary",
"plotSummaryPlaceholder": "Plot summary generated by QuillSense",
"toneAtmosphere": "Tone and atmosphere",
"toneAtmospherePlaceholder": "Recommended tone and atmosphere",
"verbTense": "Verb tense",
"verbTensePlaceholder": "Recommended verb tense",
"narrativeType": "Narrative type",
"narrativeTypePlaceholder": "Recommended narrative type",
"dialogueType": "Dialogue type",
"dialogueTypePlaceholder": "Recommended dialogue type",
"language": "Language",
"languagePlaceholder": "Recommended language"
},
"story": {
"errorFetch": "An error occurred while fetching story data.",
"errorUnknownFetch": "An unknown error occurred while fetching story data.",
"errorSave": "An error occurred while saving.",
"errorUnknownSave": "An unknown error occurred while saving.",
"successSave": "Story saved successfully."
},
"mainChapter": {
"chapters": "Chapters",
"chapterTitlePlaceholder": "Chapter title",
"noChapter": "No chapter available. Add one below!",
"newChapterPlaceholder": "New chapter",
"deleteTitle": "Delete chapter",
"deleteMessage": "You are about to delete a chapter",
"errorDelete": "An error occurred while deleting the chapter.",
"errorUnknownDelete": "An unknown error occurred while deleting the chapter.",
"errorAdd": "Error while trying to add new main chapter.",
"errorUnknownAdd": "Unknown error adding main chapter."
},
"actComponent": {
"errorAddIncident": "Error while trying to add new inciting incident.",
"errorUnknownAddIncident": "Unknown error adding inciting incident.",
"errorDeleteIncident": "An error occurred while deleting the incident.",
"errorUnknownDeleteIncident": "An unknown error occurred while deleting the incident.",
"errorAddPlotPoint": "An error occurred while adding the plot point.",
"errorUnknownAddPlotPoint": "An unknown error occurred while adding the plot point.",
"errorDeletePlotPoint": "An error occurred while deleting the plot point.",
"errorUnknownDeletePlotPoint": "An unknown error occurred while deleting the plot point.",
"errorLinkChapter": "An error occurred while adding the chapter.",
"errorUnknownLinkChapter": "An unknown error occurred while adding the chapter.",
"errorUnlinkChapter": "An error occurred while removing the chapter.",
"errorUnknownUnlinkChapter": "An unknown error occurred while removing the chapter.",
"chapterSummaryPlaceholder": "Chapter summary for this act",
"remove": "Remove",
"chapters": "Chapters",
"noLinkedChapter": "No linked chapter",
"selectChapterPlaceholder": "Select a chapter...",
"act1Summary": "Act 1 summary",
"act4Summary": "Act 4 summary",
"act5Summary": "Act 5 summary",
"actSummary": "Act summary",
"act1SummaryPlaceholder": "Act 1 summary",
"act4SummaryPlaceholder": "Act 4 summary",
"act5SummaryPlaceholder": "Act 5 summary",
"actSummaryPlaceholder": "Act summary",
"delete": "Delete",
"incidentsTitle": "Incidents (Trigger Elements)",
"noIncidentAdded": "No incident added",
"newIncidentPlaceholder": "New trigger element",
"plotPointsTitle": "Plot Points (Plot Twists)",
"linkedTo": "Linked to",
"noPlotPointAdded": "No plot point added",
"newPlotPointPlaceholder": "New plot point",
"act1Title": "Act 1: Introduction",
"act2Title": "Act 2: Trigger Elements",
"act3Title": "Act 3: Plot Twists",
"act4Title": "Act 4: Resolution",
"act5Title": "Act 5: Conclusion"
},
"issues": {
"title": "Issues",
"issueNamePlaceholder": "Issue name",
"noIssue": "No issue added. Add one below!",
"newIssuePlaceholder": "New issue",
"errorAdd": "An error occurred while adding.",
"errorUnknownAdd": "An unknown error occurred while adding.",
"errorDelete": "An error occurred while deleting.",
"errorUnknownDelete": "An unknown error occurred while deleting.",
"errorEmptyName": "Issue name cannot be empty.",
"errorInvalidId": "Invalid issue ID."
},
"worldElementComponent": {
"errorDelete": "Error deleting the element.",
"errorAdd": "Error adding the element.",
"errorUnknown": "An unexpected error occurred.",
"emptyField": "The {{section}} field is empty.",
"namePlaceholder": "Name of {{section}}",
"descriptionPlaceholder": "Description of {{section}}",
"newPlaceholder": "New {{section}}"
},
"bookTypes": {
"short": "Short Story",
"novelette": "Novelette",
"novella": "Novella",
"chapbook": "Chapbook",
"novel": "Novel"
},
"bookType": {
"short": "Short Story",
"novelette": "Novelette",
"novella": "Novella",
"chapbook": "Chapbook",
"novel": "Novel"
},
"chapterVersions": {
"prompt": "Prompt",
"draft": "Draft",
"refine": "Refinement",
"review": "Review",
"final": "Final"
},
"bookSetting": {
"basicInformation": "Basic Information",
"guideLine": "Guideline",
"story": "Story",
"world": "Worlds",
"locations": "Locations",
"characters": "Characters",
"spells": "Spell Book",
"quillsense": "QuillSense (AI)",
"export": "Export",
"objects": "Objects",
"goals": "Goals"
},
"seriesSetting": {
"basicInformation": "Information",
"books": "Books",
"characters": "Characters",
"worlds": "Worlds",
"locations": "Locations",
"spells": "Spell Book",
"backToLibrary": "Back to library",
"errorLoading": "Error loading series",
"deleteSeries": "Delete series",
"deleteConfirmMessage": "This will permanently delete the series and all its elements (characters, worlds, locations, spells). Continue?",
"deleteSuccess": "Series deleted successfully",
"deleteError": "Error deleting series"
},
"seriesSettingOption": {
"basicInformation": "Basic Information",
"books": "Series Books",
"characters": "Global Characters",
"worlds": "Global Worlds",
"locations": "Global Locations",
"spells": "Global Spell Book",
"notAvailable": "This option is not yet available."
},
"seriesBasicInformation": {
"error": {
"noFileSelected": "No file selected.",
"removeCover": "Error removing cover.",
"nameRequired": "Series name is required.",
"update": "Error updating series information.",
"unknown": "An unknown error occurred."
},
"success": {
"update": "Series updated successfully."
},
"fields": {
"name": "Series Name",
"namePlaceholder": "E.g.: The Chronicles of...",
"description": "Description",
"descriptionPlaceholder": "Describe your series...",
"coverImage": "Cover Image",
"coverImageAlt": "Current cover",
"generateWithQuillSense": "Generate with QuillSense"
}
},
"seriesBooks": {
"addBook": "Add a book",
"add": "Add",
"selectBookPlaceholder": "Select a book...",
"booksInSeries": "Books in the series",
"noBooks": "No books in this series",
"moveUp": "Move up",
"moveDown": "Move down",
"removeBook": "Remove from series",
"error": {
"selectBook": "Please select a book.",
"unknown": "An unknown error occurred."
},
"success": {
"saved": "Changes saved."
}
},
"seriesCharacter": {
"noCharacters": "No global characters in this series."
},
"seriesCard": {
"book": "book",
"books": "books",
"series": "Series",
"settings": "Series settings"
},
"basicInformationSetting": {
"error": {
"noFileSelected": "No file selected.",
"removeCover": "Error removing book cover.",
"titleRequired": "Title is required.",
"update": "Error updating book basic information.",
"unknown": "An unknown error occurred."
},
"success": {
"update": "Basic information updated successfully."
},
"fields": {
"title": "Title",
"titlePlaceholder": "Enter book title",
"subtitle": "Subtitle",
"subtitlePlaceholder": "Enter a subtitle (optional)",
"summary": "Summary",
"summaryPlaceholder": "Briefly describe your book",
"publicationDate": "Publication Date",
"wordCount": "Word Count",
"wordCountPlaceholder": "Enter word count",
"coverImage": "Cover Image",
"coverImageAlt": "Current cover",
"generateWithQuillSense": "Generate with QuillSense"
}
},
"quillList": {
"untitled": "Untitled",
"error": {
"unknown": "An unknown error occurred while loading conversations."
}
},
"quillConversation": {
"emptyMessageError": "Please enter a message before sending it.",
"inputPlaceholder": "What's on your mind?",
"accessRequired": {
"title": "Chat Access Required",
"description": "An intermediate QuillSense subscription is required, or an activated Gemini key in your settings if you are a founding member or a 'Bring Your Keys' subscriber."
},
"loadingMessage": "QuillSense is typing",
"welcomeTitle": "Welcome to QuillSense",
"welcomeDescription": "Your smart writing assistant. Ask me questions about your story, request writing advice, or explore new creative ideas.",
"welcomeTip": "💡 Tip: Enable context for personalized responses to your work",
"contextLabel": "Context:",
"context": {
"none": "None",
"chapter": "Chapter",
"book": "Book"
},
"contextAlert": {
"title": "Context Activation",
"chapter": "The current chapter content will be sent to Gemini to provide contextualized responses.",
"book": "The full content of your book will be sent to Gemini to provide contextualized responses."
},
"genericError": "An error occurred. Please try again.",
"loadError": "Error loading the conversation.",
"sendError": "Error sending the message."
},
"qsTextPreview": {
"title": "Generated Extract",
"insert": "Insert"
},
"common": {
"back": "Back",
"cancel": "Cancel",
"confirm": "Confirm",
"create": "Create",
"delete": "Delete",
"deleting": "Deleting...",
"edit": "Edit",
"exportToSeries": "Export to series",
"save": "Save",
"unknownError": "An unknown error occurred"
},
"spellPowerLevels": {
"none": "None",
"cantrip": "Cantrip",
"novice": "Novice",
"apprentice": "Apprentice",
"journeyman": "Journeyman",
"expert": "Expert",
"master": "Master",
"grandmaster": "Grandmaster",
"legendary": "Legendary",
"divine": "Divine"
},
"editor": {
"error": {
"savedFailed": "Save failed",
"unknownError": "An unknown error occurred",
"parsingContent": "Error loading chapter content"
},
"success": {
"saved": "Saved successfully"
}
},
"errors": {
"wordCountError": "Error calculating word count"
},
"homePage": {
"loading": "Loading...",
"guide": {
"welcome": "Welcome {{name}}",
"step0": {
"description1": "ERitors is AI-powered software (Anthropic and OpenAI APIs) integrated under the name QuillSense. Its goal is to provide you with all the necessary tools to create a complete work from A to Z.",
"description2": "This guide will help you get started. You can skip it if you wish."
},
"step1": {
"title": "Basic Tools",
"addBook": "Opens the panel to create a new work.",
"generateStory": "Opens the panel to generate a short story via QuillSense."
},
"step2": {
"title": "Search",
"description": "Once your first work is created, you can easily find it using this integrated search bar."
},
"step3": {
"title": "Account Management",
"description": "Access your settings to manage your account, enable two-factor authentication (2FA), or log out securely."
},
"step4": {
"title": "Ready to Begin",
"description1": "You are now ready to use ERitors to its fullest! Create your first work or let QuillSense inspire you with a new story.",
"description2": "Happy writing! 🖋️"
}
},
"errors": {
"termsError": "Error retrieving terms of service",
"userNotFound": "User not found",
"authenticationError": "Error during authentication",
"termsAcceptError": "Error accepting terms of service",
"lastChapterError": "Error retrieving last chapter"
}
},
"quillsenseSetting": {
"enableQuillsense": "Enable QuillSense",
"enableDescription": "When disabled, all AI features will be hidden for this book.",
"advancedPrompt": "Advanced prompt for Ghost Writer",
"advancedPromptPlaceholder": "Enter custom instructions to guide the AI when generating text...",
"advancedPromptDescription": "This prompt will be used as a priority directive when generating text with Ghost Writer.",
"saveSuccess": "QuillSense settings saved successfully.",
"saveError": "Error saving settings.",
"unknownError": "An unknown error occurred.",
"enable_characters": "Enable characters",
"enable_worlds": "Enable worlds",
"enable_locations": "Enable locations"
},
"shortStoryGenerator": {
"title": "Short Story Generator",
"tabs": {
"basics": "Basics",
"structure": "Structure",
"atmosphere": "Atmosphere",
"result": "Result"
},
"result": {
"title": "Your Generated Story",
"generating": "Generating story...",
"words": "words",
"noResponse": "No response received from generator.",
"saveError": "Error saving story.",
"unknownError": "An unknown error occurred.",
"abortSuccess": "Generation stopped. Token and cost totals will be available on next page refresh."
},
"fields": {
"complexity": "Writing Level",
"preset": "Preset Type",
"language": "Language",
"wordCount": "Word Count",
"tense": "Narrative Tense",
"narrative": "Narrative Person",
"dialogue": "Dialogue Type",
"directives": "Special Instructions",
"tone": "Tone",
"atmosphere": "Atmosphere",
"character": "Characters"
},
"placeholders": {
"directives": "Add special instructions or particular details (e.g., Happy ending, major event…)",
"tone": "Describe the tone (e.g., cheerful, mysterious, dramatic…)",
"atmosphere": "Describe the atmosphere (e.g., sunny, dark, tense…)",
"character": "List the main characters"
},
"actions": {
"generate": "Generate Story",
"generating": "Generating...",
"save": "Save",
"regenerate": "Regenerate",
"improve": "Improve with Magic Fix",
"stop": "Stop"
},
"navigation": {
"previous": "Previous",
"next": "Next",
"cancel": "Cancel",
"close": "Close"
},
"accessDenied": {
"title": "Access Denied",
"message": "Sorry! This feature is reserved for advanced members. You must have a higher subscription or the advanced AI activation option.",
"close": "Close"
}
},
"syncField": {
"uploadSuccess": "{{count}} element(s) updated successfully.",
"uploadTooltip": "Push to series",
"downloadTooltip": "Pull from series"
},
"exportOption": {
"formatLabel": "Export format",
"chapters": "Chapters",
"loadingChapters": "Loading chapters...",
"noChaptersAvailable": "No chapters available for export.",
"selectAll": "Select all",
"deselectAll": "Deselect all",
"exportButton": "Export",
"exporting": "Exporting...",
"noBookSelected": "No book selected.",
"noChaptersSelected": "Please select at least one chapter.",
"downloadSuccess": "Your {{format}} file has been downloaded successfully.",
"downloadError": "Download failed.",
"serverError": "Server error during export.",
"unknownError": "An unknown error occurred."
},
"seriesImport": {
"importButton": "Import",
"importFromSeries": "Import from series",
"selectElement": "Select an element"
},
"loginPage": {
"title": "Login",
"welcome": "Welcome to ERitors Scribe",
"orSocial": "or sign in with",
"offlineWarning": {
"title": "Offline mode required",
"message": "You are not connected to the Internet. To use the app offline, you must first sign in at least once online."
}
},
"loginForm": {
"submit": "Sign in",
"fields": {
"email": {
"label": "Email address",
"placeholder": "Enter your email address"
},
"password": {
"label": "Password",
"placeholder": "Enter your password",
"forgot": "Forgot password?"
}
},
"error": {
"emailRequired": "Please enter your email address.",
"passwordRequired": "Please enter your password.",
"emailLength": "Email address must be between 5 and 100 characters.",
"emailInvalidChars": "Email address contains invalid characters.",
"connection": "Connection error. Check your credentials.",
"server": "Server error. Please try again later.",
"unknown": "An unknown error occurred."
}
},
"socialForm": {
"error": {
"connection": "Connection error with the provider."
}
},
"registerPage": {
"title": "Register",
"subtitle": "Create your ERitors account",
"backToLogin": "Back to login",
"progress": {
"infos": "Information",
"verif": "Verification"
}
},
"registerStepOne": {
"next": "Continue",
"fields": {
"firstName": {
"label": "First name",
"placeholder": "Enter your first name"
},
"lastName": {
"label": "Last name",
"placeholder": "Enter your last name"
},
"username": {
"label": "Username",
"placeholder": "Choose a username",
"note": "Username must be between 3 and 50 characters."
},
"email": {
"label": "Email address",
"placeholder": "Enter your email address"
},
"password": {
"label": "Password",
"placeholder": "Choose a password"
},
"repeatPassword": {
"label": "Confirm password",
"placeholder": "Confirm your password"
}
},
"error": {
"requiredFields": "All fields are required.",
"firstNameLength": "First name must be between 2 and 50 characters.",
"lastNameLength": "Last name must be between 2 and 50 characters.",
"usernameLength": "Username must be between 3 and 50 characters.",
"invalidInput": "One or more fields contain invalid characters.",
"passwordMismatch": "Passwords do not match.",
"preRegister": "Error during pre-registration.",
"unknown": "An unknown error occurred."
},
"success": {
"preRegister": "A verification code has been sent to your email address."
}
},
"registerStepTwo": {
"verify": "Verify",
"back": "Back",
"confirmed": "Your account has been verified successfully!",
"start": "Get started",
"instructions": {
"sent": "A verification code has been sent to your email address.",
"checkInbox": "Check your inbox and spam folder."
},
"fields": {
"code": {
"label": "Verification code",
"placeholder": "Enter the code received by email"
}
},
"error": {
"codeIncorrect": "The verification code is incorrect.",
"unknown": "An unknown error occurred."
},
"success": {
"verified": "Your account has been verified successfully!"
}
},
"resetPassword": {
"title": "Reset Password",
"subtitle": "Reset your password",
"verify": "Verify email",
"confirm": "Confirm code",
"changePassword": "Change password",
"back": "Back",
"backToLogin": "Back to login",
"success": "Your password has been reset successfully!",
"goToLogin": "Sign in",
"progress": {
"email": "Email",
"verification": "Verification",
"final": "New password"
},
"fields": {
"email": {
"label": "Email address",
"placeholder": "Enter your email address"
},
"code": {
"label": "Verification code",
"placeholder": "Enter the code received"
},
"newPassword": {
"label": "New password",
"placeholder": "Enter your new password"
}
},
"error": {
"emailInvalid": "Please enter a valid email address.",
"emailFormat": "The email address format is invalid.",
"emailServer": "Server error while verifying email.",
"emailUnknown": "An unknown error occurred.",
"codeServer": "Server error while verifying code.",
"codeUnknown": "An unknown error occurred.",
"passwordServer": "Server error while changing password.",
"passwordUnknown": "An unknown error occurred."
}
},
"terms": {
"title": "Terms of Use",
"subtitle": "Acceptance required to access ERitors Scribe",
"mandatory": "Mandatory acceptance",
"mandatoryDesc1": "To use our services, such as <strong>ERitors Scribe</strong>, you must accept the terms of use by clicking <strong>I accept</strong>.",
"mandatoryDesc2": "Please carefully read the detailed terms and conditions page before proceeding with acceptance.",
"mandatoryDesc3": "If you do not accept these conditions, you will not be able to access our services and will be redirected to the home page.",
"fullDoc": "Full documentation",
"fullDocDesc": "To view our complete terms and conditions, please visit our dedicated page:",
"fullDocLink": "View full terms",
"importance": "Critical importance",
"importanceDesc": "This acceptance is mandatory and constitutes a legal prerequisite for the use of our AI-assisted editing services.",
"required": "Decision required to continue",
"refuse": "Decline and exit",
"accept": "I accept the terms"
},
"offline": {
"toggle": {
"online": "Online",
"offline": "Offline",
"switchToOnline": "Switch to online mode",
"switchToOffline": "Switch to offline mode"
},
"mode": {
"title": "Offline mode",
"backToOnline": "Back online"
},
"pin": {
"errors": {
"tooShort": "PIN must be at least 4 digits.",
"tooLong": "PIN cannot exceed 8 digits.",
"digitsOnly": "PIN must contain only digits.",
"mismatch": "PINs do not match.",
"setupFailed": "Error while setting up PIN."
},
"setup": {
"title": "Set up offline PIN",
"titleFirstLogin": "Set up a PIN for offline mode",
"subtitle": "This PIN will allow you to access your data without an Internet connection.",
"description": "Choose a 4 to 8 digit PIN to secure offline access to your data.",
"pinLabel": "PIN code",
"confirmPinLabel": "Confirm PIN code",
"laterButton": "Later",
"configuringButton": "Setting up...",
"configureButton": "Set up PIN",
"footer": "You can change this PIN in settings."
},
"verify": {
"title": "PIN Verification",
"subtitle": "Enter your PIN to access your offline data.",
"placeholder": "PIN code",
"enterPin": "Please enter your PIN.",
"incorrect": "Incorrect PIN.",
"tooManyAttempts": "Too many attempts. Please sign in online.",
"error": "Error while verifying PIN.",
"cancelButton": "Cancel",
"verifyingButton": "Verifying...",
"unlockButton": "Unlock"
}
}
}
}