問題タブ [react-i18next]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
840 参照

reactjs - コンストラクターとコンポーネントDidMountでの翻訳のロード

i18n.addResources(['en', en, namespace]). _

私は本能的にこのメソッドでそうしましたcomponentDidMount。これは通常、この種のアクションで好まれる方法であり、翻訳ファイルをロードするための小さなユーティリティ コンポーネントを作成しました。

ただし、そうすることで、翻訳をロードする前に最初のレンダリングを待機しています。i18next::translator: missingKey fr HomeRecord titleFieldLabel titleFieldLabelこれにより、コンソールのようなメッセージがトリガーされます。これは、使用している子<NamespacesConsumer />も翻訳が読み込まれる前に最初のレンダリングを通過するためです。

この動作を防ぐ 3 つの方法を見つけました。

  • contructor代わりにを使用しcomponentDidMountて翻訳をロードします。これにより、最初のレンダリングがブロックされますが、発生したときにすべての翻訳が利用できるようになります。
  • wait={true}eachに渡します<NamespacesConsumer />。これにより、画面全体の初期レンダリングがブロックされませんが、デフォルトで false に設定されているため、開発者は各コンポーネントに prop を渡すことを覚えておく必要があります。
  • などを上書きしdefaultPropsます<NamespacesConsumer />

この問題に対する好ましい解決策は何ですか? コンストラクターを使用することは推奨される方法ではないwait={true}ように思えますが、指定する必要があるため、すべての開発者に負担がかかり、エラーが発生しやすくなります。

0 投票する
1 に答える
403 参照

reactjs - React intel と i18next React-Native

私はReact-Nativeで多言語アプリを構築しています.国際化ライブラリの選択について少し混乱しています.1つはReact-intelで、もう1つはReact-i18nextです.2つのライブラリ間で混乱しています.複数の開発者とこれについて話し、答えはほぼ50/50なので、この質問をしている理由は、両方のライブラリの間で一方が優れているという正当な理由を誰かが私に提案できますか、ありがとう。

0 投票する
1 に答える
1173 参照

reactjs - i18next を使用して PHP からリソースをロードするには?

i18next 翻訳用のリソースをロードするための次の PHP スクリプトがあります。

しかし、react js アプリでどのように使用できますか? もともと、i18next 公式チュートリアルで行ったように、クライアント側の json で翻訳を読み込みます。

サーバー側で PHP を使用してロードしたい。ただし、次の場合は機能しません。

React スクリプトで何を変更すればよいですか? ありがとうございました。