我正在一个多语言站点上,其中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文件的通用方法?
答案 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