mikeedwards / po2json

Pure Javascript implementation of Uniforum message translation. Based on a great gist.
https://gist.github.com/1739769
Other
178 stars 62 forks source link

`mf` format can't handle plurals #92

Open iambibhas opened 4 years ago

iambibhas commented 4 years ago

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.

nirajstockx commented 3 years ago

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

markerviolence commented 3 years ago

Same problem

matmarlow commented 3 years ago

Same problem.

hthetiot commented 2 years ago

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