Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 9087|Antwort: 0

[Quelle] Spring Boot MessageSource Die Grube internationalisierter Sprachen

[Link kopieren]
Veröffentlicht am 27.1.2022, 14:52:03 | | | |
Internationalisierung, auch i18n genannt – warum dieser Name? Da Internationalisierung Englisch Internationalisierung ist, stehen 18 Buchstaben zwischen i und n, daher heißt es i18n. Wenn unsere Anwendung internationalisiert ist, kann sie in verschiedenen Sprachumgebungen leicht gewechselt werden; am häufigsten ist der Wechsel zwischen Chinesisch und Englisch, und die Internationalisierungsfunktion ist ebenfalls recht verbreitet.

Zum Beispiel kann beim Senden einer bestimmten Anfrage ein Schlüssel-Wert-Paar im Header gesetzt werden: "Accept-Language":"zh"; über den entsprechenden Wert Accept-Language kann der Server entscheiden, welche Regionssprache verwendet wird, die entsprechende Ressourcendatei finden, sie formatieren und an den Client zurückgeben.

Erstellen Sie ein neues Spring Boot-Projekt, erstellen Sie eine i18n-Datei unter dem Resources-Ordner und erstellen Sie unter diesem Ordner eine neue Konfigurationsdatei gemäß dem Format "Language Abbreviation Table", wie in der Abbildung unten gezeigt:




Nachricht.Eigenschaften

message_en.Eigenschaften

Denken Sie daran, Konfigurationsparameter hinzuzufügen, um application.properties zu bearbeiten, damit unsere Konfiguration effektiv wird:

Spring definiertMessageSourceSchnittstellen zum Zugriff auf internationalisierte Informationen.

getMessage(Stringcode, Object[] args, String defaultMessage, Locale locale)
getMessage(String-Code, Objekt[] args, Locale locale)
getMessage(MessageSourceResolvable resolvable, Locale locale)



Erstellen Sie einen neuen Controller und versuchen Sie, eine andere Ressourcendatei aufzurufen, um eine Eingabeaufforderung mit folgendem Code zurückzugeben:



Das Projekt wird unter einem Windows-Server auf Chinesisch bereitgestellt, und es gibt kein Problem mit chinesischen Nutzern, die auf Chinesisch zugreifen. Beim Bereitstellen auf die englische Linux-Version geben chinesische Nutzer eine englische Eingabeaufforderung (siehe die Konfiguration der englischen Ressourcendatei).

Der Grund dafür ist unser GrundEs gibt überhaupt keine neue chinesische .properties-Datei, zu diesem Zeitpunkt liest das Programm die Ressourcendatei, die mit der aktuellen Systemsprache übereinstimmt, und wenn sie nicht erneut gelesen werden kann, kann es keine identifizierten Eigenschaften-Dateikonfigurationen lesen。 Wenn wir das Projekt auf das Linux-Englischsystem veröffentlichen, kann das Programm zwar die chinesische Konfiguration nicht lesen, liest aber die Konfigurationsdatei von _en.properties, sodass die Schnittstelle die chinesische Eingabeaufforderung zurückgibt.

Lösung, SettingFallbackToSystemLocalefalsch lautet der Code wie folgt:

(Ende)





Vorhergehend:Praktische Nutzung von cAdvisor zur Erfassung von Docker-Containermetriken
Nächster:Das Frontend-JS wandelt Blobs in Strings um
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com