UNPKG

next-i18next

Version:

The easiest way to translate your NextJs apps.

61 lines (60 loc) 3.57 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_runtime = require("./_virtual/_rolldown/runtime.cjs"); const require_utils = require("./utils.cjs"); const require_config_createConfig = require("./config/createConfig.cjs"); const require_config_serverSideConfig = require("./config/serverSideConfig.cjs"); const require_createClient_node = require("./createClient/node.cjs"); let fs = require("fs"); fs = require_runtime.__toESM(fs); let path = require("path"); path = require_runtime.__toESM(path); let module$1 = require("module"); //#region src/pagesRouter/serverSideTranslations.ts let DEFAULT_CONFIG_PATH = "./next-i18next.config.js"; /** * One line expression like `const { I18NEXT_DEFAULT_CONFIG_PATH: DEFAULT_CONFIG_PATH = './next-i18next.config.js' } = process.env;` * is breaking the build, so keep it like this. * * @see https://github.com/i18next/next-i18next/pull/2084#issuecomment-1420511358 */ if (process.env.I18NEXT_DEFAULT_CONFIG_PATH) DEFAULT_CONFIG_PATH = process.env.I18NEXT_DEFAULT_CONFIG_PATH; const serverSideTranslations = async (initialLocale, namespacesRequired = void 0, configOverride = null, extraLocales = false) => { if (typeof initialLocale !== "string") throw new Error("Initial locale argument was not passed into serverSideTranslations"); let userConfig = configOverride; const configPath = path.default.resolve(DEFAULT_CONFIG_PATH); if (!userConfig && fs.default.existsSync(configPath)) userConfig = (0, module$1.createRequire)(configPath)(configPath); if (userConfig === null) throw new Error(`next-i18next was unable to find a user config at ${configPath}`); const config = require_config_createConfig.createConfig({ ...userConfig, lng: initialLocale }, { applyServerSideConfig: require_config_serverSideConfig.applyServerSideConfig }); const { localeExtension, localePath, fallbackLng, reloadOnPrerender } = config; const { i18n, initPromise } = require_createClient_node({ ...config, lng: initialLocale }); await initPromise; if (userConfig?.use?.filter(Boolean).some((b) => b.type === "backend") && namespacesRequired) await i18n.loadNamespaces(Array.isArray(namespacesRequired) ? namespacesRequired : namespacesRequired); const initialI18nStore = { [initialLocale]: {} }; require_utils.getFallbackForLng(initialLocale, fallbackLng ?? false).concat(extraLocales || []).forEach((lng) => { initialI18nStore[lng] = {}; }); if (!Array.isArray(namespacesRequired)) { if (typeof localePath === "function") throw new Error("Must provide namespacesRequired to serverSideTranslations when using a function as localePath"); const getLocaleNamespaces = (path$2) => fs.default.existsSync(path$2) ? fs.default.readdirSync(path$2).map((file) => file.replace(`.${localeExtension}`, "")) : []; namespacesRequired = require_utils.unique(Object.keys(initialI18nStore).map((locale) => getLocaleNamespaces(path.default.resolve(process.cwd(), `${localePath}/${locale}`))).flat()); } if (reloadOnPrerender && process.env.NODE_ENV !== "production") await i18n.reloadResources(Object.keys(initialI18nStore), namespacesRequired); namespacesRequired.forEach((ns) => { for (const locale in initialI18nStore) initialI18nStore[locale][ns] = (i18n.services.resourceStore.data[locale] || {})[ns] || {}; }); return { _nextI18Next: { initialI18nStore, initialLocale, ns: namespacesRequired, userConfig: config.serializeConfig ? userConfig : null } }; }; //#endregion exports.serverSideTranslations = serverSideTranslations; //# sourceMappingURL=serverSideTranslations.cjs.map