首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nextjs & react-i18next:不翻译图像和输入占位符

nextjs & react-i18next:不翻译图像和输入占位符
EN

Stack Overflow用户
提问于 2021-09-09 04:44:18
回答 1查看 317关注 0票数 0

语言检测工作正常。所有字符串都被翻译成用户语言,但图像和输入占位符以默认语言显示。当我手动更改语言时,图像和占位符的翻译工作正常。

这就是我的i18n.js

代码语言:javascript
复制
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import LanguageDetector from 'i18next-browser-languagedetector';

import en from './locales/en.json';
import ru from './locales/ru.json';


const resources = { en, ru };
const DETECTION_OPTIONS = {
  order: ['localStorage','navigator'],
  cache: ['localStorage'],
  debug: true,
};

i18n
  .use(LanguageDetector)
  .use(initReactI18next) // passes i18n down to react-i18next
  .init({
    resources,
    detection: DETECTION_OPTIONS,
    fallbackLng: 'en',
    supportedLngs: ['en', 'ru'],
    interpolation: {
      escapeValue: false // react already safes from xss
    },
    react: {
        bindI18n: 'languageChanged loaded',
        wait: true,
        useSuspense: false
    }
  });

  export default i18n;

我的页面有一个简短的版本:

代码语言:javascript
复制
import React, { useRef, useEffect, useState } from 'react'

import i18n from "i18next";
import { useTranslation, initReactI18next } from "react-i18next";


export default function Feedback(){

    const { t, ready } = useTranslation('', { useSuspense: false });

    if (ready === false){
        return <div></div>
    }

    return <div className="feedback-page">
        ...
        <img className="feedback-logo" src={t('feedback.whiteLogo')}/>
        <input type="email" name="email" className="feedback-input" 
                            onChange={e => setEmail(e.target.value)} placeholder={`${t('feedback.email')}`} value={email}/>
        ...
   </div>


}

我也尝试过使用Suspense,但得到错误"ReactDOMServer尚不支持Suspense“。

有没有办法让它工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-09 15:34:06

最好的解决方案是使用next-i18next,带"getServerSideProps“选项并禁用Suspense。图像和占位符以用户的语言加载。就像一种护身符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69112341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档