Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Try Vanilla Forums Cloud product

Czech plural forms and gender suffix

edited August 2012 in Localization


I've been trying to translate vanilla forum for a while and I have 2 issues:

1. Czech language has 3 plural forms, to fix that I wrote this function (/forum/locales/cs-CZ/definitions.php):

    function Plural($Number, $Singular, $Plural) {
    $Result = null;
    if ($Number == 1) {
        $Result = Gdn::Translate($Singular, $Singular);
    } else if ($Number < 5) {
        $Result = Gdn::Translate('2'.$Plural, $Plural);
    } else {
        $Result = Gdn::Translate('5'.$Plural, $Plural);
    return $Result;

and inserted these definitions in the same file:

$Definition['%s comment'] = '%s komentář';
$Definition['2%s comments'] = '%s komentáře';
$Definition['5%s comments'] = '%s komentářů';

Looks good, now I see "1 komentář", "2 komentáře", "10 komentářů" in vanilla.
Then I tried doing the same with %s discussion. So I just wrote a few definitions:

$Definition['%s discussion'] = '%s diskuzi';
$Definition['2%s discussions'] = '%s diskuze';
$Definition['5%s discussions'] = '%s diskuzí';

And the result? Instead of "1 diskuzi", "2 diskuze", "10 diskuzí" I'm getting "%s diskuzi", "%s diskuze" in vanilla (with that "%s" instead of a number). The same problem applies for other strings that have more plural forms, but not for the "comment" plurals. I don't know what the "Gdn::Translate" function exactly does (I haven't found any documentation) so it's almost impossible to fix it (for me).

2. I've read that the variable "%9$s" represents gender suffix. I added these deffinitions:

$Definition['GenderSuffix.First.f'] = 'a';
$Definition['GenderSuffix.First.m'] = '';
$Definition['GenderSuffix.Third.f'] = 'a';
$Definition['GenderSuffix.Third.m'] = '';

and tried to edit one line from this:

$Definition['%1$s sent you a %8$s.'] = '%1$s poslal(a) %8$s';

to this:

$Definition['%1$s sent you a %8$s.'] = '%1$s poslal%9$s %8$s';

but that doesn't work.

Vanilla version:

Sign In or Register to comment.