[jbosstools-dev] Handling plurals properly
Max Rydahl Andersen
max.andersen at redhat.com
Fri Jun 19 06:11:47 EDT 2009
>
>
> There's a few ways we can deal with this sort of thing:
>
> 1. Use a clunky workaround like:
> "{0} can contain only {1} child(ren) with entity {2}."
Clunky, but it at least states the reason why the error/warning is
happening.
>
> 2. Reformulate [3] the sentence, perhaps like this:
> "Parent has too many children with entity. Parent: {0}, Number
> of children: {1}, Entity {2}"
I don't think this is a clear message, compared to #1.
>
> 3. Use ICU's PluralFormat [4] support:
> com.ibm.icu.text.MessageFormat.format(
> "{1, plural, " +
> "one {{0} can contain only # child with entity {2}.} " +
> "other {{0} can contain only # children with entity {2}.}}",
> new Object[] {parent, max, entity});
they encode the plural rules into one string ?
> 4. Use Gettext's plural support[5], by using
> gnu.gettext.GettextResource.ngettext() instead of
> java.util.ResourceBundle.getString(). Actually, we can't really use
> libgettext as is [6], but we could borrow the plural handling (it's
> LGPL) and use it with Eclipse's Messages classes or ResourceBundles.
> I18n.ngettext(Messages.class, "TOO_MANY_CHILDREN", a, b, c);
How much code is that plural handling ?
Is it worth the trouble when we can't ensure all the plugins we use will
be able to use it ? (3rd party plugins would at most just use #3)
And how many places do we have to actually handle plural ?
> I think option 2 deserves consideration. Yes, it's a workaround, and
> reformulating the sentences may be difficult, but I think the result
> will often be clearer than the original, even in English. (If the
> above example isn't clear, it's probably because I didn't understand
> the original in context.) Using this workaround may avoid the need
> for options 3 and 4.
Agreed, just need a better message ;)
/max
More information about the jbosstools-dev
mailing list