UNPKG

next-i18next

Version:

The easiest way to translate your NextJs apps.

1 lines 3.02 kB
{"version":3,"file":"node.cjs","names":["i18n"],"sources":["../../../src/pagesRouter/createClient/node.ts"],"sourcesContent":["import i18n, { Module } from 'i18next'\nimport resourcesToBackend from 'i18next-resources-to-backend'\nimport fs from 'fs'\n\nimport {\n InternalConfig,\n CreateClientReturn,\n InitPromise,\n I18n,\n} from '../types'\n\nfunction createFSBackend(config: InternalConfig) {\n return resourcesToBackend((lng: string, ns: string) => {\n const backend = config.backend as Record<string, any> | undefined\n let filePath: string\n if (typeof backend?.loadPath === 'function') {\n filePath = backend.loadPath(lng, ns)\n } else if (typeof backend?.loadPath === 'string') {\n filePath = backend.loadPath\n .replace('{{lng}}', lng)\n .replace('{{ns}}', ns)\n } else {\n filePath = `./public/locales/${lng}/${ns}.json`\n }\n const content = fs.readFileSync(filePath, 'utf-8')\n return JSON.parse(content)\n })\n}\n\nlet globalInstance: I18n\n\nexport default (config: InternalConfig): CreateClientReturn => {\n if (config.ns === undefined) config.ns = []\n let instance: I18n\n if (!globalInstance) {\n globalInstance = i18n.createInstance(config) as I18n\n instance = globalInstance\n } else {\n instance = globalInstance.cloneInstance({\n ...config,\n\n // @ts-ignore\n initAsync: false,\n\n // @ts-ignore\n initImmediate: false, // i18next < 24\n }) as I18n\n }\n let initPromise: InitPromise\n\n if (!instance.isInitialized) {\n const plugins = config?.use?.filter(Boolean) ?? []\n const hasCustomBackend = plugins.some(\n (b: Module) => b.type === 'backend'\n )\n if (!hasCustomBackend) {\n instance.use(createFSBackend(config))\n }\n\n plugins.forEach((x: Module) => instance.use(x))\n if (typeof config.onPreInitI18next === 'function') {\n config.onPreInitI18next(instance)\n }\n initPromise = instance.init(config)\n } else {\n initPromise = Promise.resolve(i18n.t)\n }\n\n return { i18n: instance, initPromise }\n}\n"],"mappings":";;;;;;;;AAWA,SAAS,gBAAgB,QAAwB;AAC/C,SAAA,GAAA,6BAAA,UAA2B,KAAa,OAAe;EACrD,MAAM,UAAU,OAAO;EACvB,IAAI;AACJ,MAAI,OAAO,SAAS,aAAa,WAC/B,YAAW,QAAQ,SAAS,KAAK,GAAG;WAC3B,OAAO,SAAS,aAAa,SACtC,YAAW,QAAQ,SAChB,QAAQ,WAAW,IAAI,CACvB,QAAQ,UAAU,GAAG;MAExB,YAAW,oBAAoB,IAAI,GAAG,GAAG;EAE3C,MAAM,UAAU,GAAA,QAAG,aAAa,UAAU,QAAQ;AAClD,SAAO,KAAK,MAAM,QAAQ;GAC1B;;AAGJ,IAAI;AAEJ,IAAA,gBAAgB,WAA+C;AAC7D,KAAI,OAAO,OAAO,KAAA,EAAW,QAAO,KAAK,EAAE;CAC3C,IAAI;AACJ,KAAI,CAAC,gBAAgB;AACnB,mBAAiBA,QAAAA,QAAK,eAAe,OAAO;AAC5C,aAAW;OAEX,YAAW,eAAe,cAAc;EACtC,GAAG;EAGH,WAAW;EAGX,eAAe;EAChB,CAAC;CAEJ,IAAI;AAEJ,KAAI,CAAC,SAAS,eAAe;EAC3B,MAAM,UAAU,QAAQ,KAAK,OAAO,QAAQ,IAAI,EAAE;AAIlD,MAAI,CAHqB,QAAQ,MAC9B,MAAc,EAAE,SAAS,UAC3B,CAEC,UAAS,IAAI,gBAAgB,OAAO,CAAC;AAGvC,UAAQ,SAAS,MAAc,SAAS,IAAI,EAAE,CAAC;AAC/C,MAAI,OAAO,OAAO,qBAAqB,WACrC,QAAO,iBAAiB,SAAS;AAEnC,gBAAc,SAAS,KAAK,OAAO;OAEnC,eAAc,QAAQ,QAAQA,QAAAA,QAAK,EAAE;AAGvC,QAAO;EAAE,MAAM;EAAU;EAAa"}