web-dev-qa-db-fra.com

Comment échapper aux chaînes de texte simples et plurielles i18n?

J'ai rencontré les fonctions esc_html_e() et esc_attr_e() qui me permettent d'échapper aux chaînes de texte traduites. Je les utilise maintenant au lieu de _e(), le cas échéant.

La fonction _n() permet de traduire les formes simples et plurielles. Je ne pense pas qu'il y ait une fonction esc_attr_n() dans WordPress. Comment puis-je échapper au texte traduit dans ce cas? Voici mon utilisation actuelle de la fonction _n():

printf(
    _n(
        '1 item',
        '%d items',
        $count,
        'textdomain'
    ),
    number_format_i18n( $count )
);

Réf https://codex.wordpress.org/Function_Reference/_n

3
henrywright

esc_html_e() et esc_attr_e() ne sont que des fonctions d'encapsulation pour _ afin d'économiser un peu de frappe et d'améliorer la lisibilité. Vous avez raison, il n'y en a pas pour _n, il vous suffit donc de faire le "wrapping" vous-même:

printf(
    esc_attr(
        _n(
            '%s item',
            '%s items',
            $count,
            'textdomain'
        )
    ),
    number_format_i18n( $count )
);
4
TheDeadMedic