Files
ERitors-Scribe-Desktop/lib/locales/en.json
natreex b4eafca3bc Add comprehensive models and script for handling inline scripts and structured data
- Implement `remove-inline-scripts.js` to externalize Next.js inline scripts, enhancing CSP compliance.
- Add models for `Book`, `Character`, `Story`, `Editor`, `System`, and `BookSerie` with relevant properties and utilities.
- Include macOS entitlements plist for app development with advanced permissions.
- Add utility functions to handle script hashing, cookie management, and content formatting.
2025-11-16 19:56:14 -05:00

891 lines
35 KiB
JSON

{
"loginPage": {
"title": "Login",
"welcome": "Welcome to ERitors",
"orSocial": "or continue with",
"noAccount": "Don't have an account yet?",
"createAccount": "Create one here",
"backToLogin": "Back to login"
},
"loginForm": {
"error": {
"emailRequired": "Your email must be filled in.",
"passwordRequired": "Your password must be filled in.",
"emailLength": "Your email must have at least 3 characters.",
"emailInvalidChars": "Your email contains invalid characters.",
"connection": "An error occurred during login.",
"server": "A server error occurred during login.",
"unknown": "An unknown error occurred during login."
},
"fields": {
"email": {
"label": "Email address",
"placeholder": "your.email@example.com"
},
"password": {
"label": "Password",
"placeholder": "••••••••",
"forgot": "Forgot password?"
}
},
"loading": "Logging in...",
"submit": "Log in"
},
"registerPage": {
"title": "Create account",
"subtitle": "Create a free account and start your adventure with us.",
"progress": {
"infos": "Information",
"verif": "Verification"
},
"backToLogin": "Back to login"
},
"resetPassword": {
"title": "Forgot password",
"subtitle": "Reset your password in a few simple steps",
"progress": {
"email": "Email",
"verification": "Verification",
"final": "Finalization"
},
"fields": {
"email": {
"label": "Email address",
"placeholder": "your.email@example.com"
},
"code": {
"label": "Verification code",
"placeholder": "Enter the code received by email"
},
"newPassword": {
"label": "New password",
"placeholder": "••••••••"
}
},
"verify": "Verify",
"confirm": "Confirm",
"changePassword": "Change password",
"back": "Back",
"success": "Your password has been successfully updated!",
"goToLogin": "Go to login page",
"backToLogin": "Back to login",
"error": {
"codeServer": "An error occurred while verifying the code on the server.",
"codeUnknown": "An unknown error occurred while verifying the code.",
"emailInvalid": "Your email is invalid. Please enter a valid email address.",
"emailFormat": "Your input is not a valid email address.",
"emailServer": "An error occurred while verifying the email on the server.",
"emailUnknown": "An unknown error occurred while verifying the email.",
"passwordServer": "An error occurred while changing the password on the server.",
"passwordUnknown": "An unknown error occurred while changing the password."
}
},
"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"
},
"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."
},
"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"
}
}
},
"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"
},
"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."
},
"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."
},
"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.",
"errorUnknown": "An unknown error occurred while trying to fetch inspiration."
},
"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": {
"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.",
"newWorldPlaceholder": "New world name...",
"worldName": "World name",
"worldNamePlaceholder": "Enter the world name",
"worldHistory": "World history",
"worldHistoryPlaceholder": "Describe the history of your world",
"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."
},
"locationComponent": {
"newSectionPlaceholder": "New section name",
"addSectionLabel": "Add section",
"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. Add one below!",
"newElementPlaceholder": "New element",
"noSectionAvailable": "No section available.",
"createSectionLabel": "Create section",
"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."
},
"characterComponent": {
"errorNameRequired": "Character name is required.",
"errorCategoryRequired": "Character role is required.",
"successAdd": "Character added successfully.",
"successUpdate": "Character updated successfully.",
"errorAddCharacter": "Error adding character.",
"errorUpdateCharacter": "Error updating character.",
"errorAddAttribute": "Error adding attribute.",
"errorRemoveAttribute": "Error removing attribute."
},
"characterDetail": {
"back": "Back",
"newCharacter": "New character",
"basicInfo": "Basic information",
"name": "Name",
"namePlaceholder": "Enter a name",
"lastName": "Last name",
"lastNamePlaceholder": "Example: Smith",
"role": "Role",
"title": "Title",
"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"
},
"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",
"objectsList": "Objects list",
"bookGoals": "Book goals",
"save": "Save",
"notAvailable": "Option not available"
},
"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",
"saving": "Saving...",
"toolbar": {
"1": "1",
"2": "2",
"3": "3"
}
},
"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."
},
"ghostWriter": {
"title": "Ghost Writer",
"description": "Turn your ideas into captivating prose",
"subscriptionRequired": "You must be subscribed to Quill Sense 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...",
"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": {
"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"
},
"scribeFooterBar": {
"sheet": "Sheet : ",
"madeWith": "Scribe Editor made with",
"words": "Words",
"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."
}
},
"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"
},
"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",
"objects": "Objects",
"goals": "Goals"
},
"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"
}
},
"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": {
"cancel": "Cancel",
"confirm": "Confirm",
"unknownError": "An unknown error occurred"
},
"editor": {
"error": {
"savedFailed": "Save failed",
"unknownError": "An unknown error occurred"
},
"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"
}
},
"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"
}
}
}