(from mail conversation)
Certain literals that show up in the browser client are read from server-side literal files.
Example:
. the name of the days in the caldendar component
. the messages if the user does not input a correct e.g. int-value
In general all these literals are part of ".xml" files. Look into the WEB-INF/lib/eclntjfserver-xxx.jar:
Code:
eclnt
risc
i18n
language_en.xml
language_de.xml
...
If you want to introduce a new language to the existing one: add a language_xx.xml file into your webcontent and it will be used. And then...: tell us about and send the file so that we can add to the standard! ;-)
What to do if there is already a language definition, but you do not like the text?
In this case there is an interface:
Code:
package org.eclnt.jsfserver.util;
public interface IClientI18NLiteralsUpdate
{
public void updateLiteralInfo(Map<String, LanguageInfo> data);
}
You may implement this interface and register your implementation in system.xml:
Code:
<clienti18n
...
clientliteralsupdateclass="...class implementing IClient18NLiteralsUpdate..."
...
/>
In the interface per language (key of the map) a LanguageInfo instance is kept:
Code:
public static class LanguageInfo
{
List<String> m_monthNames = new ArrayList<String>();
List<String> m_weekdayNamesShort = new ArrayList<String>();
Map<String,String> m_literals = new HashMap<String,String>();
public List<String> getMonthNames() { return m_monthNames; }
public List<String> getWeekdayNamesShort() { return m_weekdayNamesShort; }
public Map<String, String> getLiterals() { return m_literals; }
}
You may access and change the corresponding String-lists and -maps by your code and by the update the client side literals.