msgfmt_format.phpt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. msgfmt_format()
  3. --EXTENSIONS--
  4. intl
  5. --FILE--
  6. <?php
  7. /*
  8. * Format a number using misc locales/patterns.
  9. */
  10. function ut_main()
  11. {
  12. $locales = array(
  13. 'en_US' => "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
  14. 'ru_UA' => "{0,number,integer} мавп на {1,number,integer} деревах це {2,number} мавпи на кожному деревi",
  15. 'de' => "{0,number,integer} Affen über {1,number,integer} Bäume um {2,number} Affen pro Baum",
  16. 'en_UK' => "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
  17. 'root' => '{0,whatever} would not work!',
  18. 'fr' => "C'est la vie!",
  19. );
  20. $str_res = '';
  21. $m = 4560;
  22. $t = 123;
  23. foreach( $locales as $locale => $pattern )
  24. {
  25. $str_res .= "\nLocale is: $locale\n";
  26. $fmt = ut_msgfmt_create( $locale, $pattern );
  27. if(!$fmt) {
  28. $str_res .= dump(intl_get_error_message())."\n";
  29. continue;
  30. }
  31. $str_res .= dump( ut_msgfmt_format( $fmt, array($m, $t, $m/$t) ) ) . "\n";
  32. $str_res .= dump( ut_msgfmt_format_message($locale, $pattern, array($m, $t, $m/$t))) . "\n";
  33. }
  34. return $str_res;
  35. }
  36. include_once( 'ut_common.inc' );
  37. // Run the test
  38. ut_run();
  39. ?>
  40. --EXPECT--
  41. Locale is: en_US
  42. '4,560 monkeys on 123 trees make 37.073 monkeys per tree'
  43. '4,560 monkeys on 123 trees make 37.073 monkeys per tree'
  44. Locale is: ru_UA
  45. '4 560 мавп на 123 деревах це 37,073 мавпи на кожному деревi'
  46. '4 560 мавп на 123 деревах це 37,073 мавпи на кожному деревi'
  47. Locale is: de
  48. '4.560 Affen über 123 Bäume um 37,073 Affen pro Baum'
  49. '4.560 Affen über 123 Bäume um 37,073 Affen pro Baum'
  50. Locale is: en_UK
  51. '4,560 monkeys on 123 trees make 37.073 monkeys per tree'
  52. '4,560 monkeys on 123 trees make 37.073 monkeys per tree'
  53. Locale is: root
  54. 'msgfmt_create: message formatter creation failed: U_ILLEGAL_ARGUMENT_ERROR'
  55. Locale is: fr
  56. 'C\'est la vie!'
  57. 'C\'est la vie!'