• 
      

    Fix ngettext and variants with different interpolated variables in strings.

    Review Request #11023 — Created May 15, 2020 and submitted

    Information

    babel-plugin-django-gettext
    master

    Reviewers

    When using ngettext (and its variants), the generated code would be
    wrong if both strings ended up using its own interpolated arguments. For
    instance, this code:

    N_(`This is ${var1}`,
       `This is ${var2}`,
       2)
    

    ... would end up generating the right strings, but the wrong arguments
    to pass in. The way we were building up the merged list of variables was
    wrong.

    This change fixes this by introducing a new merging function for these
    lists of variables, which goes through the lists and builds a merged,
    deduplicated list of variables that can be passed in.

    The unit test coverage has been expanded to include unique variables in
    the ngettext-related tests that involve interpolation, and to test
    both singular and plural variants in all tests.

    Unit tests pass.

    Verified this fixed a bug I encountered when testing /r/11022.

    Summary ID
    Fix ngettext and variants with different interpolated variables in strings.
    When using `ngettext` (and its variants), the generated code would be wrong if both strings ended up using its own interpolated arguments. For instance, this code: ```javascript N_(`This is ${var1}`, `This is ${var2}`, 2) ``` ... would end up generating the right strings, but the wrong arguments to pass in. The way we were building up the merged list of variables was wrong. This change fixes this by introducing a new merging function for these lists of variables, which goes through the lists and builds a merged, deduplicated list of variables that can be passed in. The unit test coverage has been expanded to include unique variables in the `ngettext`-related tests that involve interpolation, and to test both singular and plural variants in all tests.
    13871b84bcdc0186a08959f3857a84f05c1a0813
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed