PHP Unconference Europe 2015

MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_patternConfigure le modèle utilisé par le formateur

Description

Style orienté objet

public bool MessageFormatter::setPattern ( string $pattern )

Style procédural

bool msgfmt_set_pattern ( MessageFormatter $fmt , string $pattern )

Configure le modèle utilisé par le formateur.

Liste de paramètres

fmt

Un objet de formateur de messages MessageFormatter

pattern

La chaîne de modèle utilisé par le formateur de messages. Le modèle utilise la syntaxe qui gère correctement les apostrophes : il est passé à » umsg_autoQuoteApostrophe avant d'être interprété.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec msgfmt_set_pattern(), style procédural

<?php
$fmt 
msgfmt_create"en_US""{0, number} singes sur {1, number} arbres" );
echo 
"Modèle par défaut : '" msgfmt_get_pattern$fmt ) . "'\n";
echo 
"Résultat formaté : " msgfmt_format$fmt, array(123456) ) . "\n";

msgfmt_set_pattern$fmt"{0, number} arbres accueillant {1, number} singes" );
echo 
"Nouveau modèle :'" msgfmt_get_pattern$fmt ) . "'\n";
echo 
"Nombre formaté : " msgfmt_format$fmt, array(123456) ) . "\n";
?>

Exemple #2 Exemple avec msgfmt_set_pattern(), style POO

<?php
$fmt 
= new MessageFormatter"en_US""{0, number} singes sur {1, number} arbres" );
echo 
"Modèle par défaut : '" $fmt->getPattern() . "'\n";
echo 
"Résultat formaté : " $fmt->format(array(123456)) . "\n";

$fmt->setPattern("{0, number} arbres accueillant {1, number} singes" );
echo 
"Nouveau modèle :'" $fmt->getPattern() . "'\n";
echo 
"Nombre formaté : " $fmt->format(array(123456)) . "\n";
?>

L'exemple ci-dessus va afficher :

Modèle par défaut : '{0,number} singes sur {1,number} arbres'
Résultat formaté : 123 singes sur 456 arbres
Nouveau modèle :'{0,number} arbres accueillant {1,number} singes'
Nombre formaté : 123 arbres accueillant 456 singes

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
0
neil dot smith at vouchercloud dot com
2 months ago
A correct example would be to transpose the placeholders in pattern 2.

This is typical where changing messages from one language to another changes the word order, to result in a sensible translation.

Let's imagine it's localised as Spanish or Russian instead of English.
So really you want to have pattern 2 provided by your human translator to read like this :

New pattern: '{1,number} trees hosting {0,number} monkeys'
Formatted number: 456 trees hosting 123 monkeys

That is - the order of arguments is always the same, but your translated message content has the placeholders transposed for non English languages.
To Top