Skip to content

Conversation

leobenzol
Copy link
Contributor

Summary

What

Adds functionality to directly export custom translations to be used in the admin dashboard, supporting both "direct" extensions from the main backend project as well as from plugins

Why

It is currently possible to extend the react-i18next instance provided by medusa, but the process is clunky: it requires the same boilerplate component in every plugin and project and the "extender" component must be used in each custom route/widget, since one cant access the common parent scope. See one of my plugins example

How

By creating a new virtual module for i18n, just like other admin features like routes/widgets etc... the DashboardApp now merges all i18n virtual modules into a single "resources" object which is used to initialize the i18n instance directly

Testing

Local testing. Checked extensions in the main project and in plugins(both plugin:develop and plugin:publish) in development and production env.

I noticed now that the other virtual modules have some form of test for the code generation part, should I add one for i18n as well?


Examples

Provide examples or code snippets that demonstrate how this feature works, or how it can be used in practice.
This helps with documentation and ensures maintainers can quickly understand and verify the change.

// Example usage

// In src/admin/i18n/index.ts:
import en from "./en.json" with { type: "json" } // "with" clause is mandatory
import fr from "./fr.json" with { type: "json" }

export default {
    en: {
        customNs: en,
        translation: en // will be merged with the default namespace
    },
    fr: {
        customNs: fr,
        translation: fr
    }
}

Checklist

Please ensure the following before requesting a review:

  • I have added a changeset for this PR
    • Every non-breaking change should be marked as a patch
    • To add a changeset, run yarn changeset and follow the prompts
  • The changes are covered by relevant tests
  • I have verified the code works as intended locally
  • I have linked the related issue(s) if applicable

Additional Context

Closes #13698

@leobenzol leobenzol requested a review from a team as a code owner October 16, 2025 11:20
Copy link

changeset-bot bot commented Oct 16, 2025

🦋 Changeset detected

Latest commit: 7459585

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 74 packages
Name Type
@medusajs/admin-vite-plugin Patch
@medusajs/admin-bundler Patch
@medusajs/admin-shared Patch
@medusajs/dashboard Patch
@medusajs/medusa Patch
@medusajs/admin-sdk Patch
@medusajs/test-utils Patch
@medusajs/medusa-oas-cli Patch
integration-tests-http Patch
@medusajs/draft-order Patch
@medusajs/analytics Patch
@medusajs/api-key Patch
@medusajs/auth Patch
@medusajs/caching Patch
@medusajs/cart Patch
@medusajs/currency Patch
@medusajs/customer Patch
@medusajs/file Patch
@medusajs/fulfillment Patch
@medusajs/index Patch
@medusajs/inventory Patch
@medusajs/link-modules Patch
@medusajs/locking Patch
@medusajs/notification Patch
@medusajs/order Patch
@medusajs/payment Patch
@medusajs/pricing Patch
@medusajs/product Patch
@medusajs/promotion Patch
@medusajs/region Patch
@medusajs/sales-channel Patch
@medusajs/settings Patch
@medusajs/stock-location Patch
@medusajs/store Patch
@medusajs/tax Patch
@medusajs/user Patch
@medusajs/workflow-engine-inmemory Patch
@medusajs/workflow-engine-redis Patch
@medusajs/oas-github-ci Patch
@medusajs/cache-inmemory Patch
@medusajs/cache-redis Patch
@medusajs/event-bus-local Patch
@medusajs/event-bus-redis Patch
@medusajs/analytics-local Patch
@medusajs/analytics-posthog Patch
@medusajs/auth-emailpass Patch
@medusajs/auth-github Patch
@medusajs/auth-google Patch
@medusajs/caching-redis Patch
@medusajs/file-local Patch
@medusajs/file-s3 Patch
@medusajs/fulfillment-manual Patch
@medusajs/locking-postgres Patch
@medusajs/locking-redis Patch
@medusajs/notification-local Patch
@medusajs/notification-sendgrid Patch
@medusajs/payment-stripe Patch
@medusajs/core-flows Patch
@medusajs/framework Patch
@medusajs/js-sdk Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/types Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/cli Patch
@medusajs/deps Patch
@medusajs/telemetry Patch
@medusajs/icons Patch
@medusajs/toolbox Patch
@medusajs/ui-preset Patch
create-medusa-app Patch
medusa-dev-cli Patch
@medusajs/ui Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link

vercel bot commented Oct 16, 2025

@leobenzol is attempting to deploy a commit to the medusajs Team on Vercel.

A member of the Team first needs to authorize it.

@leobenzol leobenzol changed the title Feat/admin i18n extension feat(admin-*,dashboard): add dashboard i18n extensions Oct 16, 2025
fallback to the default "translation" ns if the key isnt found. Allows to use a single "useTranslation("customNs")" hook for both custom and medusa-provided keys
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: react-i18next provider not available in plugins

1 participant