```
feat(i18n): 添加简体中文语言选项并扩展国际化支持 添加了简体中文(zh-cn)语言选项到设置页面的语言选择下拉菜单中。 同时新增了大量国际化字符串。 fix(parser): 提高解析器的鲁棒性 现在会遍历所有json对象检测统一格式,即使AI响应中包含多个JSON对象也能正确识别统一格式。 ```
This commit is contained in:
+184
-1
@@ -1,8 +1,10 @@
|
||||
{
|
||||
"settings.language.label": "Language",
|
||||
"settings.language.option.en": "English",
|
||||
"settings.language.option.zh-cn": "简体中文",
|
||||
"settings.language.option.zh-tw": "繁體中文",
|
||||
"settings.language.option.ru": "Русский",
|
||||
"settings.language.option.fr": "Français",
|
||||
"settings.extensionEnabled": "Enable RPG Companion",
|
||||
"settings.note": "Toggle to enable/disable the RPG Companion extension. Configure additional settings within the panel itself.",
|
||||
"template.settingsTitle": "RPG Companion Settings",
|
||||
@@ -73,6 +75,12 @@
|
||||
"template.settingsModal.display.showStartEncounterNote": "Display button to initiate interactive combat encounters.",
|
||||
"template.settingsModal.display.showDiceDisplay": "Show Dice Roll Display",
|
||||
"template.settingsModal.display.showDiceDisplayNote": "Display the \"Last Roll\" indicator in the panel.",
|
||||
"template.settingsModal.display.showCYOAToggle": "Show CYOA",
|
||||
"template.settingsModal.display.showCYOAToggleNote": "Display a toggle button to enable/disable \"Choose Your Own Adventure\" formatting instruction that makes the model produce five possible actions/dialogues for you to choose from at the end of the output.",
|
||||
"template.settingsModal.display.weatherPosition.background": "Show in Background",
|
||||
"template.settingsModal.display.weatherPosition.backgroundNote": "Display weather effects behind the chat (standard behavior).",
|
||||
"template.settingsModal.display.weatherPosition.foreground": "Show in Foreground",
|
||||
"template.settingsModal.display.weatherPosition.foregroundNote": "Display weather effects in front of the chat (experimental).",
|
||||
"template.mainPanel.autoAvatars": "Auto Avatars",
|
||||
"template.settingsModal.advancedTitle": "Advanced",
|
||||
"template.settingsModal.advanced.encounterHistoryDepth": "Chat History Depth For Encounters:",
|
||||
@@ -168,6 +176,7 @@
|
||||
"template.mainPanel.coloredDialogues": "Colored Dialogues",
|
||||
"template.mainPanel.deceptionSystem": "Deception System",
|
||||
"template.mainPanel.omniscienceFilter": "Omniscience Filter",
|
||||
"template.mainPanel.cyoa": "CYOA",
|
||||
"template.mainPanel.spotifyMusic": "Spotify Music",
|
||||
"template.mainPanel.snowflakesEffect": "Snowflakes Effect",
|
||||
"template.mainPanel.dynamicWeatherEffects": "Dynamic Weather",
|
||||
@@ -186,6 +195,12 @@
|
||||
"global.inventory": "Inventory",
|
||||
"global.quests": "Quests",
|
||||
"global.info": "Info",
|
||||
"global.removeItem": "Remove item",
|
||||
"global.clickToEdit": "Click to edit",
|
||||
"global.collapseExpandPanel": "Collapse/Expand Panel",
|
||||
"global.refreshRpgInfo": "Refresh RPG Info",
|
||||
"global.showHideApiKey": "Show/Hide API Key",
|
||||
"global.closeDialog": "Close dialog",
|
||||
"infobox.noData.title": "No data yet",
|
||||
"infobox.noData.instruction": "Generate a new response in the roleplay or switch to \"Separate Generation\" in Settings to access and click the \"Refresh RPG Info\" button",
|
||||
"infobox.recentEvents.title": "Recent Events",
|
||||
@@ -218,6 +233,13 @@
|
||||
"inventory.assets.addAssetButton": "Add Asset",
|
||||
"inventory.assets.addAssetPlaceholder": "Enter asset name...",
|
||||
"inventory.assets.description": "Assets include vehicles (cars, motorcycles), property (homes, apartments), and major equipment (workshop tools, special items).",
|
||||
"inventory.onPerson.addItemTitle": "Add new item",
|
||||
"inventory.clothing.addItemTitle": "Add new clothing item",
|
||||
"inventory.stored.addLocationTitle": "Add new storage location",
|
||||
"inventory.stored.addItemToLocationTitle": "Add item to this location",
|
||||
"inventory.stored.removeLocationTitle": "Remove this storage location",
|
||||
"inventory.assets.addItemTitle": "Add new asset",
|
||||
"inventory.assets.removeAssetTitle": "Remove asset",
|
||||
"quests.section.main": "Main Quest",
|
||||
"quests.section.optional": "Optional Quests",
|
||||
"quests.main.title": "Main Quests",
|
||||
@@ -230,6 +252,8 @@
|
||||
"quests.optional.addQuestPlaceholder": "Enter optional quest title...",
|
||||
"quests.optional.empty": "No active optional quests",
|
||||
"quests.optional.hint": "Optional quests are side objectives that complement your main story.",
|
||||
"quests.editQuestTitle": "Edit quest",
|
||||
"quests.removeQuestTitle": "Complete/Remove quest",
|
||||
"checkpoint.setChapterStart": "Set Chapter Start",
|
||||
"checkpoint.clearChapterStart": "Clear Chapter Start",
|
||||
"checkpoint.indicator": "Chapter Start",
|
||||
@@ -245,6 +269,7 @@
|
||||
"thoughts.clickToEdit": "Click to edit",
|
||||
"thoughts.clickToUpload": "Click to upload avatar",
|
||||
"thoughts.removeCharacter": "Remove character",
|
||||
"thoughts.empty": "No character data generated yet",
|
||||
"userStats.level": "LVL",
|
||||
"userStats.clickToEditLevel": "Click to edit level",
|
||||
"userStats.statsLocked": "Locked - AI cannot change stats",
|
||||
@@ -257,6 +282,7 @@
|
||||
"userStats.skillsLocked": "Locked - AI cannot change skills",
|
||||
"userStats.skillsUnlocked": "Unlocked - AI can change skills",
|
||||
"userStats.clickToEditSkills": "Click to edit skills",
|
||||
"userStats.empty": "No statuses generated yet",
|
||||
"infoBox.clickToEdit": "Click to edit",
|
||||
"infoBox.locked": "Locked - AI cannot change this",
|
||||
"infoBox.unlocked": "Unlocked - AI can change this",
|
||||
@@ -272,5 +298,162 @@
|
||||
"stats.con": "CON",
|
||||
"stats.int": "INT",
|
||||
"stats.wis": "WIS",
|
||||
"stats.cha": "CHA"
|
||||
"stats.cha": "CHA",
|
||||
"stats.displayMode": "Display Mode:",
|
||||
"stats.displayMode.percentage": "Percentage",
|
||||
"stats.displayMode.number": "Number",
|
||||
"dice.title": "Roll Dice",
|
||||
"dice.numberOfDice": "Number of Dice:",
|
||||
"dice.diceType": "Dice Type:",
|
||||
"dice.rolling": "Rolling...",
|
||||
"dice.result": "Result:",
|
||||
"dice.saveRoll": "Save Roll",
|
||||
"preset.createNewPresetTitle": "Create New Preset",
|
||||
"preset.deleteCurrentPresetTitle": "Delete Current Preset",
|
||||
"preset.setDefaultPresetTitle": "Set as Default Preset",
|
||||
"preset.defaultPresetDescription": "This is the default preset",
|
||||
"preset.label": "Preset:",
|
||||
"preset.useThisPresetFor": "Use this preset for: ",
|
||||
"stats.showLevel": "Show Level",
|
||||
"dateFormat.weekdayMonthYear": "Weekday, Month, Year",
|
||||
"dateFormat.dayNumericalMonthYear": "Day (Numerical), Month, Year",
|
||||
"historyPersistence.tabTitle": "History Persistence",
|
||||
"historyPersistence.settingsTitle": "History Persistence Settings",
|
||||
"historyPersistence.enable": "Enable History Persistence",
|
||||
"template.trackerEditorModal.tabs.historyPersistence": "History Persistence",
|
||||
"historyPersistence.hint": "Inject selected tracker data into historical messages to help the AI maintain continuity for time-sensitive events, weather changes, and location tracking.",
|
||||
"historyPersistence.sendAllEnabledStats": "Send All Enabled Stats on Refresh",
|
||||
"historyPersistence.sendAllEnabledStatsHint": "When enabled, Refresh RPG Info will include all enabled stats from the preset in history context, ignoring the individual selections below.",
|
||||
"historyPersistence.numberOfMessages": "Number of messages to include (0 = all available):",
|
||||
"historyPersistence.injectionPosition": "Injection Position:",
|
||||
"historyPersistence.injectionPosition.userMessageEnd": "End of the User's Message",
|
||||
"historyPersistence.injectionPosition.assistantMessageEnd": "End of the Assistant's Message",
|
||||
"historyPersistence.customContextPreamble": "Custom Context Preamble:",
|
||||
"historyPersistence.customContextPreamblePlaceholder": "Context for that moment:",
|
||||
"historyPersistence.userStatsSection": "User Stats",
|
||||
"historyPersistence.userStatsHint": "Select which stats should be included in historical messages.",
|
||||
"historyPersistence.statusSection": "Status (Mood/Conditions)",
|
||||
"historyPersistence.inventory": "Inventory",
|
||||
"historyPersistence.quests": "Quests",
|
||||
"historyPersistence.infoBoxSection": "Info Box",
|
||||
"historyPersistence.infoBoxHint": "Select which info box fields should be included in historical messages. These are recommended for time tracking.",
|
||||
"historyPersistence.presentCharactersSection": "Present Characters",
|
||||
"historyPersistence.presentCharactersHint": "Select which character fields should be included in historical messages.",
|
||||
"historyPersistence.widget.date": "Date",
|
||||
"historyPersistence.widget.weather": "Weather",
|
||||
"historyPersistence.widget.temperature": "Temperature",
|
||||
"historyPersistence.widget.time": "Time",
|
||||
"historyPersistence.widget.location": "Location",
|
||||
"historyPersistence.widget.recentEvents": "Recent Events",
|
||||
"historyPersistence.thoughts": "Thoughts",
|
||||
"historyPersistence.skills": "Skills",
|
||||
"template.promptsEditor.button": "Customize Prompts",
|
||||
"template.promptsEditor.buttonNote": "Edit all AI prompts used for generation, plot progression, and combat encounters.",
|
||||
"template.promptsEditor.title": "Customize Prompts",
|
||||
"template.promptsEditor.description": "Customize the AI prompts used throughout the extension. Leave fields empty to use defaults.",
|
||||
"template.promptsEditor.restoreDefault": "Restore Default",
|
||||
"template.promptsEditor.htmlPrompt.title": "HTML Prompt",
|
||||
"template.promptsEditor.htmlPrompt.note": "Injected when \"Enable Immersive HTML\" is enabled. Affects all generation modes.",
|
||||
"template.promptsEditor.dialogueColoringPrompt.title": "Dialogue Coloring Prompt",
|
||||
"template.promptsEditor.dialogueColoringPrompt.note": "Injected when \"Enable Colored Dialogues\" is enabled. Affects all generation modes.",
|
||||
"template.promptsEditor.deceptionPrompt.title": "Deception System Prompt",
|
||||
"template.promptsEditor.deceptionPrompt.note": "Injected when \"Enable Deception System\" is enabled. Instructs AI to mark lies and deceptions with hidden tags.",
|
||||
"template.promptsEditor.omnisciencePrompt.title": "Omniscience Filter Prompt",
|
||||
"template.promptsEditor.omnisciencePrompt.note": "Injected when \"Enable Omniscience Filter\" is enabled. Instructs AI to separate information the player character cannot perceive into hidden filter tags.",
|
||||
"template.promptsEditor.cyoaPrompt.title": "CYOA Prompt",
|
||||
"template.promptsEditor.cyoaPrompt.note": "Injected when \"Enable CYOA\" is enabled. Instructs AI to end responses with numbered action choices. Uses very high priority (depth 102) to ensure it's the last instruction.",
|
||||
"template.promptsEditor.spotifyPrompt.title": "Spotify Music Prompt",
|
||||
"template.promptsEditor.spotifyPrompt.note": "Injected when \"Enable Spotify Music\" is enabled. Asks AI to suggest appropriate music for the scene.",
|
||||
"template.promptsEditor.narratorPrompt.title": "Narrator Mode Prompt",
|
||||
"template.promptsEditor.narratorPrompt.note": "Injected when \"Narrator Mode\" is enabled. Instructs AI to infer characters from context.",
|
||||
"template.promptsEditor.contextPrompt.title": "Context Instructions Prompt",
|
||||
"template.promptsEditor.contextPrompt.note": "Injected in Separate/External mode after the context summary. Tells the AI how to use the context.",
|
||||
"template.promptsEditor.randomPlotPrompt.title": "Random Plot Progression Prompt",
|
||||
"template.promptsEditor.randomPlotPrompt.note": "Injected when the \"Randomized Plot\" button is clicked. Introduces random elements to the story.",
|
||||
"template.promptsEditor.naturalPlotPrompt.title": "Natural Plot Progression Prompt",
|
||||
"template.promptsEditor.naturalPlotPrompt.note": "Injected when the \"Natural Plot\" button is clicked. Progresses the story naturally.",
|
||||
"template.promptsEditor.avatarPrompt.title": "Avatar Generation Instruction",
|
||||
"template.promptsEditor.avatarPrompt.note": "Instructions for LLM when generating avatar image prompts. Used by Auto-generate Missing Avatars feature.",
|
||||
"template.promptsEditor.trackerPrompt.title": "Tracker Instructions",
|
||||
"template.promptsEditor.trackerPrompt.note": "Instruction portion only (format specification is hardcoded). {userName} will be replaced with the user's name.",
|
||||
"template.promptsEditor.trackerContinuationPrompt.title": "Tracker Continuation Instruction",
|
||||
"template.promptsEditor.trackerContinuationPrompt.note": "Instructions added after tracker format specifications, telling the AI how to continue the narrative.",
|
||||
"template.promptsEditor.combatPrompt.title": "Combat Narrative Style Instruction",
|
||||
"template.promptsEditor.combatPrompt.note": "Writing style instructions for combat encounters. Includes prose quality guidelines and anti-repetition rules. {userName} will be replaced with the user's name.",
|
||||
"template.settingsModal.mobileFabTitle": "Mobile Button Widgets",
|
||||
"template.settingsModal.mobileFabNote": "Show compact info widgets around the floating button on mobile. Widgets are positioned automatically.",
|
||||
"template.settingsModal.mobileFab.enabled": "Enable Floating Mobile Widgets",
|
||||
"template.settingsModal.mobileFab.enabledNote": "Master toggle to show info widgets around the mobile floating button.",
|
||||
"template.settingsModal.mobileFab.weatherIcon": "Weather Icon",
|
||||
"template.settingsModal.mobileFab.weatherDesc": "Weather Description",
|
||||
"template.settingsModal.mobileFab.clock": "Time/Clock",
|
||||
"template.settingsModal.mobileFab.date": "Date",
|
||||
"template.settingsModal.mobileFab.location": "Location",
|
||||
"template.settingsModal.mobileFab.stats": "Stats (Health, Energy, etc.)",
|
||||
"template.settingsModal.mobileFab.attributes": "RPG Attributes (STR, DEX, etc.)",
|
||||
"template.settingsModal.desktopStripTitle": "Desktop Collapsed Strip Widgets",
|
||||
"template.settingsModal.desktopStripNote": "Show compact info widgets in the collapsed panel strip on desktop. Displays stats vertically without needing to expand the panel.",
|
||||
"template.settingsModal.desktopStrip.enabled": "Enable Strip Widgets",
|
||||
"template.settingsModal.desktopStrip.enabledNote": "Shows widgets in the collapsed panel strip for quick access to stats.",
|
||||
"template.settingsModal.desktopStrip.weatherIcon": "Weather Icon",
|
||||
"template.settingsModal.desktopStrip.clock": "Time/Clock",
|
||||
"template.settingsModal.desktopStrip.date": "Date",
|
||||
"template.settingsModal.desktopStrip.location": "Location",
|
||||
"template.settingsModal.desktopStrip.stats": "Stats (Health, Energy, etc.)",
|
||||
"template.settingsModal.desktopStrip.attributes": "RPG Attributes (STR, DEX, etc.)",
|
||||
"plotProgression.buttons.randomizedPlot": "Randomized Plot",
|
||||
"plotProgression.buttons.naturalPlot": "Natural Plot",
|
||||
"plotProgression.buttons.enterEncounter": "Enter Encounter",
|
||||
"plotProgression.tooltips.randomizedPlot": "Generate a random plot twist or event",
|
||||
"plotProgression.tooltips.naturalPlot": "Continue the story naturally without twists",
|
||||
"plotProgression.tooltips.enterEncounter": "Enter combat encounter",
|
||||
"encounter.configModal.title": "Configure Combat Narrative",
|
||||
"encounter.configModal.combatNarrativeStyle": "Combat Narrative Style",
|
||||
"encounter.configModal.combatSummaryStyle": "Combat Summary Style",
|
||||
"encounter.configModal.labels.tense": "Tense:",
|
||||
"encounter.configModal.labels.person": "Person:",
|
||||
"encounter.configModal.labels.narration": "Narration:",
|
||||
"encounter.configModal.labels.pointOfView": "Point of View:",
|
||||
"encounter.configModal.options.present": "Present",
|
||||
"encounter.configModal.options.past": "Past",
|
||||
"encounter.configModal.options.firstPerson": "First Person",
|
||||
"encounter.configModal.options.secondPerson": "Second Person",
|
||||
"encounter.configModal.options.thirdPerson": "Third Person",
|
||||
"encounter.configModal.options.omniscient": "Omniscient",
|
||||
"encounter.configModal.options.limited": "Limited",
|
||||
"encounter.configModal.placeholders.narrator": "narrator",
|
||||
"encounter.configModal.rememberSettings": "Remember these settings for future encounters",
|
||||
"encounter.configModal.buttons.proceed": "Proceed",
|
||||
"encounter.ui.concludeEncounterTitle": "Conclude encounter early",
|
||||
"encounter.ui.closeTitle": "Close (ends combat)",
|
||||
"encounter.ui.initializingCombat": "Initializing combat...",
|
||||
"encounter.ui.combatBegins": "Combat begins!",
|
||||
"encounter.ui.allEnemies": "All Enemies",
|
||||
"encounter.ui.areaOfEffect": "Area of Effect",
|
||||
"encounter.ui.youHaveBeenDefeated": "You have been defeated...",
|
||||
"encounter.ui.attacks": "Attacks",
|
||||
"encounter.ui.items": "Items",
|
||||
"encounter.ui.customAction": "Custom Action",
|
||||
"encounter.ui.customActionPlaceholder": "Describe what you want to do...",
|
||||
"encounter.ui.generatingCombatSummary": "Generating combat summary...",
|
||||
"encounter.ui.pleaseWait": "Please wait...",
|
||||
"encounter.ui.failedToCreateSummary": "Failed to create summary. You can close this window.",
|
||||
"encounter.ui.wrongFormatDetected": "Wrong Format Detected",
|
||||
"encounter.ui.concludeEncounterButton": "Conclude Encounter",
|
||||
"encounter.ui.combatEncounterTitle": "Combat Encounter",
|
||||
"encounter.ui.errorGeneratingCombatSummary": "Error generating combat summary.",
|
||||
"encounter.ui.closeCombatWindow": "Close Combat Window",
|
||||
"encounter.ui.combatLog": "Combat Log",
|
||||
"encounter.ui.selectTarget": "Select Target",
|
||||
"encounter.ui.submit": "Submit",
|
||||
"encounter.ui.regenerate": "Regenerate",
|
||||
"encounter.ui.or": "OR",
|
||||
"global.locked": "Locked",
|
||||
"global.unlocked": "Unlocked",
|
||||
"global.confirm": "Confirm",
|
||||
"inventory.addItemPlaceholder": "Enter item name...",
|
||||
"inventory.stored.removeLocationConfirm": "Remove \"{location}\"? This will delete all items stored there.",
|
||||
"userStats.clickToEdit": "Click to edit",
|
||||
"quests.main.addQuestTitle": "Add main quests",
|
||||
"quests.optional.addQuestTitle": "Add optional quest"
|
||||
}
|
||||
Reference in New Issue
Block a user