検索
ホームページウェブフロントエンドjsチュートリアルReact-intl実装の多言語例を詳しく解説

React-intl実装の多言語例を詳しく解説

Dec 28, 2017 am 10:39 AM
詳しい説明

言語の国際化機能が最近プロジェクトに追加されました。この記事では主に React-intl で多言語を実装するためのサンプルコードを紹介します。編集者が非常に良いと思ったので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

言語の国際化 (言語のローカリゼーションと呼ぶ人もいます) は、実際には、Web アプリに複数の言語を追加することです。論理的に言えば、「逐語的な置き換え」ではありません。しかし、そのような低コストのアプローチで利益が得られるでしょうか?

最初に、プロジェクト全体に設定ファイルを追加する従来の方法を検討しましたが、異なる言語と地域に応じて、異なる設定ファイルをロードすることで、インターフェース言語の切り替えの目的を達成できます。もちろん、このアイデアが「初期」アイデアと呼ばれるのは、まさにこのアイデアが単純すぎるためです。言語の国際化とは、インターフェース上のUIテキストを別の言語に翻訳するだけでなく、日付と時刻の表示、数値表示(英語環境では3桁ごとにカンマ:1,000)、数量詞の表示(リンゴ)も含まれます。 . はリンゴ、2 つのリンゴはリンゴである必要があります)、文字列の途中に変数が挿入される場合もあります (「今日のランチに {count} 個のチキンドラムスティックを食べました」)...

これは単純な文字置換の問題ではなく、ディレクトリを簡単にエクスポートして Word またはページに配置し、他の同僚が翻訳作業のために比較できるようにする必要があります。これは非常に重要です。 !プロダクト マネージャーにコードを直接変更してもらいたいですか?それとも一つずつ検索して置換しますか?よく考えずにただやるだけなら、その代償はあなたが払うことになると信じてください。

プログラマーを目指す人なら、index.html に <script> の行を追加したくないでしょう?また、UI内のすべての文章は画像を使用した生徒に帰属します。立ち上がって退出してください。 React プロジェクトのどこかから何かをエレガントにインポートし、インターフェイス内のテキストを <大文字/> コンポーネントに置き換え、最終的に簡単な設定で言語の国際化を実現したい場合は、React -intl を使用します。 </script>

React の国際化には、React-intl を使用することをお勧めします。このライブラリは、日付、数値、文字列などをフォーマットするための React コンポーネントと API を提供します。このライブラリについて理解したので、使用してみましょう

コンポーネントの使用法

React とさらに統合するには、コンポーネントを使用します

1. 参照を追加します


npm install react-intl --save

3. ロケール設定ファイルを追加します


zh-CN.js

import {IntlProvider, addLocaleData} from &#39;react-intl&#39;;

en-US.js


const zh_CN = { &#39;intl.hello&#39;: "你好", &#39;intl.name&#39;: &#39;我的名字是 {name}&#39; } export default zh_CN;

4. を使用します


i18n コンテキストを使用すると、アプリケーション全体が i18n のコンテキストで設定されるように、アプリケーションのルート コンポーネントがラップされます。 2 つの最も重要な設定項目は次のとおりです。 現在のロケール メッセージと現在の言語のコンテンツを読み込みます。

言語を動的に切り替えたいので、これら 2 つの構成を動的に変更する必要があります。



const en_US = { &#39;intl.hello&#39;: "hello", &#39;intl.name&#39;: &#39;my name is {name}&#39; } export default en_US;

5. を使用します

基本的な使い方

import zhCN from &#39;./locale/zh.js&#39;;  //导入 i18n 配置文件
import enUS from &#39;./locale/en.js&#39;;

addLocaleData([...en, ...zh]);

export default class Root extends Component {
  static propTypes = {
    store: PropTypes.object.isRequired,
    history: PropTypes.object.isRequired
  }

  render() {
    const { store , history } = this.props;
    return (
      <IntlProvider locale=&#39;zh&#39; messages={zhCN}>
        <Provider store={store}>
          <Router history={history}>
          </Router>
        </Provider>
      </IntlProvider>
    )
  }
}

現在のロケールが中国語の場合は、Hello と表示されます。英語環境の場合は、Hello と表示されます。 .

動的値の受け渡し

<FormattedMessage 
  id="intl.hello"
  defaultMessage={&#39;hello&#39;}
/>

intl.name を定義したとき、テンプレートで {name} を使用しました。これは、values 属性を通じて JSON オブジェクトを動的に渡すことができることを意味します。これは、FormattedMessage のコンテンツが動的に表示されます。

6. 他のコンポーネントの使用法

Ract-intl は、文字列、時刻、日付の処理に役立つ豊富なコンポーネントを提供します。何も理解できない場合は、このままにしておいても構いません。メッセージ。 。

API の使用法

場合によっては、コード内で動的に国際化を行う必要があり、これには動的 API が必要です。使い方を簡単に紹介します

1. injectIntl​​をインポート

<FormattedMessage
  id="intl.name"
  values={{name: <b>{name}</b>}}
/>

2. コンポーネントにインジェクトします


import { injectIntl, FormattedMessage } from &#39;react-intl&#39;;

プロジェクトではReduxを使用しました。 Redux では、デフォルトの injectIntl​​(App) をエクスポートするだけです

3. intl オブジェクトを使用します

インジェクションの 2 番目のステップを通過したので、コンポーネントの props で intl オブジェクトを取得します。提供するメソッドは上で紹介したものと同じです。現時点では、文字列を表示したい場合は、formatMessage メソッドを使用できます。詳細については、API を確認してください

関連する推奨事項:


PHP - 自動多言語切り替えの実装


詳細なグラフィックとテキストの説明ASP.NET Core の多言語サポートの詳細


ASP.NET Core の多言語についてサポートの詳細な紹介

以上がReact-intl実装の多言語例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptはCで書かれていますか?証拠を調べるJavaScriptはCで書かれていますか?証拠を調べるApr 25, 2025 am 12:15 AM

はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。