# @videojs/core [![package-badge]][package] > **⚠️ Beta** Close to stable. Experimental adoption in real projects. ## Overview `@videojs/core` provides runtime-agnostic core components and utilities shared across Video.js packages. These are foundational building blocks used by platform-specific implementations (DOM, HTML, React, React Native) to create consistent media player experiences. ## Update i18n copy The i18n source of truth lives in `src/core/i18n/locales`. Translation keys are opaque semantic paths such as `buttons.play`; English copy is stored separately, so it can change without renaming the key. When you add, rename, or remove player copy: 1. Update `src/core/i18n/locales/en.ts`. Add the English value under a short semantic path. Keep required `{placeholder}` tokens in the value. 2. Update every non-English file in `src/core/i18n/locales`. Use the same nested path, move an existing translation when the meaning is unchanged, and add or remove values with the English source. 3. Run `pnpm -F @videojs/core run generate:locales`. This validates locale completeness and refreshes text descriptors, locale loaders, CDN registration modules, and HTML/React re-exports. 4. Run `pnpm -F @videojs/core run generate:i18n-types`. This refreshes `TranslationParams` from the English keys and placeholders. 5. Update call sites and tests. Import the generated text descriptor from `src/core/i18n/text/.ts`; do not duplicate the key and English fallback at each call site. 6. Run focused tests and typecheck. At minimum, run the package tests that cover the changed copy and `pnpm typecheck`. ## Community If you need help with anything related to Video.js v10, or if you'd like to casually chat with other members: - [Join Discord Server][discord] - [See GitHub Discussions][gh-discussions] ## License [Apache-2.0](./LICENSE) [package]: https://www.npmjs.com/package/@videojs/core [package-badge]: https://img.shields.io/npm/v/@videojs/core?label=@videojs/core [discord]: https://discord.gg/JBqHh485uF [gh-discussions]: https://github.com/videojs/v10/discussions