Skip to content

revert(core): unmerge i18n stack base#1707

Merged
luwes merged 2 commits into
mainfrom
revert/i18n-stack-accidental-merge
Jun 18, 2026
Merged

revert(core): unmerge i18n stack base#1707
luwes merged 2 commits into
mainfrom
revert/i18n-stack-accidental-merge

Conversation

@sampotts

@sampotts sampotts commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

Reverts the accidental squash merges of #1589 and #1590 so the i18n stack can be reviewed and merged in order again.

Changes

Testing

  1. pnpm exec tsgo --build --force
  2. pnpm typecheck
  3. pnpm test

Note

High Risk
Large removal of a public @videojs/core/i18n API and all shipped locale packs; any code or docs still expecting the merged stack will break until the stacked PRs land again.

Overview
Rolls back the squashed i18n foundation and locale-pack work so the stack can land again in sequence. @videojs/core/i18n is removed end-to-end: registry, translator, browser translation, loadLocale, codegen (generate-i18n-locales), 50+ locale files, tests, and package.json exports / sideEffects for i18n. pnpm check:workspace no longer validates locale consistency.

UI cores go back to hardcoded English control labels (e.g. 'Enable captions', 'Start casting') instead of opaque i18n keys and resolveOptionalControlLabel. Related core exports (error-dialog i18n, input-feedback labels, resolve-control helpers) are dropped with that layer.

internal/design/i18n.md is marked draft again and rewritten toward a smaller key set and simpler provider story (distinct from the reverted implementation).

Note: The diff may be incomplete relative to the PR title (e.g. html/react i18n packages)—anything still importing removed core i18n paths would need follow-up in the revert branch.

Reviewed by Cursor Bugbot for commit 371af75. Bugbot is set up for automated code reviews on this repo. Configure here.

@netlify

netlify Bot commented Jun 18, 2026

Copy link
Copy Markdown

Deploy Preview for vjs10-site ready!

Name Link
🔨 Latest commit 371af75
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/6a346e6d41d74700085aa40a
😎 Deploy Preview https://deploy-preview-1707--vjs10-site.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@vercel

vercel Bot commented Jun 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v10-sandbox Ready Ready Preview, Comment Jun 18, 2026 10:17pm

Request Review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c451ef3. Configure here.

Comment thread internal/design/i18n.md
@github-actions

github-actions Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

📦 Bundle Size Report

🎨 @videojs/html

Path Base PR Diff %
/video/minimal-skin 44.62 kB 44.01 kB -625 B -1.4% 🔽
/video/minimal-skin.tailwind 45.16 kB 44.58 kB -591 B -1.3% 🔽
/video/skin 44.91 kB 44.28 kB -642 B -1.4% 🔽
/video/skin.tailwind 45.59 kB 45.00 kB -613 B -1.3% 🔽
/audio/minimal-skin 37.21 kB 36.62 kB -605 B -1.6% 🔽
/audio/minimal-skin.tailwind 37.59 kB 37.04 kB -565 B -1.5% 🔽
/audio/skin 38.42 kB 37.80 kB -643 B -1.6% 🔽
/audio/skin.tailwind 38.77 kB 38.17 kB -613 B -1.5% 🔽
/live-video/minimal-skin 43.70 kB 43.12 kB -597 B -1.3% 🔽
/live-video/minimal-skin.tailwind 44.14 kB 43.58 kB -569 B -1.3% 🔽
/live-video/skin 43.67 kB 43.08 kB -602 B -1.3% 🔽
/live-video/skin.tailwind 44.21 kB 43.62 kB -601 B -1.3% 🔽
/live-audio/minimal-skin 30.15 kB 29.73 kB -430 B -1.4% 🔽
/live-audio/minimal-skin.tailwind 29.64 kB 29.20 kB -446 B -1.5% 🔽
/live-audio/skin 31.50 kB 31.04 kB -466 B -1.4% 🔽
/live-audio/skin.tailwind 31.12 kB 30.66 kB -474 B -1.5% 🔽
/ui/compounds 8.67 kB 8.69 kB +26 B +0.3% 🔺
/ui/time-slider 3.92 kB 4.01 kB +97 B +2.4% 🔺
/video (default) 44.92 kB 44.32 kB -615 B -1.3% 🔽
/video (default + hls) 184.43 kB 183.79 kB -653 B -0.3% 🔽
/video (minimal) 44.58 kB 43.98 kB -620 B -1.4% 🔽
/video (minimal + hls) 184.27 kB 183.63 kB -651 B -0.3% 🔽
/audio (default) 38.38 kB 37.83 kB -561 B -1.4% 🔽
/audio (minimal) 37.21 kB 36.61 kB -608 B -1.6% 🔽
Presets (7)
Entry Size
/video (default) 44.32 kB
/video (default + hls) 183.79 kB
/video (minimal) 43.98 kB
/video (minimal + hls) 183.63 kB
/audio (default) 37.83 kB
/audio (minimal) 36.61 kB
/background 4.20 kB
Media (10)
Entry Size
/media/background-video 1.14 kB
/media/container 1.72 kB
/media/dash-video 242.78 kB
/media/hls-video 141.27 kB
/media/mux-audio 163.91 kB
/media/mux-video 163.68 kB
/media/native-hls-video 9.05 kB
/media/simple-hls-audio-only 16.99 kB
/media/simple-hls-video 18.83 kB
/media/vimeo-video 12.31 kB
Players (5)
Entry Size
/video/player 8.07 kB
/audio/player 5.38 kB
/background/player 3.92 kB
/live-video/player 7.64 kB
/live-audio/player 5.39 kB
Skins (30)
Entry Type Size
/video/minimal-skin.css css 5.45 kB
/video/skin.css css 5.43 kB
/video/minimal-skin js 44.01 kB
/video/minimal-skin.tailwind js 44.58 kB
/video/skin js 44.28 kB
/video/skin.tailwind js 45.00 kB
/audio/minimal-skin.css css 3.60 kB
/audio/skin.css css 3.53 kB
/audio/minimal-skin js 36.62 kB
/audio/minimal-skin.tailwind js 37.04 kB
/audio/skin js 37.80 kB
/audio/skin.tailwind js 38.17 kB
/background/skin.css css 133 B
/background/skin js 1.14 kB
/live-video/minimal-skin.css css 5.45 kB
/live-video/skin.css css 5.43 kB
/live-video/minimal-skin js 43.12 kB
/live-video/minimal-skin.tailwind js 43.58 kB
/live-video/skin js 43.08 kB
/live-video/skin.tailwind js 43.62 kB
/live-audio/minimal-skin.css css 3.60 kB
/live-audio/skin.css css 3.53 kB
/live-audio/minimal-skin js 29.73 kB
/live-audio/minimal-skin.tailwind js 29.20 kB
/live-audio/skin js 31.04 kB
/live-audio/skin.tailwind js 30.66 kB
/global.css css 176 B
/shared.css css 88 B
/tailwind.css css 228 B
/skin-element js 1.44 kB
UI Components (38)
Entry Size
/ui/airplay-button 3.59 kB
/ui/alert-dialog 1.23 kB
/ui/alert-dialog-close 483 B
/ui/alert-dialog-description 423 B
/ui/alert-dialog-title 348 B
/ui/buffering-indicator 2.93 kB
/ui/captions-button 3.68 kB
/ui/captions-radio-group 3.34 kB
/ui/cast-button 3.64 kB
/ui/compounds 8.69 kB
/ui/controls 2.40 kB
/ui/error-dialog 3.34 kB
/ui/fullscreen-button 3.60 kB
/ui/hotkey 2.21 kB
/ui/menu 5.60 kB
/ui/mute-button 3.67 kB
/ui/pip-button 3.61 kB
/ui/play-button 3.61 kB
/ui/playback-rate-button 3.66 kB
/ui/playback-rate-radio-group 3.03 kB
/ui/popover 1.98 kB
/ui/poster 2.28 kB
/ui/quality-radio-group 2.41 kB
/ui/seek-button 3.61 kB
/ui/seek-indicator 3.81 kB
/ui/seek-indicator-value 180 B
/ui/slider 1.52 kB
/ui/status-announcer 3.56 kB
/ui/status-indicator 3.69 kB
/ui/status-indicator-value 211 B
/ui/thumbnail 3.28 kB
/ui/time 2.96 kB
/ui/time-slider 4.01 kB
/ui/tooltip 2.24 kB
/ui/volume-indicator 3.88 kB
/ui/volume-indicator-fill 178 B
/ui/volume-indicator-value 201 B
/ui/volume-slider 2.88 kB

Sizes are marginal over the root entry point.

⚛️ @videojs/react

Path Base PR Diff %
/video/minimal-skin 37.42 kB 36.81 kB -618 B -1.6% 🔽
/video/minimal-skin.tailwind 43.10 kB 42.58 kB -537 B -1.2% 🔽
/video/skin 37.39 kB 36.73 kB -669 B -1.7% 🔽
/video/skin.tailwind 43.09 kB 42.46 kB -644 B -1.5% 🔽
/audio/minimal-skin 30.52 kB 29.98 kB -555 B -1.8% 🔽
/audio/minimal-skin.tailwind 32.32 kB 31.76 kB -574 B -1.7% 🔽
/audio/skin 30.48 kB 29.91 kB -579 B -1.9% 🔽
/audio/skin.tailwind 34.36 kB 33.75 kB -629 B -1.8% 🔽
/live-video/minimal-skin 32.91 kB 32.56 kB -353 B -1.0% 🔽
/live-video/minimal-skin.tailwind 38.53 kB 38.22 kB -308 B -0.8% 🔽
/live-video/skin 32.94 kB 32.58 kB -362 B -1.1% 🔽
/live-video/skin.tailwind 38.61 kB 38.27 kB -356 B -0.9% 🔽
/ui/time-slider 4.24 kB 4.23 kB -15 B -0.3% 🔽
/video (default) 37.38 kB 36.83 kB -561 B -1.5% 🔽
/video (default + hls) 175.59 kB 175.18 kB -419 B -0.2% 🔽
/video (minimal) 37.50 kB 36.91 kB -611 B -1.6% 🔽
/video (minimal + hls) 175.83 kB 175.13 kB -718 B -0.4% 🔽
/audio (default) 30.57 kB 29.97 kB -622 B -2.0% 🔽
/audio (minimal) 30.62 kB 30.04 kB -596 B -1.9% 🔽
Presets (7)
Entry Size
/video (default) 36.83 kB
/video (default + hls) 175.18 kB
/video (minimal) 36.91 kB
/video (minimal + hls) 175.13 kB
/audio (default) 29.97 kB
/audio (minimal) 30.04 kB
/background 754 B
Media (9)
Entry Size
/media/background-video 575 B
/media/dash-video 241.23 kB
/media/hls-video 139.80 kB
/media/mux-audio 162.26 kB
/media/mux-video 162.26 kB
/media/native-hls-video 7.39 kB
/media/simple-hls-audio-only 15.44 kB
/media/simple-hls-video 17.18 kB
/media/vimeo-video 10.58 kB
Skins (27)
Entry Type Size
/tailwind.css css 228 B
/video/minimal-skin.css css 5.37 kB
/video/skin.css css 5.34 kB
/video/minimal-skin js 36.81 kB
/video/minimal-skin.tailwind js 42.58 kB
/video/skin js 36.73 kB
/video/skin.tailwind js 42.46 kB
/audio/minimal-skin.css css 3.47 kB
/audio/skin.css css 3.39 kB
/audio/minimal-skin js 29.98 kB
/audio/minimal-skin.tailwind js 31.76 kB
/audio/skin js 29.91 kB
/audio/skin.tailwind js 33.75 kB
/background/skin.css css 90 B
/background/skin js 272 B
/live-video/minimal-skin.css css 5.37 kB
/live-video/skin.css css 5.34 kB
/live-video/minimal-skin js 32.56 kB
/live-video/minimal-skin.tailwind js 38.22 kB
/live-video/skin js 32.58 kB
/live-video/skin.tailwind js 38.27 kB
/live-audio/minimal-skin.css css 3.47 kB
/live-audio/skin.css css 3.39 kB
/live-audio/minimal-skin js 21.74 kB
/live-audio/minimal-skin.tailwind js 24.64 kB
/live-audio/skin js 21.78 kB
/live-audio/skin.tailwind js 24.78 kB
UI Components (32)
Entry Size
/ui/airplay-button 2.74 kB
/ui/alert-dialog 1.27 kB
/ui/buffering-indicator 2.44 kB
/ui/captions-button 2.77 kB
/ui/captions-radio-group 2.87 kB
/ui/cast-button 2.71 kB
/ui/controls 2.47 kB
/ui/error-dialog 2.68 kB
/ui/fullscreen-button 2.73 kB
/ui/gesture 2.21 kB
/ui/hotkey 2.11 kB
/ui/live-button 3.33 kB
/ui/menu 7.28 kB
/ui/mute-button 2.71 kB
/ui/pip-button 3.06 kB
/ui/play-button 2.77 kB
/ui/playback-rate 2.85 kB
/ui/playback-rate-button 2.73 kB
/ui/popover 2.37 kB
/ui/poster 2.40 kB
/ui/quality 2.99 kB
/ui/seek-button 2.74 kB
/ui/seek-indicator 2.17 kB
/ui/slider 3.70 kB
/ui/status-announcer 1.93 kB
/ui/status-indicator 2.17 kB
/ui/thumbnail 2.68 kB
/ui/time 3.30 kB
/ui/time-slider 4.23 kB
/ui/tooltip 2.68 kB
/ui/volume-indicator 2.13 kB
/ui/volume-slider 4.13 kB

Sizes are marginal over the root entry point.

🧩 @videojs/core

Path Base PR Diff %
. 10.50 kB 9.08 kB -1.43 kB -13.6% 🔽
/i18n 29.34 kB −29.34 kB −100% 🗑️
/i18n/locales/all 26.96 kB −26.96 kB −100% 🗑️
/i18n/locales/ar 1017 B −1017 B −100% 🗑️
/i18n/locales/az 914 B −914 B −100% 🗑️
/i18n/locales/bg 1.02 kB −1.02 kB −100% 🗑️
/i18n/locales/bn 1.04 kB −1.04 kB −100% 🗑️
/i18n/locales/bs 837 B −837 B −100% 🗑️
/i18n/locales/ca 878 B −878 B −100% 🗑️
/i18n/locales/cs 865 B −865 B −100% 🗑️
/i18n/locales/cy 829 B −829 B −100% 🗑️
/i18n/locales/da 821 B −821 B −100% 🗑️
/i18n/locales/de 916 B −916 B −100% 🗑️
/i18n/locales/el 1.20 kB −1.20 kB −100% 🗑️
/i18n/locales/en 645 B −645 B −100% 🗑️
/i18n/locales/es 829 B −829 B −100% 🗑️
/i18n/locales/et 882 B −882 B −100% 🗑️
/i18n/locales/eu 828 B −828 B −100% 🗑️
/i18n/locales/fa 1008 B −1008 B −100% 🗑️
/i18n/locales/fi 856 B −856 B −100% 🗑️
/i18n/locales/fr 896 B −896 B −100% 🗑️
/i18n/locales/gd 917 B −917 B −100% 🗑️
/i18n/locales/gl 816 B −816 B −100% 🗑️
/i18n/locales/he 940 B −940 B −100% 🗑️
/i18n/locales/hi 1.06 kB −1.06 kB −100% 🗑️
/i18n/locales/hr 846 B −846 B −100% 🗑️
/i18n/locales/hu 913 B −913 B −100% 🗑️
/i18n/locales/it 856 B −856 B −100% 🗑️
/i18n/locales/ja 997 B −997 B −100% 🗑️
/i18n/locales/ko 960 B −960 B −100% 🗑️
/i18n/locales/lv 886 B −886 B −100% 🗑️
/i18n/locales/mr 1.07 kB −1.07 kB −100% 🗑️
/i18n/locales/nb 814 B −814 B −100% 🗑️
/i18n/locales/ne 1.06 kB −1.06 kB −100% 🗑️
/i18n/locales/nl 834 B −834 B −100% 🗑️
/i18n/locales/nn 801 B −801 B −100% 🗑️
/i18n/locales/oc 904 B −904 B −100% 🗑️
/i18n/locales/pl 951 B −951 B −100% 🗑️
/i18n/locales/pt 836 B −836 B −100% 🗑️
/i18n/locales/pt-BR 836 B −836 B −100% 🗑️
/i18n/locales/pt-PT 807 B −807 B −100% 🗑️
/i18n/locales/ro 882 B −882 B −100% 🗑️
/i18n/locales/ru 1.10 kB −1.10 kB −100% 🗑️
/i18n/locales/sk 929 B −929 B −100% 🗑️
/i18n/locales/sl 861 B −861 B −100% 🗑️
/i18n/locales/sr 827 B −827 B −100% 🗑️
/i18n/locales/sv 825 B −825 B −100% 🗑️
/i18n/locales/te 1.10 kB −1.10 kB −100% 🗑️
/i18n/locales/th 1.08 kB −1.08 kB −100% 🗑️
/i18n/locales/tr 906 B −906 B −100% 🗑️
/i18n/locales/uk 1.13 kB −1.13 kB −100% 🗑️
/i18n/locales/vi 903 B −903 B −100% 🗑️
/i18n/locales/zh 810 B −810 B −100% 🗑️
/i18n/locales/zh-CN 810 B −810 B −100% 🗑️
/i18n/locales/zh-TW 821 B −821 B −100% 🗑️
Entries (14)
Entry Size
. 9.08 kB
/dom 17.02 kB
/dom/media/custom-media-element 2.09 kB
/dom/media/dash 236.88 kB
/dom/media/google-cast 4.04 kB
/dom/media/hls 135.63 kB
/dom/media/media-host 1.25 kB
/dom/media/media-played-ranges 576 B
/dom/media/mux 151.26 kB
/dom/media/native-hls 3.05 kB
/dom/media/simple-hls 16.56 kB
/dom/media/simple-hls-audio-only 14.75 kB
/dom/media/vimeo 9.86 kB
/media/predicate 573 B
🏷️ @videojs/element — no changes
Entries (2)
Entry Size
. 996 B
/context 943 B
📦 @videojs/store — no changes
Entries (3)
Entry Size
. 1.39 kB
/html 696 B
/react 360 B

🔧 @videojs/utils

Path Base PR Diff %
/dom 2.67 kB 2.26 kB -423 B -15.5% 🔽
/time 930 B 478 B -452 B -48.6% 🔽
Entries (10)
Entry Size
/array 104 B
/dom 2.26 kB
/events 319 B
/function 327 B
/object 275 B
/predicate 265 B
/string 231 B
/style 190 B
/time 478 B
/number 158 B
📦 @videojs/spf — no changes
Entries (4)
Entry Size
. 4.45 kB
/dom 6.33 kB
/hls 15.44 kB
/background-looping-video 12.95 kB

ℹ️ How to interpret

All sizes are standalone totals (minified + brotli).

Icon Meaning
No change
🔺 Increased ≤ 10%
🔴 Increased > 10%
🔽 Decreased
🆕 New (no baseline)

Run pnpm size locally to check current sizes.

@sampotts sampotts enabled auto-merge (squash) June 18, 2026 21:38
@sampotts sampotts closed this Jun 18, 2026
auto-merge was automatically disabled June 18, 2026 21:53

Pull request was closed

@sampotts sampotts reopened this Jun 18, 2026
@luwes luwes merged commit edfec1c into main Jun 18, 2026
26 checks passed
@luwes luwes deleted the revert/i18n-stack-accidental-merge branch June 18, 2026 22:20
@luwes luwes mentioned this pull request Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants