React 国際化ガイド: 多言語フロントエンド アプリケーションの実装方法
はじめに:
グローバリゼーションの発展に伴い、Web サイトはますます増えています。また、アプリケーションは、さまざまな地域のユーザーのニーズを満たすために多言語機能をサポートする必要があります。フロントエンド開発では、React は非常に人気のあるフレームワークですが、React アプリケーションに多言語サポートを実装するにはどうすればよいでしょうか?この記事では、React の国際化の実装方法を詳しく紹介し、具体的なコード例を示します。
1. React-intl ライブラリを使用して国際化を実現します
React-intl は、React 用の強力な国際化ライブラリであり、React アプリケーションで役立つ一連のツールとコンポーネントを提供します。 -言語サポート。
まず、React-intl ライブラリをインストールする必要があります。プロジェクトのルート ディレクトリで次のコマンドを実行します。
npm install reverse-intl
次に、言語ファイルを作成する必要があります。言語ファイル。プロジェクトのルート ディレクトリに locale
というフォルダーを作成し、そのフォルダー内に複数の言語ファイルを作成します。たとえば、en.json
という名前の英語ファイルと zh.json
という名前の中国語ファイルを作成できます。
en.json の例:
{
"hello": "こんにちは、{name}!",
"welcome": "私たちの Web サイトへようこそ!"
}
zh.json の例:
{
"hello": "こんにちは、{name}!",
"welcome": "私たちの Web サイトへようこそ!"
}
React アプリケーションでは、アプリケーション全体が国際化機能を提供するための IntlProvider
コンポーネントを作成できます。同時に、FormattedMessage
コンポーネントを使用して多言語テキストを表示できます。
サンプル コードは次のとおりです。
import React from 'react';
import { IntlProvider, FormattedMessage } from 'react-intl';
class App React を拡張します。コンポーネント {
render() {
return ( <IntlProvider locale="en" messages={messages}> <div> <FormattedMessage id="hello" values={{ name: 'John' }} /> <FormattedMessage id="welcome" /> </div> </IntlProvider> );
}
}
デフォルトのアプリをエクスポート;
上記のコードでは、最初にインポートしました 反応-intl
ライブラリの IntlProvider
および FormattedMessage
コンポーネント。次に、IntlProvider
コンポーネントで現在の言語を英語 (locale="en"
) に設定し、messages
属性で英語の言語ファイルを指定しました。コンテンツ。
FormattedMessage
コンポーネントでは、id
属性を使用して、表示するテキスト (言語ファイルで定義) のキー値を指定し、 # を渡します。 ##values 属性には、
name という名前の変数が渡されます。
LanguageSwitcher という名前のコンポーネントを作成します。 。
import { IntlProvider, FormattedMessage } from 'react-intl';
handleChangeLanguage = (e) => {
const lang = e.target.value; this.props.changeLanguage(lang);
return ( <div> <select onChange={this.handleChangeLanguage}> <option value="en">English</option> <option value="zh">中文</option> </select> </div> );
}
react-intl ライブラリの
IntlProvider コンポーネントと
FormattedMessage コンポーネントをインポートしました。 。次に、
LanguageSwitcher という名前のコンポーネントを作成し、そのコンポーネントに
select 要素を追加して、
onChange イベントをリッスンすることで言語切り替え機能を実装しました。
IntlProvider コンポーネントの
locale プロパティ。
import { IntlProvider, FormattedMessage } from 'react-intl';
import LanguageSwitcher from '。 /LanguageSwitcher' ;
state = {
locale: 'en'
this.setState({ locale: lang });
const { locale } = this.state; return ( <IntlProvider locale={locale} messages={messages[locale]}> <div> <LanguageSwitcher changeLanguage={this.changeLanguage} /> <FormattedMessage id="hello" values={{ name: 'John' }} /> <FormattedMessage id="welcome" /> </div> </IntlProvider> );
}
LanguageSwitcher という名前のコンポーネント。
changeLanguage プロパティを通じてコールバック関数が渡されます。コールバック関数では、アプリケーションの
locale ステータスを更新して、言語切り替え機能を実装します。
以上がReact 国際化ガイド: 多言語フロントエンド アプリケーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。