[spine-utils.js (line 35)](/Users/tianmokeji/Desktop/特效/SpineViewer/SpineViewer/js/spine-utils.js:35) 统一拦截绝对路径、..、Windows 盘符、UNC、URI、控制字符和符号链接越界。 跨素材贴图只能使用已枚举、验证且位于 Eagle 素材目录内的文件。 [spine-render.js (line 62)](/Users/tianmokeji/Desktop/特效/SpineViewer/SpineViewer/js/spine-render.js:62) 已删除未经验证的路径备用拼接。 自动缩略图只写当前回调提供的 dest,不再调用接口改写同组素材。 已删除后台整组补刷进程及 relatedDataPaths。 [viewer/spine.html (line 482)](/Users/tianmokeji/Desktop/特效/SpineViewer/SpineViewer/viewer/spine.html:482) 的手动缩略图只针对当前素材,并核对素材 ID、文件名和扩展名。 当前素材已有自定义缩略图时,会提示替换后无法自动恢复并要求确认。 手动生成的中间文件改存系统临时目录,API 失败时不再直接写 Eagle 素材目录。 八种语言文案及 README 已同步。 处理历史日志遗留问题
82 lines
4.4 KiB
JSON
82 lines
4.4 KiB
JSON
{
|
||
"manifest": {
|
||
"app": {
|
||
"name": "SpineViewer"
|
||
}
|
||
},
|
||
"viewer": {
|
||
"title": "Spine 预览",
|
||
"skin": "皮肤",
|
||
"play": "▶ 播放",
|
||
"pause": "⏸ 暂停",
|
||
"static": "▮ 静帧",
|
||
"staticLabel": "静帧",
|
||
"playPauseTitle": "播放/暂停 (空格)",
|
||
"loop": "循环",
|
||
"speed": "速度",
|
||
"pma": "预乘",
|
||
"pmaTitle": "用于以 Premultiplied Alpha(PMA)方式导出的贴图",
|
||
"background": "背景",
|
||
"backgroundTitle": "50×50 方格背景,随画布移动和缩放,并参与混合模式",
|
||
"thumbnail": "设为当前素材缩略图",
|
||
"thumbnailTitle": "将当前帧设为当前素材的 400×400 自定义缩略图",
|
||
"versionTitle": "Spine 版本",
|
||
"reloadTitle": "重新加载目录",
|
||
"animationList": "动画列表",
|
||
"animations": "动画",
|
||
"errorTitle": "无法预览",
|
||
"durationPlaceholder": "时长 --",
|
||
"keyframesLegend": "蓝色短线:关键帧",
|
||
"keyframesLegendTitle": "蓝色短线表示动画中至少一个骨骼、插槽或约束属性在该时刻有关键帧",
|
||
"keyframesHint": "蓝色短线表示动画关键帧;悬停短线可查看时间和帧号",
|
||
"timePlaceholder": "0.00 / 0.00 秒 · 0 / 0 帧",
|
||
"staticPoseTitle": "静帧姿势 · 第 1 帧",
|
||
"keyframeTitle": "关键帧 · {time} · 第 {frame} 帧",
|
||
"timelineStatic": "静帧 · 1 帧",
|
||
"timelineDuration": "时长 {time} · {frames} 帧",
|
||
"readoutStatic": "静帧 · 1 / 1 帧",
|
||
"readout": "{time} / {total} · {frame} / {totalFrames} 帧",
|
||
"rulerStatic": "0 秒(静帧)",
|
||
"seconds": "{value} 秒",
|
||
"imagePreview": "图片预览(未检测到配套 Spine 资源)",
|
||
"generating": "正在生成并更新 Eagle 缩略图…",
|
||
"thumbUpdated": "Eagle 缩略图已更新 · {format} {size}KB",
|
||
"thumbWrittenNoRefresh": "缩略图已写入;自动刷新失败:{error}",
|
||
"recentered": "已回到画布中心",
|
||
"pmaOn": "预乘已开启",
|
||
"pmaOff": "预乘已关闭",
|
||
"pmaRemembered": "{state} · 已记住此素材的设置",
|
||
"pmaSaveFailed": "预乘已切换,但设置保存失败:{error}",
|
||
"badgeFailed": "Spine badge 加载失败",
|
||
"runtimeFailed": "无法加载 Spine 运行时:{file}",
|
||
"compoundName": "Eagle 尚未同步复合后缀名称,请重新打开素材库",
|
||
"txtRegistered": "此条目仍按 TXT 登记,请在 Eagle 重新生成缩略图并重新打开素材库",
|
||
"apiHttp": "Eagle API 返回 HTTP {status}",
|
||
"noSkeletonForThumb": "尚未加载骨骼,无法生成缩略图",
|
||
"noItemId": "无法从素材路径识别 Eagle 项目 ID",
|
||
"itemMismatch": "当前预览文件与 Eagle 素材信息不一致,已取消缩略图更新",
|
||
"replaceCustomThumbnailConfirm": "当前素材已有自定义缩略图。继续后将替换它,且插件无法自动恢复原图。是否继续?",
|
||
"thumbnailFailed": "生成缩略图失败: {error}",
|
||
"imageLoadFailed": "图片加载失败",
|
||
"settingsNotReady": "素材设置尚未就绪",
|
||
"noSkeletonFile": "未找到骨骼文件",
|
||
"noSkeletonFileMsg": "未能定位到与所选文件配套的 Spine 骨骼文件(.skel / .skel.bytes / .json)。\n\n请将同一套 Spine 导出文件导入 Eagle。",
|
||
"noAtlas": "未找到 Atlas",
|
||
"noAtlasMsg": "未能定位到配套的 .atlas / .atlas.txt 文件。",
|
||
"unsupportedVersion": "版本不支持",
|
||
"unsupportedVersionMsg": "无法识别的 Spine 版本:{version}\n支持的版本:{list}",
|
||
"unknownVersion": "未知",
|
||
"runtimeLoadFailed": "运行时加载失败",
|
||
"atlasLoadFailed": "Atlas 加载失败",
|
||
"emptySkeleton": "骨骼数据为空",
|
||
"emptySkeletonMsg": "未能读取到有效的骨骼数据。",
|
||
"missingFile": "缺少文件",
|
||
"missingFileMsg": "未传入文件路径参数。",
|
||
"fileNotExist": "文件不存在",
|
||
"loadFailed": "加载失败",
|
||
"notSpineText": "此文件不是 .atlas.txt 或 .skel.bytes 格式的 Spine 资源。",
|
||
"truncated256": "\n\n(仅显示前 256 KB)",
|
||
"truncated1m": "\n\n(文件较大,仅显示前 1 MB)"
|
||
}
|
||
}
|