function ut_main()
{
    $pattern = <<<_MSG_
{gender_of_host, select,
  female {{num_guests, plural, offset:1
      =0 {{host} does not give a party.}
      =1 {{host} invites {guest} to her party.}
      =2 {{host} invites {guest} and one other person to her party.}
     other {{host} invites {guest} as one of the # people invited to her party.}}}
  male   {{num_guests, plural, offset:1
      =0 {{host} does not give a party.}
      =1 {{host} invites {guest} to his party.}
      =2 {{host} invites {guest} and one other person to his party.}
     other {{host} invites {guest} as one of the # people invited to his party.}}}
  other {{num_guests, plural, offset:1
      =0 {{host} does not give a party.}
      =1 {{host} invites {guest} to their party.}
      =2 {{host} invites {guest} and one other person to their party.}
     other {{host} invites {guest} as one of the # people invited to their party.}}}}
_MSG_;
    $args = array(array('gender_of_host' => 'female', 'num_guests' => 0, 'host' => 'Alice', 'guest' => 'Bob'), array('gender_of_host' => 'male', 'num_guests' => 1, 'host' => 'Alice', 'guest' => 'Bob'), array('gender_of_host' => 'none', 'num_guests' => 2, 'host' => 'Alice', 'guest' => 'Bob'), array('gender_of_host' => 'female', 'num_guests' => 27, 'host' => 'Alice', 'guest' => 'Bob'));
    $str_res = '';
    $fmt = ut_msgfmt_create('en_US', $pattern);
    if (!$fmt) {
        $str_res .= dump(intl_get_error_message()) . "\n";
        return $str_res;
    }
    foreach ($args as $arg) {
        $str_res .= dump(ut_msgfmt_format($fmt, $arg)) . "\n";
        $str_res .= dump(ut_msgfmt_format_message('en_US', $pattern, $arg)) . "\n";
    }
    return $str_res;
}
function ut_main()
{
    $pattern = <<<_MSG_
{0, select,
  female {{1, plural, offset:1
      =0 {{2} does not give a party.}
      =1 {{2} invites {3} to her party.}
      =2 {{2} invites {3} and one other person to her party.}
     other {{2} invites {3} as one of the # people invited to her party.}}}
  male   {{1, plural, offset:1
      =0 {{2} does not give a party.}
      =1 {{2} invites {3} to his party.}
      =2 {{2} invites {3} and one other person to his party.}
     other {{2} invites {3} as one of the # other people invited to his party.}}}
  other {{1, plural, offset:1
      =0 {{2} does not give a party.}
      =1 {{2} invites {3} to their party.}
      =2 {{2} invites {3} and one other person to their party.}
      other {{2} invites {3} as one of the # other people invited to their party.}}}}
_MSG_;
    $args = array(array('female', 0, 'Alice', 'Bob'), array('male', 1, 'Alice', 'Bob'), array('none', 2, 'Alice', 'Bob'), array('female', 27, 'Alice', 'Bob'));
    $str_res = '';
    $fmt = ut_msgfmt_create('en_US', $pattern);
    if (!$fmt) {
        $str_res .= dump(intl_get_error_message()) . "\n";
        return $str_res;
    }
    foreach ($args as $arg) {
        $str_res .= dump(ut_msgfmt_format($fmt, $arg)) . "\n";
        $str_res .= dump(ut_msgfmt_format_message('en_US', $pattern, $arg)) . "\n";
    }
    return $str_res;
}
Example #3
0
function ut_main()
{
    $locales = array('en_US' => "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree", 'ru_UA' => "{0,number,integer} мавп на {1,number,integer} деревах це {2,number} мавпи на кожному деревi", 'de' => "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum", 'en_UK' => "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree", 'root' => '{0,whatever} would not work!', 'fr' => "C'est la vie!");
    $str_res = '';
    $m = 4560;
    $t = 123;
    foreach ($locales as $locale => $pattern) {
        $str_res .= "\nLocale is: {$locale}\n";
        $fmt = ut_msgfmt_create($locale, $pattern);
        if (!$fmt) {
            $str_res .= dump(intl_get_error_message()) . "\n";
            continue;
        }
        $str_res .= dump(ut_msgfmt_format($fmt, array($m, $t, $m / $t))) . "\n";
        $str_res .= dump(ut_msgfmt_format_message($locale, $pattern, array($m, $t, $m / $t))) . "\n";
    }
    return $str_res;
}