[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
5.8 KiB
JSON
82 lines
5.8 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 バッジの読み込みに失敗しました",
|
||
"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 のみ表示)"
|
||
}
|
||
}
|