feat(admin-*,dashboard): add dashboard i18n extensions (#13763)

* virtual i18n module

* changeset

* fallback ns

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

* simplify merges

* optional for backward compat

* fix HMR

* fix generated deepMerge

* test
This commit is contained in:
Leonardo Benini
2025-10-23 21:16:43 +02:00
committed by GitHub
parent 012e30801e
commit 226984cf0f
25 changed files with 314 additions and 9 deletions

View File

@@ -0,0 +1,27 @@
import outdent from "outdent"
import { generateModule } from "../utils"
import { generateI18n } from "../i18n"
export async function generateVirtualI18nModule(
sources: Set<string>,
pluginMode = false
) {
const i18n = await generateI18n(sources)
const imports = [
'import { deepMerge } from "@medusajs/admin-shared"',
...i18n.imports
]
const code = outdent`
${imports.join("\n")}
${pluginMode
? `const i18nModule = { ${i18n.code} }`
: `export default { ${i18n.code} }`
}
`
return generateModule(code)
}

View File

@@ -4,3 +4,4 @@ export * from "./generate-virtual-link-module"
export * from "./generate-virtual-menu-item-module"
export * from "./generate-virtual-route-module"
export * from "./generate-virtual-widget-module"
export * from "./generate-virtual-i18n-module"