globalizejs / globalizejs/globalize

Unit Formatter Returning Internal Error with CLDR v40.0.0

Open
#929 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
4.8k
Forks
585
PR merge metrics
No merged PRs in 30d

Description

Hi All,

For locale, `es` when i am using unitformatter, i am getting internal error.

Sample usage:

```
globalize.unitFormatter("bestFit", {
form: "narrow"
}).format(value)
```

Error Stack Trace:

```
Error: Oops, internal error
e is not defined
ReferenceError: e is not defined
at eval (eval at buildFunction (node_modules/globalize/dist/globalize/plural.js:227:20), :2:3)
at pluralGenerator (node_modules/globalize/dist/globalize/plural.js:297:10)
at unitFormat (node_modules/globalize/dist/globalize/unit.js:74:16)
at formatter (node_modules/globalize/dist/globalize/unit.js:101:10)
```

In CLDR v27.0.0, [plural.json](https://github.com/unicode-cldr/cldr-core/blob/master/supplemental/plurals.json#L179) has following data,

```
"es": {
"pluralRule-count-one": "n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000",
"pluralRule-count-other": " @integer 0, 2~16, 100, 1000, 10000, 100000, 1000000, … @decimal 0.0~0.9, 1.1~1.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
}
```

where as in v40.0.0 [plural.json](https://github.com/unicode-org/cldr-json/blob/main/cldr-json/cldr-core/supplemental/plurals.json#L187) has following data:

```
"es": {
"pluralRule-count-one": "n = 1 @integer 1 @decimal 1.0, 1.00, 1.000, 1.0000",
"pluralRule-count-many": "e = 0 and i != 0 and i % 1000000 = 0 and v = 0 or e != 0..5 @integer 1000000, 1c6, 2c6, 3c6, 4c6, 5c6, 6c6, … @decimal 1.0000001c6, 1.1c6, 2.0000001c6, 2.1c6, 3.0000001c6, 3.1c6, …",
"pluralRule-count-other": " @integer 0, 2~16, 100, 1000, 10000, 100000, 1c3, 2c3, 3c3, 4c3, 5c3, 6c3, … @decimal 0.0~0.9, 1.1~1.6, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 1.0001c3, 1.1c3, 2.0001c3, 2.1c3, 3.0001c3, 3.1c3, …"
}
```

Note: for key `pluralRule-count-many` value has `e`

Similar error is returned for `fr` locale.

Please suggest a way to resolve this issue. Also, I would be happy to inner-source the fix 😄

Thanks,

Ritika

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.