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