2017-11-26 8 views
0

Ich möchte den Text auf meiner Seite in einer Sprache bereitstellen, die der Benutzer versteht. Da ich nicht jede Sprache auf der Welt spreche und ich Google Transalte nicht so viel vertraue;) Ich möchte eine Standardsprache verwenden.Internationalisierung mit Springboot. Standardnachrichten

Ich dachte, ich könnte nur jede Sprache, die ich weiß, in einer messages_en.properties oder messages_de.properties bereitstellen und für jede Sprache, die ich nicht so zur Verfügung gestellt habe, wird die Standard messages.properties verwendet.

Es stellt sich heraus, dass dies nicht der Fall ist. Die zwei explizit zur Verfügung gestellten Sprachen funktionieren wie erwartet, aber wenn ich versuche, meine Website zu besuchen, wenn meine Browsersprache zum Beispiel auf polnisch eingestellt ist, wird deutsch statt englisch angezeigt, was in meinen messages.properties verwendet wird.

Ich habe keine spezielle Konfiguration für die Internationalisierung vorgenommen. Ich verwende einfach den Thymeleleaf-Starter und referenziere meine Nachrichten durch th:text="#{my.property}"

Muss ich irgendetwas konfigurieren, um messages.properties zum Standard zu machen?

+0

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/support/AbstractResourceBasedMessageSource.html#setFallbackToSystemLocale-boolean- –

+0

Danke;) fand gerade, dass ein Minute nachdem ich die Frage gestellt habe. Sorry, manchmal versuche ich mein Problem explizit im Stackoverflow zu formulieren, um es für mich klarer zu machen. Hoffe, dass die Antwort anderen hilft, die Lösung schneller zu finden :) –

+0

Kein Problem. Ich habe deine Antwort erneuert. Diese Technik ist bekannt: https://en.wikipedia.org/wiki/Rubber_duck_debugging –

Antwort

1

Okay, ich habe gerade herausgefunden, was das Problem war.

Es gibt eine Eigenschaft spring.messages.fallback-to-system-locale, die standardmäßig true ist. Deshalb wurden die deutschen Nachrichten für eine unbekannte Sprache ausgewählt. Bei der Einstellung auf false wird standardmäßig die Eigenschaft message.properties verwendet.