Normally, I18N function __() accept string parameter, but if we pass it a parameter of type integer (or float) and we have translation like this:
1 minute -> 1 menit
This will fail because of PHP when compare integer and string using equal (==), string will be converted to integer (or float) first.
<?php echo __('1') // correct ?>
<?php $test = 1 ?>
<?php echo __($test) // -> 1 menit, should 1 ?>
Workarround is, first use identical (===) comparison in sfMessageFormat->formatString(), second, cast variable $string into string ($string = (string) $string).
Here, I included a unit test.