[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