molla dati locali sensibili
-
28-09-2019 - |
Domanda
Ho alcuni problemi con il fare la mia web-app adattato per le impostazioni della lingua browseres utenti remoti. Ho usato ResourceBundleMessageSource per esso. Ecco come si presenta:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="resources/messages" /> </bean>
E ho due file .properties:
-
messages.properties
-
messages_ru.properties
Si trovano in src / risorse / messaggi.
Voglio configurare il mio app modo tale, che quando le impostazioni di lingua agli utenti remoti di browser contengono russo, la mia app dovrebbe utilizzare i messaggi russi (messages_ru), altrimenti (se la lingua non è configurato o non è russo), dovrebbe utilizzare meessages. proprietà (che contiene i messaggi in inglese).
Quando l'installazione russo nel mio browser, funziona benissimo. Quando ho eliminare tutte le impostazioni, è anche mostra russo (penso che dipende dalle impostazioni locali del sistema). E quando ho impostato chi un'altra lingua, mi mostra anche i messaggi russi.
L'unico modo per rendere la mia app per visualizzare i messaggi in inglese è rinominare messages.properties a messages_en.properties e set in del browser in lingua inglese. Ma io voglio fare la mia app adottata per tutte le impostazioni della lingua (quando si usa russo, se ha bisogno, e inglese per tutte le altre impostazioni e tutti gli altri paesi).
Tutte le idee?
Soluzione
È necessario impostare
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="resources/messages" />
<property name="fallbackToSystemLocale" value="false" />
</bean>
In questo caso Primavera userà messages.properties
come ripiego, quindi dovrebbe contenere messaggi nella locale "default" per la vostra applicazione.