具有i18next和i18next-node-fs-backend的nextjs

时间:2019-08-05 17:00:41

标签: reactjs next.js i18next

我正在一个多语言站点上,其中nextjs用于SSR,i18next用于建立多语言机制。

由于使用下一个SSR,我无法使用i18next-xhr-backend,而应该使用i18next-node-fs-backend,但是在这种情况下,我发现了fs的错误:

Module not found: Can't resolve 'fs' in '/Users/macbook/Desktop/project/node_modules/i18next-node-fs-backend/lib'

是否有获取i18next语言json文件的通用方法?

1 个答案:

答案 0 :(得分:0)

燃烧了一天之后,我发现了如何做到这一点。我在param ( [string] $mnemonic = 'JXW29' ) $logdir = "T:\PowerShell Scripts\logs\STVXYZ\$mnemonic\" Write-Host "path I am testing: $logdir" if ($(Test-Path $logdir) -eq $False){ mkdir $logdir } 组件中使用i18next-fetch-backend(实际上在该库中几乎没有编辑,我将向其发送PR),在配置obj中将i18n.js添加为常规提取API。

isomorphic-fetch

对于import i18n from 'i18next' import Backend from 'i18next-fetch-backend' import { initReactI18next } from 'react-i18next' import fetch from 'isomorphic-fetch' i18n .use(Backend) .use(initReactI18next) .init({ lng: 'fa', backend: { /* translation file path */ loadPath: '/static/i18n/{{ns}}/{{lng}}.json', fetch }, fallbackLng: 'fa', debug: true, /* can have multiple namespace, in case you want to divide a huge translation into smaller pieces and load them on demand */ ns: ['translations'], defaultNS: 'translations', keySeparator: false, interpolation: { escapeValue: false, formatSeparator: ',' }, react: { wait: true } }) export default i18n 库,我在i18next-fetch-backend文件的第181行的默认配置下添加了以下条件:

i18next-fetch-backend.cjs.js