Просмотр исходного кода

refactor(dashboard): Improve typings of virtual translations

Michael Bromley 2 месяцев назад
Родитель
Сommit
d7d668d99f

+ 1 - 1
packages/dashboard/src/lib/lib/load-i18n-messages.ts

@@ -14,7 +14,7 @@ export async function loadI18nMessages(locale: string): Promise<Messages> {
         const { messages } = await import(`../../i18n/locales/${locale}.po`);
         const pluginTranslations = await import('virtual:plugin-translations');
         const safeLocale = locale.replace(/-/g, '_');
-        const pluginTranslationsForLocale = pluginTranslations[safeLocale] ?? {};
+        const pluginTranslationsForLocale = pluginTranslations.default[safeLocale] ?? {};
         return { ...messages, ...pluginTranslationsForLocale };
     }
 }

+ 3 - 0
packages/dashboard/src/lib/virtual.d.ts

@@ -5,6 +5,9 @@ declare module 'virtual:admin-api-schema' {
 declare module 'virtual:dashboard-extensions' {
     export const runDashboardExtensions: () => Promise<void>;
 }
+declare module 'virtual:plugin-translations' {
+    export default translations = Record<string, any>;
+}
 
 declare module 'virtual:vendure-ui-config' {
     import { LanguageCode } from '@vendure/core';

+ 5 - 2
packages/dashboard/vite/vite-plugin-translations.ts

@@ -93,12 +93,15 @@ export function translationsPlugin(options: TranslationsPluginOptions): Plugin {
                     sourceLocale: linguiConfig.sourceLocale,
                 });
                 return `
+                    const translations = {
                         ${[...mergedMessageMap.entries()]
                             .map(([locale, messages]) => {
                                 const safeLocale = locale.replace(/-/g, '_');
-                                return `export const ${safeLocale} = ${JSON.stringify(messages)}`;
+                                return `${safeLocale}: ${JSON.stringify(messages)}`;
                             })
-                            .join('\n')}
+                            .join(',\n')}
+                    };
+                    export default translations;
                 `;
             }
         },