Spring MessageSource

Rodina Novotných novotnaci na megasphera.cz
Úterý Prosinec 23 13:10:28 CET 2008


Ehm, a zjistil jsem, že se to tu už probíralo - viz. 
http://java.cz/konference/2006-December/010163.html
A jsou tam mnohem pregnantnější odpovědi, než píšu já ;-)

Honza

--------------------------------------------------------------
Ing. Jan Novotný
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
http://blog.novoj.net
Myšlenky dne otce Fura
--------------------------------------------------------------



Rodina Novotných napsal(a):
> Ahoj,
>
>    tak na tohle jsem se nachytal už nesčetněkrát, ale v kombinaci s 
> ReloadableResourceBundleMessageSource. Ten má totiž metodu 
> setFallbackToSystemLocale 
> <http://static.springframework.org/spring/docs/2.0.x/api/org/springframework/context/support/ReloadableResourceBundleMessageSource.html#setFallbackToSystemLocale%28boolean%29>:
>
>
>       setFallbackToSystemLocale
>
> public void *setFallbackToSystemLocale*(boolean fallbackToSystemLocale)
> Set whether to fall back to the system Locale if no files for a 
> specific Locale have been found. Default is "true"; if this is turned 
> off, the only fallback will be the default file (e.g. 
> "messages.properties" for basename "messages").
>
> Falling back to the system Locale is the default behavior of 
> |java.util.ResourceBundle|. However, this is often not desirable in an 
> application server environment, where the system Locale is not 
> relevant to the application at all: Set this flag to "false" in such a 
> scenario.
>
>     Tzn. díky default hodnotě setFallbackToSystemLocale=true bude 
> Spring na systému, kde je defaultní locale EN (např. anglické windows, 
> anglické Ubuntu apod.), hledat resourcy v pořadí:
>
>     * globallmessages-cs_CZ.properties
>     * globallmessages-cs.properties
>     * globallmessages-en.properties
>     * globallmessages.properties
>
>     Když se tato properta nastaví na false, pak se to teprve začne 
> chovat, jak by člověk čekal - tzn. cs_CZ, cs a pak fallback ke 
> globálnímu resource bundle. Vůbec jsem nepochopil účel tohoto nastavení.
>     Když ale koukám do příkladu, ty tam používáš standardní 
> ResourceBundleMessageSource a ten podobnou metodu (podle JavaDocu) 
> nemá. Chování by ale mohl mít stejné. No snad tě moje rada, alespoň 
> posune blíž řešení.
>
> Honza
> --------------------------------------------------------------
> Ing. Jan Novotný
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> http://blog.novoj.net
> Myšlenky dne otce Fura
> --------------------------------------------------------------
>   
>
>
> tomasjurman na email.cz napsal(a):
>> Zdravím  konferenci
>>
>> v aplikaci se Springem 2.5 mám v aplikačním kontextu definované zdroje zpráv (viz doleji). Třídu MessageSourceAccessor si potom injektuju do tříd,  kde je potřeba. Problém je, že pokud změním Locale z defaultní (en) na jinou, stále dostávám anglické zprávy:
>>
>> Locale loc = new Locale("cs", "CZ");
>> String message = messageSourceAccessor.getMessage("engine.support", loc) ;
>> //vrací en hodnotu pro klíč engine.support
>>
>> v aplikaci jsou 2 soubory zpráv:
>> globallmessages.properties //obsahuje české hodnoty
>> globallmessages-en.properties //obsahuje anglické hodnoty
>>
>> applicationContext.xml
>> -----------------------------
>>     <bean id="messageSourceAccessor" class="org.springframework.context.support.MessageSourceAccessor">
>>       <constructor-arg>
>>         <ref local="messageSource" />
>>       </constructor-arg>
>>     </bean>        
>>     <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
>>          <property name="basenames">                           
>>               <list>           
>>                 <value>globalmessages</value>
>>             </list>            
>>         </property>
>>     </bean>
>>
>>
>>
>> děkuji za pomoc
>> Tomáš Jurman
>>
>>   
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://amaio.cz/pipermail/konference/attachments/20081223/2fab52a4/attachment.htm>


Další informace o konferenci Konference