Skip to content

Instantly share code, notes, and snippets.

@tasiot
Last active January 5, 2024 16:56
Show Gist options
  • Select an option

  • Save tasiot/b85aa195c622f4c15c095a2cae8ccfc2 to your computer and use it in GitHub Desktop.

Select an option

Save tasiot/b85aa195c622f4c15c095a2cae8ccfc2 to your computer and use it in GitHub Desktop.

Revisions

  1. tasiot revised this gist May 25, 2021. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion AppExtension.php
    Original file line number Diff line number Diff line change
    @@ -19,7 +19,7 @@ public function pluralize(int $count, string $singular, string $plural, string $
    if ($count > 1){
    return str_replace('{}', $count, $plural);
    } else if ($count <= 0 && null !== $zero){
    return str_replace('{}', $count, $zero);
    return $zero; // No string replacement required for zero
    }
    return str_replace('{}', $count, $singular);
    }
  2. tasiot created this gist May 9, 2021.
    26 changes: 26 additions & 0 deletions AppExtension.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    <?php

    namespace App\Twig;

    use Twig\Extension\AbstractExtension;
    use Twig\TwigFilter;

    class AppExtension extends AbstractExtension
    {
    public function getFilters(): array
    {
    return [
    new TwigFilter('pluralize', [$this, 'pluralize'])
    ];
    }

    public function pluralize(int $count, string $singular, string $plural, string $zero = null): string
    {
    if ($count > 1){
    return str_replace('{}', $count, $plural);
    } else if ($count <= 0 && null !== $zero){
    return str_replace('{}', $count, $zero);
    }
    return str_replace('{}', $count, $singular);
    }
    }
    41 changes: 41 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    # Usage

    ## Two parameters, singular and plural text

    ### Value: 0, show "You have 0 apple."
    ``
    {% set apples = 0 %}
    {{ apples|pluralize('You have {} apple.', 'You have {} apples.') }}
    ``

    ### Value: 1, show "You have 1 apple."
    ``
    {% set apples = 0 %}
    {{ apples|pluralize('You have {} apple.', 'You have {} apples.') }}
    ``

    ### Value: 2, show "You have 2 apples."
    ``
    {% set apples = 0 %}
    {{ apples|pluralize('You have {} apple.', 'You have {} apples.') }}
    ``

    ## Three parameters, singular, plural and zero text

    ### Value: 0, show "You don't have an apple."
    ``
    {% set apples = 0 %}
    {{ apples|pluralize('You have only one apple.', 'You have {} apples.', 'You don\'t have an apple.') }}
    ``

    ### Value: 1, show "You have only one apple."
    ``
    {% set apples = 0 %}
    {{ apples|pluralize('You have only one apple.', 'You have {} apples.', 'You don\'t have an apple.') }}
    ``

    ### Value: 2, show "You have 2 apples."
    ``
    {% set apples = 0 %}
    {{ apples|pluralize('You have only one apple.', 'You have {} apples.', 'You don\'t have an apple.') }}
    ``