溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

React國際化工作流設(shè)置指南

發(fā)布時(shí)間:2024-11-13 19:01:56 來源:億速云 閱讀:78 作者:小樊 欄目:web開發(fā)

React 國際化(i18n)是一種讓應(yīng)用程序支持多種語言的方法。以下是一個(gè)簡單的 React 國際化工作流設(shè)置指南,使用 react-i18nextreact-router-dom 庫。

1. 安裝依賴

首先,你需要安裝 react-i18nextreact-router-dom

npm install react-i18next i18next
npm install react-router-dom

2. 初始化 i18next

在項(xiàng)目根目錄下創(chuàng)建一個(gè) i18n.js 文件,并初始化 i18next

// i18n.js
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

const resources = {
  en: {
    translation: {
      "welcome": "Welcome to React",
      "change_language": "Change Language"
    }
  },
  zh: {
    translation: {
      "welcome": "歡迎來到 React",
      "change_language": "切換語言"
    }
  }
};

i18n
  .use(initReactI18next)
  .init({
    resources,
    lng: 'en', // 默認(rèn)語言
    keySeparator: false,
    interpolation: {
      escapeValue: false
    }
  });

export default i18n;

3. 配置路由

在你的 App.js 文件中,使用 react-router-dom 配置路由,并使用 i18next 提供的 useTranslation 鉤子來獲取翻譯文本:

// App.js
import React from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import Home from './Home';
import About from './About';

function App() {
  const { t, i18n } = useTranslation();

  const changeLanguage = (e) => {
    i18n.changeLanguage(e.target.value);
  };

  return (
    <Router>
      <div>
        <h1>{t('welcome')}</h1>
        <select onChange={changeLanguage}>
          <option value="en">English</option>
          <option value="zh">中文</option>
        </select>
        <Switch>
          <Route path="/" exact component={Home} />
          <Route path="/about" component={About} />
        </Switch>
      </div>
    </Router>
  );
}

export default App;

4. 創(chuàng)建組件

創(chuàng)建 HomeAbout 組件,并在其中使用 t 函數(shù)來獲取翻譯文本:

// Home.js
import React from 'react';
import { useTranslation } from 'react-i18next';

function Home() {
  const { t } = useTranslation();

  return (
    <div>
      <h2>{t('home')}</h2>
      <p>Welcome to the home page!</p>
    </div>
  );
}

export default Home;
// About.js
import React from 'react';
import { useTranslation } from 'react-i18next';

function About() {
  const { t } = useTranslation();

  return (
    <div>
      <h2>{t('about')}</h2>
      <p>This is the about page.</p>
    </div>
  );
}

export default About;

5. 運(yùn)行應(yīng)用程序

現(xiàn)在你可以運(yùn)行你的應(yīng)用程序,并看到不同語言的翻譯文本:

npm start

這樣,你就完成了一個(gè)簡單的 React 國際化工作流設(shè)置。你可以根據(jù)需要擴(kuò)展這個(gè)示例,添加更多的語言和翻譯文本。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI