Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: cleaning up old wiki formatting

Localization

...

 

Localization (aka L10n) is all about getting the right text to the user, in the right language.

Div
stylefloat:right
titleRelated Articles
classaui-label
Content by Label
showLabelsfalse
showSpacefalse
titleRelated Articles
cqllabel in ("component-templates","localization") and space = currentSpace()

Localization support is well integrated into Tapestry. Tapestry allows you to easily separate the text you present to your users from the rest of your application ... pull it out of your Java code and even out of your component templates. You can then translate your messages into other languages and let Tapestry put everything together.

...

Individual pages and components can override the values defined in the message catalog.

Warning
titleAvoid BOMs
Wiki Markup
{float:right|width=45%} {note:title=Avoid BOMs} Make sure that your properties files don't contain [byte order marks (BOM)|http://en.wikipedia.org/wiki/Byte_order_mark], because Java -- and thus Tapestry -- doesn't support BOM in properties files (see

Make sure that your properties files don't contain byte order marks (BOM), because Java – and thus Tapestry – doesn't support BOM in properties files (see 

http://bugs.sun.com/view_bug.do?bug_id=4508058).

Some

editors

write

them

out

when

saving

a

file

in

UTF-8,

so

watch

out.

{note} {float}

 

Properties File Charset

Tapestry uses the UTF-8 character set (charset) when reading the properties files in a message catalog. This means that you don't have to use the Java native2ascii tool.

...

If you change a property file in a message catalog, you'll see the change immediately, just as with component classes and component templates (provided you're not running in production mode).

Asset Localization

When injecting assets, the injected asset will be localized as well. A search for the closest match for the active locale is made, and the final Asset will reflect that.

...

The PersistentLocale service can be used to programmatically override the locale. Note: You should be careful to only set the persistent locale to a supported locale.

Code Block
java
java
titleToggle between English and Germanjava
@Inject 
private PersistentLocale persistentLocale;

void onActionFromLocaleToggle() {
    if ("en".equalsIgnoreCase(persistentLocale.get().getLanguage())) {
        persistentLocale.set(new Locale("de"));
    } else {
        persistentLocale.set(new Locale("en"));
    }
    return this;
}
public String getDisplayLanguage() {
    return persistentLocale.get().getDisplayLanguage();
}

...

en (English)

el (Greek)

it (Italian)

pl (Polish)

vi sv (VietnameseSwedish)

bg (Bulgarian)

es (Spanish)

ja (Japanese)

pt (Portuguese)

zh vi (ChineseVietnamese)

cs (Czech)1

fi (Finnish)

mk (Macedonian)

ru (Russian)

 zh (Chinese)

da (Danish)

fr (French)

nl (Dutch)sr

sl (SerbianSlovenian)2

 

de (German)

hr (Croatian)

no (Norwegian)

sv sr (SwedishSerbian)

 

as of Tapestry 5.3.8

 2 as of Tapestry 5.4

Providing translations for Tapestry built-in messages

...

Info

Please note that a patch is always preferred over an archive of properties files.

Scrollbar