This commit is contained in:
Mikan
2026-06-21 07:52:25 +03:00
parent e98559a587
commit 7cbe8da103
25 changed files with 1091 additions and 284 deletions

View File

@@ -83,6 +83,7 @@
"never_played": "Not played yet",
"current_time": "Current time",
"player": "Player",
"default_name": "New World",
"delete_confirm": "Delete this world? This cannot be undone.",
"deleted": "World deleted.",
"delete_failed": "Failed to delete world.",
@@ -112,8 +113,13 @@
"mode_form": "Custom form",
"preset_help": "Start from a pre-configured world template.",
"form_help": "Configure the world yourself with custom rules.",
"setting": "Setting",
"setting_help": "Describe the world setting (e.g. 'post-apocalyptic underground bunker').",
"setting_placeholder": "post-apocalyptic underground bunker",
"world_name": "World name",
"player_name": "Player character name",
"name_random_tip": "Roll a random name",
"name_random_failed": "Failed to fetch a random name.",
"notes": "Notes (optional)",
"notes_help": "Additional instructions for the Game Master.",
"language_en": "English",
@@ -145,6 +151,7 @@
"clarification": "Clarification needed",
"change_proposed": "Change proposed",
"comment": "Comment",
"assistant": "Assistant",
"apply_changes": "Apply changes",
"discard_changes": "Discard changes",
"changes_applied": "Changes applied.",
@@ -178,12 +185,22 @@
"weather": "Weather",
"player": "Player",
"hp": "HP",
"health": "Health",
"mana": "Mana",
"strength": "Strength",
"level": "Level",
"inventory": "Inventory",
"conditions": "Conditions",
"npcs": "NPCs",
"items": "Items",
"plot_rails": "Plot rails",
"hooks": "Hooks",
"current_goals": "Current goals",
"completed_goals": "Completed goals",
"no_env_data": "No environment data yet.",
"no_intro_scene": "This world has no intro scene yet. Go to Edit to generate one.",
"go_to_edit": "Go to Edit",
"edit_world": "Edit world",
"chat": "Chat",
"scene": "Scene",
"you": "You",
@@ -227,6 +244,10 @@
"settings_saved": "Settings saved.",
"settings_save_failed": "Failed to save settings.",
"settings_load_failed": "Failed to load settings.",
"settings_hint": "Each card saves independently. Secret values (api_key) are masked after save.",
"expand_all": "Expand all",
"collapse_all": "Collapse all",
"no_changes": "No changes to save.",
"group_llm": "LLM Configuration",
"group_embeddings": "Embeddings",
"group_qdrant": "Qdrant",
@@ -248,6 +269,12 @@
"logs_prompt": "Prompt",
"logs_response": "Response",
"logs_error": "Error",
"logs_new_count": "{{count}} new",
"logs_pause": "Pause",
"logs_resume": "Resume",
"logs_auto_refresh_on": "Auto-refresh active (page 1, 5s).",
"logs_auto_refresh_off": "Auto-refresh paused.",
"logs_auto_refresh_tip": "Toggle auto-refresh (5s polling on page 1).",
"users_email": "Email",
"users_username": "Username",
"users_admin": "Admin",
@@ -270,6 +297,10 @@
"test_embeddings": "Test embeddings",
"probe_dimension": "Probe dimension",
"recreate_collections": "Recreate collections",
"recreate_collections_hint": "Drops and recreates Qdrant collections based on current embeddings dimension.",
"recreate_dropped": "Dropped",
"recreate_created": "Created",
"test_provider_hint": "If provider=openai and api_url is empty, the system falls back to llm.api_url.",
"api_url": "API URL",
"api_key": "API key",
"model": "Model",
@@ -301,7 +332,46 @@
"text_replacements_empty": "No replacement rules yet. Click 'Add rule' to create one.",
"text_replacements_from": "From",
"text_replacements_to": "To",
"text_replacements_add": "Add rule"
"text_replacements_add": "Add rule",
"setting_desc": {
"llm.api_url": "Chat completions endpoint URL for the LLM provider.",
"llm.api_key": "API key for the LLM provider (stored as string).",
"llm.model": "Default model name used for all LLM calls.",
"llm.max_tokens": "Maximum number of tokens to generate per response.",
"llm.timeout_seconds": "Request timeout in seconds.",
"llm.temperature_orchestrator": "Sampling temperature for the orchestrator phase (02).",
"llm.temperature_writer": "Sampling temperature for the scene writer phase (02).",
"llm.text_replacements": "JSON list of {from, to} text replacements applied to all LLM scene output.",
"embeddings.provider": "Embeddings provider: 'offline_hash' (no API) or 'openai'.",
"embeddings.api_url": "Embeddings API URL. If empty, falls back to llm.api_url.",
"embeddings.api_key": "Embeddings API key. If empty, falls back to llm.api_key.",
"embeddings.model": "Embeddings model name (default: text-embedding-3-small).",
"embeddings.dimension": "Vector dimension used by the Qdrant collection.",
"embeddings.batch_size": "Number of texts to embed per API request.",
"embeddings.timeout_seconds": "Embeddings API request timeout in seconds.",
"embeddings.cache_ttl_seconds": "Time-to-live for the in-memory embeddings cache.",
"embeddings.max_text_chars": "Maximum characters of text passed to the embeddings API per call.",
"qdrant.url": "Qdrant server URL.",
"qdrant.api_key": "Qdrant API key (optional — only if the server requires auth).",
"qdrant.collection_name": "Name of the Qdrant collection used for entity vectors.",
"context.guaranteed_messages": "Number of recent chat messages always kept in the LLM context window.",
"context.compression_threshold_messages": "When recent message count exceeds this, older messages are summarized.",
"context.compression_threshold_tokens": "When estimated token count exceeds this, older messages are summarized.",
"context.scene_text_truncate_tokens": "Maximum tokens of scene_text retained per step.",
"context.safety_margin_tokens": "Reserved token budget kept between context and model max_tokens.",
"context.auto_rag_on_entity_mention": "If true, automatically retrieve entity context when an entity is mentioned.",
"game.max_substeps_per_iteration": "Maximum number of tool-call sub-steps per player iteration.",
"game.max_suggested_actions": "Maximum number of suggested actions returned to the player.",
"game.deferred_triggers_enabled": "If true, deferred triggers may fire on subsequent iterations.",
"ui.page_title": "Page <title> shown in the browser tab.",
"ui.header_title": "Title shown in the navbar (falls back to page_title).",
"ui.favicon_url": "URL of the favicon.",
"ui.logo_url": "URL of the navbar logo image.",
"ui.og_image_url": "URL of the Open Graph image used for social previews.",
"ui.character_names.en": "Comma-separated list of English character names for the random-name button.",
"ui.character_names.ru": "Comma-separated list of Russian character names for the random-name button.",
"admin.setup_token": "Token required to create the first admin account."
}
},
"errors": {
"generic": "Something went wrong.",