diff --git a/aleksis/core/assets/messages.js b/aleksis/core/assets/messages.js index cc3ab1b19bc6601e31502b8a319d198aaa108725..16708c5ec7a1ed1e3d07aabc3d1ccbd18fd9127f 100644 --- a/aleksis/core/assets/messages.js +++ b/aleksis/core/assets/messages.js @@ -1,9 +1,5 @@ -import appDetails from "aleksisAppDetails"; +import { appMessages } from "aleksisAppImporter"; -for (const details of Object.values(appDetails)) { - if (details.hasMessages) { - import(details.assetDir + "/messages.json").then(function (appMessages) { - window.i18n.registerLocale(appMessages); - }); - } +for (const messages of Object.values(appMessages)) { + window.i18n.registerLocale(messages); } diff --git a/aleksis/core/vite.config.js b/aleksis/core/vite.config.js index 3eb8cb327c9446584dda436478304958eb3fbf70..00083a2998c6499b322c8a1e11f1108221478479 100644 --- a/aleksis/core/vite.config.js +++ b/aleksis/core/vite.config.js @@ -12,6 +12,7 @@ const django_values = JSON.parse(fs.readFileSync("./django-vite-values.json")); function generateAppImporter(appDetails) { let code = "let appObjects = {};\n"; + let code += "let appMessages = {};\n"; for (const [appPackage, appMeta] of Object.entries(appDetails)) { let indexPath = appMeta.assetDir + "/index.js"; let importAppName = @@ -20,8 +21,14 @@ function generateAppImporter(appDetails) { code += `console.debug("Importing AlekSIS app entrypoint for ${appPackage}");\n`; code += `import ${importAppName} from '${indexPath}';\n`; code += `appObjects["${appMeta.name}"] = ${importAppName};\n`; + if appMeta.hasMessages { + let messagesPath = appMeta.assetDir + "/messages.json"; + code += `import ${importAppName}Messages from '${messagesPath}';\n`; + code += `appMessages["${appMeta.name}"] = ${importAppName}Messages;\n`; + } } code += "export default appObjects;\n"; + code += "export { appObjects, appMessages };\n"; return code; } @@ -92,7 +99,6 @@ export default defineConfig({ plugins: [ virtual({ aleksisAppImporter: generateAppImporter(django_values.appDetails), - aleksisAppDetails: generateAppDetails(django_values.appDetails), }), vue(), nodeResolve({ modulePaths: [path.resolve("./node_modules")] }),