po2json icon indicating copy to clipboard operation
po2json copied to clipboard

`mf` format can't handle plurals

Open iambibhas opened this issue 4 years ago • 4 comments

Expected Behavior

I have this entry in my po file -

#: test/registry.py:63
msgid "You only have %1 lesson left to finish %2."
msgid_plural "You only have %1 lessons left to finish %2."
msgstr[0] "asd %1 %2"
msgstr[1] "asd %1 %2"
msgstr[2] "asd %1 asd %2"

#: test/registry.py:68
msgid "An access token is required to access this resource"
msgstr ""

which should convert to a format that works fine with both gettext() and ngettext() in gettext.js.

Actual Behavior

If I use raw format, it generates -

{ 
	"You only have %1 lesson left to finish %2.": [
      "You only have %1 lessons left to finish %2.",
      "asd %1 %2",
      "asd %1 %2",
      "asd %1 asd %2"
   ],
   "An access token is required to access this resource": [
      null,
      ""
   ],
   ...
}

Which, when using gettext.js, doesn't work with gettext(), and only works with ngettext(%s, 1) even for the singular value as the second string.

If I use mf format, it generates -

{
   "You only have %1 lesson left to finish %2.": "asd %1 %2",
   "An access token is required to access this resource": "",
   ...
}

Which works fine with gettext() in gettext.js, but the plural values are ignored when converting to json.

Steps to Reproduce

after following recommended workflow.

iambibhas avatar Nov 04 '20 06:11 iambibhas

@iambibhas I am also facing similar issue. Did you by chance get any solution for 'mf' not able to handle plurals?

nirajstockx avatar Dec 02 '20 14:12 nirajstockx

Same problem

markerviolence avatar Feb 11 '21 13:02 markerviolence

Same problem.

matmarlow avatar May 20 '21 08:05 matmarlow

I think it's related to https://github.com/smhg/gettext-parser not this lib.

hthetiot avatar Dec 15 '21 20:12 hthetiot