Wie erreicht man Internationalisierung in React? Das React-Intl-Plug-In bietet eine Reihe von Methoden zum Implementieren der React-Internationalisierung. Die spezifische Implementierung ist wie folgt ~~ 1. Erstellen Sie die Reaktionsumgebung und laden Sie die entsprechenden Plug-Ins herunterStandardmäßig haben Sie nodejs bereits installiert. Wenn Sie es nicht installiert haben, installieren Sie es von Baidu. Ich werde hier nicht ins Detail gehen. Verwenden Sie das offizielle React-Gerüst, um ein React-Projekt zu erstellen. Wenn Sie bereits ein vorhandenes React-Projekt haben, können Sie diesen Schritt überspringen. Laden Sie dann die zugehörige Abhängigkeit react-intl herunter npx erstellen-reagieren-app reagieren-intl-demo npm ich reagiere-intl -S Warten Sie, bis der Download abgeschlossen ist Suchen Sie den Ordner src im Stammverzeichnis des Projekts und erstellen Sie darin einen neuen Ordner mit dem Namen locale, um die Einstellungsdateien für das Sprachpaket zu speichern. Hier werden nur Chinesisch und Englisch umgeschaltet, und die nachfolgenden Vorgänge für andere Sprachen sind dieselben Zweitens schreiben Sie die relevanten KonfigurationsdateienSuchen Sie die lokale intl.js-Datei und führen Sie die entsprechenden Plug-Ins ein, um sie einzukapseln und verfügbar zu machen. importiere React, { useContext } von 'react' import { IntlProvider } from 'react-intl' // Eingebunden in die äußerste Schicht von Komponenten, die eine Internationalisierung der Sprache benötigen, genau wie der Provider von react-redux. Lassen Sie Komponenten und Unterkomponenten innerhalb von Komponenten die von react-intl bereitgestellten APIs und Methoden verwenden. import { mainContext } from '../reducer' // Hier verwenden wir useReducer, um einfach einen im Stammverzeichnis zu erstellen, um die globale Statusverwaltung der Sprache zu steuern. import zh_CN from './cn' // Chinesisches Paket import en_US from './en' // Englisches Paket const Inter = (props) => { // Holen Sie sich die Standardspracheinstellungen. Sie können es auch in Verbindung mit einer globalen Statusverwaltung wie Redux Mobx oder useReducer verwenden, die von React selbst bereitgestellt werden. const { state } = useContext(mainContext) const wähleLocale = (val) => { let _val = val || navigator.language.split('_')[0] Schalter (_val) { Fall 'en': zurück de_US Fall 'zh': Rückgabe zh_CN Standard: Rückgabe zh_CN } } let locale = state.locale // Gebietsschema abrufen let { Kinder } = Requisiten // Unterkomponenten umschließen, um die API von react-intl zu teilen und so eine mehrsprachige Rückgabe zu erreichen ( <InternationalerAnbieter Schlüssel={Gebietsschema} Gebietsschema={Gebietsschema} Standardgebietsschema='zh' Nachrichten={wähleGebietsschema(Gebietsschema)} > {Kinder} </IntlProvider> ) } Export Standard Inter cn.js const zh_CN = { start: "Start", Schalter: 'Schalter' } Export-Standard zh_CN de.js const en_US = { start: "Start", Schalter: 'Schalter' } Exportstandard en_US reducer.js (erstellen Sie eine neue im src-Verzeichnis) importiere React, { useReducer } von 'react' const CHANGE_LOCALE = "LOCALE ÄNDERN" const mainContext = React.createContext() const Reducer = (Status, Aktion) => { Schalter (Aktion.Typ) { Fall CHANGE_LOCALE: return { ...Status, Gebietsschema: Aktion.Gebietsschema || 'zh' } Standard: Rückgabestatus } } const ContextProvider = (Eigenschaften) => { const [Status, Versand] = useReducer(Reducer, { Gebietsschema: „zh“ }) zurückkehren ( <mainContext.Provider-Wert={{ Status, Dispatch }}> {props.children} </mainContext.Provider> ) } export { Reduzierer, Hauptkontext, Kontextanbieter } 3. Importieren Sie zugehörige Dateien und verwenden Sie sie in App.jsApp.js importiere './App.css'; importiere { ContextProvider } von './reducer' importiere Inter aus './locale/intl' Ansicht aus „./views“ importieren Funktion App() { zurückkehren ( <Kontextprovider> <Inter> <Anzeigen /> </Inter> </ContextProvider> ); } Standard-App exportieren; Viertens: Erstellen Sie ein neues Ansichtsverzeichnis und verwenden Sie zugehörige Plug-Ins und APIs, um eine Internationalisierung zu erreichenErstellen Sie eine neue Datei index.jsx in Ansichten, um den Effekt auszuprobieren importiere react, { useContext} von 'react' importiere { Hauptkontext } von '../Reducer' importiere { FormattedMessage } von 'react-intl' Funktion Index() { const { Dispatch, Status } = useContext(Hauptkontext) const { locale } = Status const changeLang = () => { // Ändere die Sprache im zu wechselnden Status dispatch({ Typ: 'CHANGE_LOCALE', Gebietsschema: Gebietsschema === 'zh' ? 'en' : 'zh' }) } zurückkehren ( <div> <div> <FormattedMessage id="start" ></FormattedMessage> </div> <div> <button onClick={changeLang} > <FormattedMessage id="switch" ></FormattedMessage></button> </div> </div> ); } Standardindex exportieren; Die rote Box im endgültigen Verzeichnis wurde neu hinzugefügt Damit ist eine einfache React-Internationalisierung abgeschlossen! Dies ist das Ende dieses Artikels über die Verwendung von react-intl bei der React-Internationalisierung. Weitere relevante Inhalte zur React-Internationalisierung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Beispiel für den Aufbau eines Redis-Sentinel-Clusters basierend auf Docker
In diesem Artikelbeispiel wird der spezifische Co...
1. Zwei Möglichkeiten, den Zeichensatz der HTML-S...
Dieser Artikel verwendet das Centos7.6-System und...
Diese Methode wurde am 7. Februar 2021 bearbeitet...
Nehmen Sie für eine neu erstellte Website ASP.NET...
Tabellenstruktur einer MySQL-Tabelle schnell ände...
Inhaltsverzeichnis Projektverzeichnis Docker-Date...
Inhaltsverzeichnis Tools zur Audiotranskodierung ...
So installieren Sie Flash unter Linux 1. Besuchen...
Tatsächlich werden viele Leute sagen: „Ich habe ge...
Dieser Artikel veranschaulicht anhand von Beispie...
Zabbix 12.10.2019 Chenxin siehe https://www.zabbi...
Inhaltsverzeichnis 1. Funktionen 2. Beispiele 3. ...
WeChat-Applet: Einfacher Rechner. Zu Ihrer Inform...
Inhaltsverzeichnis Verwendung des Skelettbildschi...