views:

48

answers:

1

Using gettext how should a sentence with multiple numeric variables be made translatable? ngettext only takes one number as the plural parameter.

The permutations that should be allowed in the below sentence are "adult and child", "adults and child", "adult and children" and "adults and children".

"from #AVAILABILITYFROM to #AVAILABILITYTO for #NUMADULTS adult and #NUMCHILDREN child"

+2  A: 

Grammar can be very complex in some other languages than English and you should be aware that is practical impossible to generate correct complex sentences using your approach.

Remember that multiple variables and genre (male/female) also adds lots of complexity.

The solution is to generate only simple sentences where you have only one variable. This is the case that is supported by ngettext.

Understand that ngettext is something great and that is something that most commercial i18n frameworks from bug software companies don't even support. Even so it has his limitations, so shortly the solution for your question is do split your complex sentence in several simple ones that can be translated using only one variable.

Sorin Sbarnea
I just want add that even if there is just one plural form, then this way of doing it would require 4 strings. One for both parts singular, one for both parts plural, one for first singular and second plural, and one for the other way around. Gettext doesn't even support that, and making something that does would be too complex to use.
Tor Valamo
I was hoping that that wouldn't be the answer but thought that it may :)
dsas