CakeFest 2024: The Official CakePHP Conference

MessageFormatter::setPattern

msgfmt_set_pattern

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

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

Description

Style orienté objet

public MessageFormatter::setPattern(string $pattern): bool

Style procédural

msgfmt_set_pattern(MessageFormatter $formatter, string $pattern): bool

Configure le modèle utilisé par le formateur.

Liste de paramètres

formatter

Un objet de formateur de messages MessageFormatter

pattern

La chaîne de modèle utilisée par le formateur de messages. Le modèle utilise une syntaxe qui accepte les apostrophes; Voir » Quoting/Escaping pour plus de détails.

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(123, 456) ) . "\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(123, 456) ) . "\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(123, 456)) . "\n";

$fmt->setPattern("{0, number} arbres accueillant {1, number} singes" );
echo
"Nouveau modèle :'" . $fmt->getPattern() . "'\n";
echo
"Nombre formaté : " . $fmt->format(array(123, 456)) . "\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

User Contributed Notes 1 note

up
0
neil dot smith at vouchercloud dot com
9 years 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