Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert react-intl's plural syntax to PO format plural syntax #98

Open
Sand1929 opened this issue Nov 23, 2017 · 1 comment
Open

Convert react-intl's plural syntax to PO format plural syntax #98

Sand1929 opened this issue Nov 23, 2017 · 1 comment

Comments

@Sand1929
Copy link
Contributor

React-intl uses the ICU message syntax, which means that if you want to specify different translations for different plural forms, it looks something like this:

You have {itemCount} {itemCount, plural, one {item} other {items}}.

(See https://formatjs.io/guides/message-syntax/#plural-format)

When converted into PO format using react-intl-po, it currently looks like this:

msgid "You have {itemCount} {itemCount, plural, one {item} other {items}}"

However, in PO format, plural forms are supposed to be specified like this:

msgid "You have %1 item"
msgid_plural "You have %1 items"
msgstr[0] ""
msgstr[1] ""

(And you can specify msgstr[2] and so on for languages with more than 2 plural forms. See http://pology.nedohodnik.net/doc/user/en_US/ch-poformat.html)

This issue also applies to translations with ordinal numbers, for which react-intl uses ICU's selectordinal. This could also be converted to PO format. However, I propose we limit the scope of this issue to translating cardinal plurals (i.e., plurals like the example above, where react-intl uses the plural keyword). That being said, any solution we come up with should probably keep in mind that we'll want to translate selectordinal as well. I'm happy to take lead on this and come up with a PR. Let me know your thoughts!

@evenchange4
Copy link
Owner

evenchange4 commented Nov 23, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants