React で国際化を実現するにはどうすればよいでしょうか? react-intlプラグインは、Reactの国際化を実装するための一連のメソッドを提供します。具体的な実装は次のとおりです。 1. React環境を構築し、対応するプラグインをダウンロードするデフォルトでは、Node.js はすでにインストールされています。インストールされていない場合は、Baidu からインストールしてください。ここでは詳細には触れません。 公式のReactスキャフォールディングを使用してReactプロジェクトを構築します。すでにReactプロジェクトがある場合は、この手順を無視できます。次に、関連する依存関係react-intlをダウンロードします。 npx 作成-React-アプリ react-intl-デモ npm i react-intl -S ダウンロードが完了するまでお待ちください プロジェクトのルートディレクトリにあるsrcフォルダを探し、その中にlocaleという新しいフォルダを作成して言語パックの設定ファイルを保存してください。ここでは中国語と英語のみが切り替わり、他の言語のその後の操作は同じです。 次に、関連する設定ファイルを記述しますロケールのintl.jsファイルを見つけて、関連するプラグインを導入してカプセル化し、公開します。 React をインポートし、{useContext} を 'react' から取得します。 import { IntlProvider } from 'react-intl' // react-redux の Provider と同様に、言語の国際化が必要なコンポーネントの最外層にラップされ、コンポーネントとコンポーネント内のサブコンポーネントが react-intlim によって提供される API とメソッドを使用できるようにします。port { mainContext } from '../reducer' // ここでは、useReducer を使用して、ルート ディレクトリに 1 つ作成し、言語のグローバル状態管理を制御します。import zh_CN from './cn' // 中国語パッケージimport en_US from './en' // 英語パッケージconst Inter = (props) => { // デフォルトの言語設定を取得します。また、これを、react 自体が提供する redux Mobx や useReducer などのグローバル状態管理と組み合わせて使用することもできます。const { state } = useContext(mainContext) const chooseLocale = (val) => { _val = val || navigator.language.split('_')[0] とします スイッチ (_val) { 'en'の場合: 戻る en_US ケース 'zh': zh_CNを返す デフォルト: zh_CNを返す } } let locale = state.locale // ロケールを取得する {children} = propsとします // サブコンポーネントをラップして react-intl の API を共有し、多言語対応を実現します ( <IntlProvider キー={ロケール} ロケール={ロケール} デフォルトロケール='zh' メッセージ={chooseLocale(ロケール)} > {子供たち} </IntlProvider> ) } エクスポートデフォルトインター 翻訳元 定数zh_CN = { 開始: '開始'、 スイッチ: 'スイッチ' } エクスポートデフォルト zh_CN ja.js より 定数 en_US = { 開始: '開始'、 スイッチ: 'スイッチ' } エクスポート デフォルト en_US Reducer.js (src ディレクトリに新規作成) Reactをインポートし、{useReducer}を'react'からインポートします。 定数CHANGE_LOCALE = 'CHANGE_LOCALE' const mainContext = React.createContext() const リデューサー = (状態、アクション) => { スイッチ(アクションタイプ){ CHANGE_LOCALEの場合: 戻り値 { ...状態、ロケール: action.locale || 'zh' } デフォルト: 状態を返す } } const ContextProvider = (props) => { const [状態, ディスパッチ] = useReducer(reducer, { ロケール: 'zh' }) 戻る ( <mainContext.Provider 値 = {{ state, dispatch }}> {props.children} </mainContext.Provider> ) } エクスポート { リデューサー、メインコンテキスト、コンテキストプロバイダー } 3. 関連ファイルをインポートしてApp.jsで使用するアプリ './App.css' をインポートします。 './reducer' から {ContextProvider} をインポートします。 './locale/intl' から Inter をインポートします './views' から View をインポートします 関数App() { 戻る ( <コンテキストプロバイダー> <インター> <表示 /> </インター> </コンテキストプロバイダー> ); } デフォルトのアプリをエクスポートします。 4番目に、新しいビューディレクトリを作成し、関連するプラグインとAPIを使用して国際化を実現します。効果を試すためにビューに新しいindex.jsxファイルを作成します react をインポートし、{useContext} を 'react' から取得します。 '../reducer' から { mainContext } をインポートします。 'react-intl' から { FormattedMessage } をインポートします。 関数インデックス() { const { ディスパッチ、状態 } = useContext(mainContext) const { ロケール } = 状態 const changeLang = () => { // 状態の言語を変更して切り替えます。dispatch({ タイプ: 'CHANGE_LOCALE'、 ロケール: ロケール === 'zh' ? 'en' : 'zh' }) } 戻る ( <div> <div> <フォーマットされたメッセージ id="開始" ></フォーマットされたメッセージ> </div> <div> <button onClick={changeLang} > <FormattedMessage id="switch" ></FormattedMessage></button> </div> </div> ); } デフォルトのインデックスをエクスポートします。 最終ディレクトリの赤いボックスは新しく追加されたものです こんな感じで、簡単なReactの国際化が完了しました! これで、React の国際化における react-intl の使用に関するこの記事は終了です。React の国際化に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: my.cnf (my.ini) 重要なパラメータの最適化設定手順
>>: MAC で MySQL のデフォルトの文字セットを utf8 に変更する方法
コマンドラインでMYSQLに正常にログインでき、NavicatもMySQLに正常に接続できますが、I...
1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...
この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...
序文WeChat アプレットでは、App.js の globalData を中間ブリッジとして使用し...
コンテンツスキャフォールディングを使用してノードプロジェクトを素早く構築するデータベースとやり取りす...
テトリスは非常に古典的な小さなゲームで、私もそれを書いてみました。しかし、できるだけ簡潔で論理的なコ...
この記事では、テーブル内のデータを追加、削除、変更するためのvue要素の具体的なコードを参考までに共...
lsof (開いているファイルのリスト) は、プロセスによって開かれたファイルを表示するツールです。...
この記事では、USB ブート ディスクの作成とシステムのインストールについて説明します。システム構成...
Xhtml には、あまり使用されないが非常に便利なタグが多数あります。半分の労力で 2 倍の結果を達...
目次1. 手ぶれ補正機能とは何ですか? 1. なぜ手ぶれ補正機能が必要なのでしょうか? 2. 手ぶれ...
公式サイトをダウンロードまず公式ウェブサイトにアクセスしてMySQLをダウンロードしてくださいリンク...
この記事では、Ubuntu 環境で xdebug をコンパイルしてインストールする方法について説明し...
目次1. 範囲2. 関数の戻り値3. 関数のネスト4. 終了5. クロージャの実用的応用1. 内部変...
この記事では、Linux システム コマンドについて説明します。ご参考までに、詳細は以下の通りです。...