我按照文档的步骤进行操作,但是当我尝试使用useTranslation
函数时,翻译过程不会发生。
发生在 next-i18next 版本 8.6.0
重现_app
文件的步骤
import React, { useEffect } from 'react'
import { appWithTranslation } from 'next-i18next'
import Layout from '../Containers/Layout'
import Snack from '../Components/Snack'
import { Provider, useSelector, useDispatch } from 'react-redux'
import { compose } from 'redux'
import { getCookieFromBrowser } from '../utils/cookie'
import { store, persistor } from '../redux/store'
import { PersistGate } from 'redux-persist/integration/react'
import Loading from '../Components/Loading/index'
import { removeError } from '../redux/error'
import { showSnack } from '../redux/snack'
import { getUser, logOut } from '../redux/auth'
import PrivateRoute from '../Components/PrivateRoute/PrivateRoute'
import wrapper from '../redux/reduxWrapper'
const MyApp = ({ Component, pageProps }) => {
const dispatch = useDispatch()
const error = useSelector<any, any>((state) => state.error?.error)
const snack = useSelector<any, any>((state) => state.snack?.snack)
const usuario = useSelector<any, any>((state) => state.usuario?.usuario)
const rotasProtegidas = ['/usuario/pagamentos', '/usuario/meus-anuncios', '/usuario/manter-anuncio/criar-anuncio', '/usuario/conta']
useEffect(() => {
if (error) {
dispatch(showSnack('error', error.message))
dispatch(removeError())
}
}, [error])
useEffect(() => {
const token = getCookieFromBrowser('token')
if (token) dispatch(getUser(token))
}, [usuario])
return (
<>
<PersistGate loading={} persistor={persistor}>
<Component {...pageProps} />
{snack && }
</>
)
}
MyApp.getInitialProps = async ({ Component, ctx }) => {
return {
pageProps: Component.getInitialProps ? await Component.getInitialProps(ctx) : {}
}
}
export default compose(appWithTranslation, wrapper.withRedux)(MyApp)
我的页面,翻译过程不起作用。
import React from 'react'
import Anuncio from './Anuncio'
import FormularioAnuncio from '../../../Containers/Anuncio/formulario-anuncio'
import { requirePageAuth } from '../../../utils/withAuthServerSide'
import { GetServerSideProps } from 'next'
import { serverSideTranslations } from 'next-i18next/serverSideTranslations'
import { useTranslation } from 'next-i18next'
export const getServerSideProps: GetServerSideProps = requirePageAuth(async (context) => {
const novoAnuncio = {
ano: '',
cambio: '',
carroceria: '',
cidade: '',
cilindrada: '',
combustivel: '',
cor: '',
descricao: '',
estado: {},
estilo: '',
marca: '',
marcaId: '',
modelo: '',
motor: '',
preco: '',
quilometragem: '',
sobrealimentado: '',
suspencao: '',
items: {
airbag: false,
alarme: false,
arQuente: false,
regulagemDeAltura: false,
computadorDeBordo: false,
controleDeTracao: false,
desembacadorTraseiro: false,
arCondicionado: false,
esconstoDeCabecaTraseiro: false,
abs: false,
limpadorTraseiro: false,
radio: false,
retrovisoresEletrico: false,
rodasLigaLeve: false,
sensorDeChuva: false,
sensorDeEstacionamento: false,
tetoSolar: false,
retrovisorFotocromico: false,
travasEletricas: false,
vidrosEletricos: false,
bancoEmCouro: false,
farolDeXenonio: false,
gps: false
}
} as Anuncio
return {
props: {
anuncio: novoAnuncio,
...(await serverSideTranslations(context.locale, ['common']))
}
}
})
const CriarAnuncio = (props) => {
console.log('props ', props)
const { t } = useTranslation('common')
return (
<div> {t('test')} </div>
)
}
export default CriarAnuncio
我不知道我能做些什么来解决这个问题。