[cal10n-user] Undeclared locales?

Ceki Gulcu ceki at qos.ch
Fri Sep 18 15:02:51 CEST 2009


Simon Brandhof asks:

Is it possible to discover bundles at runtime in cal10n ? I can't
list all the available locales of LocaleData at compile time. Thanks

Answer:

Yes, as long as you don't expect automatic verification, @LocaleData
information is entirely optional. The default implementation of
IMessageConveyor, namely MessageConveyor, will discover bundles for
any locale. For example, here is a mininal enum:

@BaseName("minimal")
public enum Minimal {
   A;
}


Assuming the file "minimal_de.properties" exists on your class path,
and contains:

A=etwas auf deutch

the following code will return work:

  MessageConveyor mc = new MessageConveyor(Locale.GERMAN);
  assertEquals("etwas auf deutch", mc.getMessage(Minimal.A));

However, the encoding for minimal_de.properties will be assumed to be
the system's default encoding.

You can also have a mixed approach, where you specify some encodings
and not others.

@BaseName("minimal")
@LocaleData(
   defaultCharset="UTF8",
   value = { @Locale("en_UK"), @Locale("fr_FR") } )
public enum Minimal {
   A;
}

In the above example, tooling which comes with CAL10N will verify the
consistency for en_UK and fr_FR. The default encoding will be "UTF8"
for all bundles, including the bundle "minimal_de.properties" for
German (which remains undeclared).

You could also mix default encoding, bundle specific encoding and
undeclared bundles. For example,

@BaseName("minimal")
@LocaleData(
   defaultCharset="UTF8",
   value = { @Locale("en_UK"), @Locale("fr_FR"), @Locale(value="tr_TR", 
charset="ISO8859_3") }
    )
public enum Minimal {
   A;
}

In the above example, tooling which comes with CAL10N will verify the
consistency for en_UK, fr_FR and tr_TR. The default encoding will be
"UTF8" for all bundles, including the bundle "minimal_de.properties"
for German (which remains undeclared) but excluding
"minimal_tr_TR.properties" (Turkish) which will be encoded in
ISO8859_3 (Turkish).

HTH,

-- 
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch


More information about the cal10n-user mailing list