diff --git a/release/MAC_arm64_SpineViewer/viewer/spine.html b/release/MAC_arm64_SpineViewer/viewer/spine.html index c649094..f45039a 100644 --- a/release/MAC_arm64_SpineViewer/viewer/spine.html +++ b/release/MAC_arm64_SpineViewer/viewer/spine.html @@ -955,10 +955,10 @@ const maxMarkers = 200; const step = Math.max(1, Math.ceil(sorted.length / maxMarkers)); for (let i = 0; i < sorted.length; i += step) { - const t = sorted[i]; + const keyframeTime = sorted[i]; const span = document.createElement('span'); - span.style.left = (duration > 0 ? (t / duration) * 100 : 0) + '%'; - span.title = t('viewer.keyframeTitle', { time: formatSeconds(t), frame: frameOf(t) }); + span.style.left = (duration > 0 ? (keyframeTime / duration) * 100 : 0) + '%'; + span.title = t('viewer.keyframeTitle', { time: formatSeconds(keyframeTime), frame: frameOf(keyframeTime) }); span.setAttribute('aria-label', span.title); keyframesEl.appendChild(span); } diff --git a/release/WIN_x64_SpineViewer/viewer/spine.html b/release/WIN_x64_SpineViewer/viewer/spine.html index c649094..f45039a 100644 --- a/release/WIN_x64_SpineViewer/viewer/spine.html +++ b/release/WIN_x64_SpineViewer/viewer/spine.html @@ -955,10 +955,10 @@ const maxMarkers = 200; const step = Math.max(1, Math.ceil(sorted.length / maxMarkers)); for (let i = 0; i < sorted.length; i += step) { - const t = sorted[i]; + const keyframeTime = sorted[i]; const span = document.createElement('span'); - span.style.left = (duration > 0 ? (t / duration) * 100 : 0) + '%'; - span.title = t('viewer.keyframeTitle', { time: formatSeconds(t), frame: frameOf(t) }); + span.style.left = (duration > 0 ? (keyframeTime / duration) * 100 : 0) + '%'; + span.title = t('viewer.keyframeTitle', { time: formatSeconds(keyframeTime), frame: frameOf(keyframeTime) }); span.setAttribute('aria-label', span.title); keyframesEl.appendChild(span); } diff --git a/tests/viewer-i18n.test.js b/tests/viewer-i18n.test.js new file mode 100644 index 0000000..0f94208 --- /dev/null +++ b/tests/viewer-i18n.test.js @@ -0,0 +1,39 @@ +'use strict'; +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); +const vm = require('node:vm'); +const roots = ['.', 'release/MAC_arm64_SpineViewer', 'release/WIN_x64_SpineViewer']; +for (const root of roots) { + const html = fs.readFileSync(path.join(root, 'viewer/spine.html'), 'utf8'); + const script = html.match(/