* feat: improve save/load interface with custom names and metadata - Add custom save name support with input validation - Extend save metadata with avatar counts, protagonist info, and event count - Add quick save button alongside named save option - Enhance save list display with richer information - Add sanitize_save_name and find_protagonist_name helpers - Update API endpoints to support new features - Add i18n translations for new UI elements Closes #95 * test: add comprehensive tests for save custom name feature - Add 37 tests for sanitize_save_name, find_protagonist_name - Add tests for custom name API endpoints - Add tests for enhanced metadata - Fix unused NIcon import in SaveLoadPanel - Add zh-TW translations for new save_load keys * test(frontend): add SaveLoadPanel component tests - Add 21 tests for SaveLoadPanel component - Cover save mode, load mode, display, validation - Mock naive-ui components, stores, and API
372 lines
14 KiB
JSON
372 lines
14 KiB
JSON
{
|
||
"ui": {
|
||
"system_menu": "系统菜单",
|
||
"system_menu_title": "系统菜单",
|
||
"start_game": "开始游戏",
|
||
"load_game": "加载游戏",
|
||
"save_game": "保存游戏",
|
||
"create_character": "新建角色",
|
||
"delete_character": "删除角色",
|
||
"settings": "设置",
|
||
"achievements": "成就",
|
||
"exit": "离开",
|
||
"other": "其他",
|
||
"language": "语言",
|
||
"chinese": "简体中文",
|
||
"english": "English",
|
||
"back": "返回",
|
||
"confirm": "确定",
|
||
"cancel": "取消",
|
||
"llm_settings": "LLM设置",
|
||
"other_options": "其他选项",
|
||
"other_options_desc": "管理游戏进程和退出。",
|
||
"return_to_main": "回到主菜单",
|
||
"return_to_main_desc": "返回标题画面(未保存的进度将丢失)",
|
||
"quit_game": "结束游戏",
|
||
"quit_game_desc": "关闭程序并退出到桌面"
|
||
},
|
||
"save_load": {
|
||
"loading": "加载中...",
|
||
"new_save": "新建存档",
|
||
"new_save_desc": "输入自定义名称保存",
|
||
"quick_save": "快速保存",
|
||
"quick_save_desc": "使用自动生成的名称",
|
||
"empty": "暂无存档",
|
||
"game_time": "游戏时间: {time}",
|
||
"avatar_count": "角色: {alive}/{total}",
|
||
"event_count": "{count} 条事件",
|
||
"protagonist_tooltip": "主角(气运之子/穿越者)",
|
||
"load": "加载",
|
||
"save_success": "存档成功: {filename}",
|
||
"save_failed": "存档失败",
|
||
"load_confirm": "确定要加载存档 {filename} 吗?当前未保存的进度将丢失。",
|
||
"load_success": "读档成功",
|
||
"load_failed": "读档失败",
|
||
"fetch_failed": "获取存档列表失败",
|
||
"save_modal_title": "保存游戏",
|
||
"save_confirm": "保存",
|
||
"name_hint": "为存档输入一个名称(可选)",
|
||
"name_placeholder": "输入存档名称...",
|
||
"name_tip": "留空将使用自动生成的名称",
|
||
"name_too_long": "名称不能超过50个字符",
|
||
"name_invalid_chars": "名称只能包含中文、字母、数字和下划线"
|
||
},
|
||
"llm": {
|
||
"loading": "加载中...",
|
||
"fetch_failed": "获取配置失败",
|
||
"test_success": "连接测试成功",
|
||
"save_success": "配置已保存",
|
||
"test_save_failed": "测试或保存失败: {error}",
|
||
"api_key_required": "请填写 API Key",
|
||
"base_url_required": "请填写 Base URL",
|
||
"preset_applied": "已应用 {name} 预设 ({extra})",
|
||
"preset_extra_key": "请填写 API Key",
|
||
"preset_extra_local": "请确保 Ollama 已启动",
|
||
"sections": {
|
||
"quick_fill": "快速填充",
|
||
"api_config": "API 配置",
|
||
"model_selection": "模型选择",
|
||
"run_mode": "运行模式"
|
||
},
|
||
"labels": {
|
||
"api_key": "API Key",
|
||
"base_url": "Base URL",
|
||
"normal_model": "智能模型 (Normal)",
|
||
"fast_model": "快速模型 (Fast)",
|
||
"max_concurrent_requests": "最大并发数",
|
||
"what_is_api": "什么是 API / 如何获取?"
|
||
},
|
||
"descs": {
|
||
"normal_model": "用于处理复杂逻辑、剧情生成等任务",
|
||
"fast_model": "用于简单判定、频繁交互等任务",
|
||
"max_concurrent_requests": "同时请求 AI 的线程数。调大可加快速度,但可能触发 API 速率限制 (Rate Limit)。建议值:5-20。"
|
||
},
|
||
"placeholders": {
|
||
"api_key": "在此填入你自己的 API Key (通常以 sk- 开头)",
|
||
"base_url": "https://api.example.com/v1",
|
||
"normal_model": "例如: gpt-4, claude-3-opus, qwen-plus",
|
||
"fast_model": "例如: gpt-3.5-turbo, qwen-flash",
|
||
"max_concurrent_requests": "默认: 10"
|
||
},
|
||
"modes": {
|
||
"default": "均衡 (Default)",
|
||
"default_desc": "自动选择模型(推荐)",
|
||
"normal": "智能 (Normal)",
|
||
"normal_desc": "全用智能模型",
|
||
"fast": "快速 (Fast)",
|
||
"fast_desc": "全用快速模型"
|
||
},
|
||
"actions": {
|
||
"testing": "测试连接中...",
|
||
"test_and_save": "测试连通性并保存"
|
||
},
|
||
"help": {
|
||
"title": "什么是 API? 新手配置指南",
|
||
"q1_title": "🌐 1. 什么是 API?",
|
||
"q1_content": "API (应用程序接口) 就像是一条“电话线”。本游戏本身不具备思考能力,它通过这条线连接到远端的 AI 大脑 (如 Qwen 或 DeepSeek 的服务器)。当游戏进行每月结算并决定 NPC 动作时,会将相关信息通过 API 发给 AI,AI 思考后再把结果传回来。",
|
||
"q2_title": "⚡ 2. 推荐的模型 (2025版)",
|
||
"q2_qwen": "国内大厂 (阿里),稳定且免费额度大,适合入门。",
|
||
"q2_deepseek": "性价比极高,中文叙事逻辑更符合国人习惯。",
|
||
"q2_gemini": "Google 出品,综合性能顶尖。",
|
||
"q3_title": "📝 3. 如何填入配置?",
|
||
"q3_content": "获得 API 后,你需要填入以下三大核心参数才能使用,通常你可以在api提供方的文档中找到 these 参数怎么填:",
|
||
"q3_format_note": "⚠️ 重要提示:本游戏仅支持 OpenAI 兼容格式的 API。如果某个服务不支持 OpenAI 兼容格式,将无法使用。推荐使用预设中的服务(它们都已确认兼容)。如需使用其他服务,请确认其提供 OpenAI 兼容接口。",
|
||
"q3_base_url": "API Base URL (接口地址): AI 的访问大门,通常由厂商提供 (如 https://api.deepseek.com)。",
|
||
"q3_api_key": "API Key (密钥): 你的身份凭证,就像账号密码。",
|
||
"q3_model_name": "Model Name (模型名称): 告诉服务器你想用哪颗大脑,如 deepseek-chat 或 gemini-3-flash-preview。",
|
||
"q4_title": "🔗 4. 从哪里获取 Key?",
|
||
"q5_title": "🛡️ 5. 安全说明",
|
||
"q5_p1": "您的 API Key 仅保存在您的本地电脑配置文件中 (`static/local_config.yml`),由本地运行的游戏后端直接与模型厂商通信。本游戏 (Cultivation World Simulator) 是完全开源的程序,绝不会将您的 Key 上传至任何第三方服务器。也请注意不要把local_config.yml文件分享给任何人。",
|
||
"q5_p2": "使用token会产生费用,请自行评估使用成本。",
|
||
"confirm": "我明白了"
|
||
},
|
||
"presets": {
|
||
"openai": "OpenAI",
|
||
"qwen": "通义千问",
|
||
"deepseek": "DeepSeek",
|
||
"siliconflow": "硅基流动",
|
||
"openrouter": "OpenRouter",
|
||
"gemini": "Gemini",
|
||
"ollama": "Ollama (本地)"
|
||
},
|
||
"help_links": {
|
||
"openai": "OpenAI Platform",
|
||
"qwen": "阿里云百炼 (Qwen / 最推荐)",
|
||
"deepseek": "DeepSeek 开放平台 (国内推荐,便宜)",
|
||
"openrouter": "OpenRouter (全机型聚合,推荐)",
|
||
"siliconflow": "硅基流动 (国内聚合)",
|
||
"gemini": "Google AI Studio (Gemini)"
|
||
}
|
||
},
|
||
"game_start": {
|
||
"title": "开始游戏",
|
||
"description": "设定世界的初始状态。注意:游戏开始后,这些设定将无法更改。",
|
||
"labels": {
|
||
"init_npc_num": "初始修士数量",
|
||
"sect_num": "活跃宗门数量",
|
||
"protagonist_mode": "主角引入模式",
|
||
"new_npc_rate": "每月新生修士概率",
|
||
"world_history": "世界历史背景"
|
||
},
|
||
"tips": {
|
||
"sect_num": "宗门数量建议少于角色数量的一半",
|
||
"protagonist_random": "随机引入:每次生成角色时,有 5% 的概率使用预设的“小说主角”模板。",
|
||
"protagonist_all": "全部引入:开局时强制生成所有预设的“小说主角”。",
|
||
"world_history": "可以包括上古、中古、近古。注意:启用此功能会调用LLM,初始化时间会显著增加。"
|
||
},
|
||
"placeholders": {
|
||
"world_history": "请输入修仙界历史背景(可选)。"
|
||
},
|
||
"options": {
|
||
"protagonist_none": "不引入主角",
|
||
"protagonist_random": "随机引入主角",
|
||
"protagonist_all": "全部引入主角"
|
||
},
|
||
"actions": {
|
||
"start": "开始"
|
||
},
|
||
"messages": {
|
||
"load_failed": "加载配置失败",
|
||
"start_success": "配置已保存,正在初始化世界...",
|
||
"start_failed": "开始游戏失败"
|
||
}
|
||
},
|
||
"splash": {
|
||
"title": "AI修仙世界模拟器",
|
||
"start": "开始修仙",
|
||
"continue": "继续道途",
|
||
"settings": "系统设置"
|
||
},
|
||
"loading": {
|
||
"title": "AI修仙世界模拟器",
|
||
"subtitle": "AI Cultivation World Simulator",
|
||
"phase": {
|
||
"scanning_assets": "扫描天地资源",
|
||
"loading_map": "构建洪荒山川",
|
||
"processing_history": "推演天道历史",
|
||
"initializing_sects": "宗门入世",
|
||
"generating_avatars": "众修士降临",
|
||
"checking_llm": "连通天道意志",
|
||
"loading_save": "读取前世因果",
|
||
"parsing_data": "解析天地法则",
|
||
"restoring_state": "恢复时空位面",
|
||
"finalizing": "万象归位",
|
||
"complete": "天地初开",
|
||
"chaos": "混沌初始",
|
||
"generating_initial_events": "推演初始因果"
|
||
},
|
||
"error": "初始化失败",
|
||
"unknown_error": "未知错误",
|
||
"retry": "重新初始化",
|
||
"tips_label": "修行小贴士",
|
||
"elapsed": "已等待 {seconds} 秒",
|
||
"tips": [
|
||
"修改角色目标,可以改变该角色的行事风格",
|
||
"角色的性格特质,会极大影响角色的行事风格",
|
||
"在符合角色灵根的洞府修行,事半功倍",
|
||
"天灵根角色在任何洞府修行,都事半功倍",
|
||
"改变天地灵机,不仅会影响加成,还会微妙调整角色行事风格",
|
||
"偶尔会有修仙小说中的主角穿越进此方世界",
|
||
"每个角色都有自己的真实思考和情绪",
|
||
"除了修炼,炼丹和练气也很重要",
|
||
"参加拍卖会可能捡漏,但要小心恶人的衔尾追杀",
|
||
"江湖同道会根据你的行为取一个绰号",
|
||
"双修虽好,还请克制",
|
||
"在宗门驻地回血,可以回满HP",
|
||
"不同境界之间,战力差距极大,越阶挑战难于登天",
|
||
"天命之子特质的角色,好运连连,奇遇不断",
|
||
"现代世界的穿越者,只想回到现实世界,但这是不可能的",
|
||
"丹药有生效的时间限制",
|
||
"由于大模型需要思考,游戏启动可能耗时较久",
|
||
"模拟世界对大模型token消耗较大,请注意",
|
||
"开局时设定历史,整个修仙世界也会随之而改变",
|
||
"拍卖会中拍到的珍宝可能大大提升你的实力,但是要留好灵石"
|
||
]
|
||
},
|
||
"common": {
|
||
"year": "年",
|
||
"month": "月",
|
||
"none": "无",
|
||
"loading": "加载中...",
|
||
"version": "版本",
|
||
"confirm": "确认",
|
||
"cancel": "取消",
|
||
"error": "错误",
|
||
"success": "成功"
|
||
},
|
||
"game": {
|
||
"status_bar": {
|
||
"phenomenon": "天地灵机",
|
||
"effect": "效果:",
|
||
"duration": "持续 {years} 年",
|
||
"selector_title": "天道干涉:更易天象",
|
||
"empty_data": "暂无天象数据",
|
||
"cultivators": "修士: {count}",
|
||
"change_success": "天象已更易为:{name}",
|
||
"click_to_change": "(点击可更易天象)",
|
||
"author_bilibili": "B站空间",
|
||
"author_github": "Github仓库",
|
||
"hidden_domain": {
|
||
"label": "[秘境]",
|
||
"title": "秘境列表",
|
||
"empty": "暂无秘境数据",
|
||
"danger": "凶险",
|
||
"drop": "机缘",
|
||
"status_open": "开启中",
|
||
"status_closed": "未开启"
|
||
}
|
||
},
|
||
"controls": {
|
||
"resume": "继续游戏",
|
||
"pause": "暂停游戏",
|
||
"paused": "已暂停",
|
||
"closed_msg": "游戏已关闭,您可以安全关闭此标签页。"
|
||
},
|
||
"event_panel": {
|
||
"title": "事件记录",
|
||
"filter_all": "所有人",
|
||
"deceased": "(已故)",
|
||
"add_second": "+ 添加第二人",
|
||
"load_more": "向上滚动加载更多",
|
||
"empty_dual": "这两人之间暂无事件",
|
||
"empty_single": "该修士暂无事件",
|
||
"empty_none": "暂无事件"
|
||
},
|
||
"info_panel": {
|
||
"popup": {
|
||
"effect": "效果:",
|
||
"drops": "掉落/产出:",
|
||
"hq": "驻地:",
|
||
"types": {
|
||
"elixir": "丹药",
|
||
"plant": "植物",
|
||
"lode": "矿脉",
|
||
"item": "物品",
|
||
"weapon": "兵器",
|
||
"auxiliary": "辅助装备",
|
||
"technique": "功法",
|
||
"sect": "宗门",
|
||
"persona": "特质",
|
||
"SWORD": "剑",
|
||
"SABER": "刀",
|
||
"SPEAR": "枪",
|
||
"STAFF": "棍",
|
||
"FAN": "扇",
|
||
"WHIP": "鞭",
|
||
"ZITHER": "琴",
|
||
"FLUTE": "笛",
|
||
"HIDDEN_WEAPON": "暗器"
|
||
}
|
||
},
|
||
"avatar": {
|
||
"set_objective": "设定目标",
|
||
"clear_objective": "清空目标",
|
||
"dead_with_reason": "已故 ({reason})",
|
||
"unknown_reason": "未知原因",
|
||
"long_term_objective": "长期目标",
|
||
"short_term_objective": "短期目标",
|
||
"stats": {
|
||
"realm": "境界",
|
||
"age": "年龄",
|
||
"hp": "HP",
|
||
"gender": "性别",
|
||
"alignment": "阵营",
|
||
"sect": "宗门",
|
||
"rogue": "散修",
|
||
"root": "灵根",
|
||
"magic_stone": "灵石",
|
||
"appearance": "颜值",
|
||
"battle_strength": "基础战力",
|
||
"emotion": "情绪"
|
||
},
|
||
"sections": {
|
||
"thinking": "当前思考",
|
||
"traits": "特质",
|
||
"techniques_equipment": "功法与装备",
|
||
"materials": "材料",
|
||
"relations": "关系",
|
||
"current_effects": "当前效果"
|
||
},
|
||
"weapon_meta": "熟练度 {value}",
|
||
"relation_meta": "{owner}的{relation}",
|
||
"modals": {
|
||
"set_long_term": "设定长期目标",
|
||
"placeholder": "请输入目标...",
|
||
"set_failed": "设定失败",
|
||
"clear_confirm": "确定要清空该角色的长期目标吗?"
|
||
}
|
||
},
|
||
"region": {
|
||
"view_sect": "查看宗门详情",
|
||
"essence_title": "灵气环境",
|
||
"essence_info": "{type}行灵气 · 浓度 {density}",
|
||
"sections": {
|
||
"host": "洞府主人",
|
||
"animals": "动物分布",
|
||
"plants": "植物分布",
|
||
"lodes": "矿脉分布",
|
||
"market": "坊市交易"
|
||
},
|
||
"host_meta": "主人",
|
||
"no_host": "无主(可占据)",
|
||
"price_meta": "{price}灵石"
|
||
},
|
||
"sect": {
|
||
"stats": {
|
||
"alignment": "阵营",
|
||
"style": "风格",
|
||
"preferred": "擅长",
|
||
"members": "成员"
|
||
},
|
||
"sections": {
|
||
"intro": "宗门简介",
|
||
"hq": "驻地:{name}",
|
||
"bonus": "宗门加成",
|
||
"techniques": "独门绝学",
|
||
"members": "门下弟子"
|
||
},
|
||
"no_bonus": "无特殊加成"
|
||
}
|
||
}
|
||
}
|
||
} |