|
@@ -18,6 +18,30 @@ namespace Symfony\Component\Translation;
|
|
|
*/
|
|
|
class MessageSelector
|
|
|
{
|
|
|
+ /**
|
|
|
+ * Given a message with different plural translations separated by a
|
|
|
+ * pipe (|), this method returns the correct portion of the message based
|
|
|
+ * on the given number, locale and the pluralization rules in the message
|
|
|
+ * itself.
|
|
|
+ *
|
|
|
+ * The message supports two different types of pluralization rules:
|
|
|
+ *
|
|
|
+ * interval: {0} There is no apples|{1} There is one apple|]1,Inf] There is %count% apples
|
|
|
+ * indexed: There is one apple|There is %count% apples
|
|
|
+ *
|
|
|
+ * The indexed solution can also contain labels (e.g. one: There is one apple).
|
|
|
+ * This is purely for making the translations more clear - it does not
|
|
|
+ * affect the functionality.
|
|
|
+ *
|
|
|
+ * The two methods can also be mixed:
|
|
|
+ * {0} There is no apples|one: There is one apple|more: There is %count% apples
|
|
|
+ *
|
|
|
+ * @throws InvalidArgumentException
|
|
|
+ * @param string $message The message being translated
|
|
|
+ * @param integer $number The number of items represented for the message
|
|
|
+ * @param string $locale The locale to use for choosing
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
public function choose($message, $number, $locale)
|
|
|
{
|
|
|
$parts = explode('|', $message);
|