|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## fluent 0.9.0 (October 23, 2018) |
| 4 | + |
| 5 | +This release of `fluent` brings support for version 0.7 of the Fluent Syntax |
| 6 | +spec. The `FluentBundle` API remains unchanged. Files written in valid Syntax |
| 7 | +0.6 may parse differently in this release. See the compatibility note below. |
| 8 | + |
| 9 | + - Implement Fluent Syntax 0.7. (#287) |
| 10 | + |
| 11 | + The major new feature of Syntax 0.7 is the relaxation of the indentation |
| 12 | + requirement for all non-text elements of patterns. It's finally possible |
| 13 | + to leave the closing brace of select expressions unindented: |
| 14 | + |
| 15 | + emails = { $unread_email_count -> |
| 16 | + [one] You have one unread email. |
| 17 | + *[other] You have { $unread_email_count } unread emails. |
| 18 | + } |
| 19 | + |
| 20 | + Consult the [changelog](https://github.com/projectfluent/fluent/releases/tag/v0.7.0) |
| 21 | + to learn about other changes in Syntax 0.7. |
| 22 | + |
| 23 | + - Re-write the runtime parser. (#289) |
| 24 | + |
| 25 | + Syntax 0.7 was an opportunity to completely re-write the runtime parser, |
| 26 | + which was originally created in the pre-0.1 era of Fluent. It's now less |
| 27 | + than a half of the code size of the old parser and also slightly faster. |
| 28 | + |
| 29 | + The parser takes an optimistic approach to parsing. It focuses on |
| 30 | + minimizing the number of false negatives at the expense of increasing the |
| 31 | + risk of false positives. In other words, it aims at parsing valid Fluent |
| 32 | + messages with a success rate of 100%, but it may also parse a few invalid |
| 33 | + messages which the reference parser would reject. The parser doesn't |
| 34 | + perform strict validation of the all productions of the Fluent grammar. |
| 35 | + It may thus produce entries which wouldn't make sense in the real world. |
| 36 | + For best results users are advised to validate translations with the |
| 37 | + `fluent-syntax` parser pre-runtime (e.g. by using Pontoon or |
| 38 | + `compare-locales`). |
| 39 | + |
| 40 | +### Backward-incompatible changes |
| 41 | + |
| 42 | + - Variant keys can now be either numbers (as previously) or identifiers. |
| 43 | + Variant keys with spaces in them produce syntax errors, e.g. `[New York]`. |
| 44 | + - `CR` is not a valid EOL character anymore. Please use `LF` or `CRLF`. |
| 45 | + - `Tab` is not recognized as syntax whitespace. It can only be used in |
| 46 | + translation content. |
| 47 | + |
| 48 | + |
3 | 49 | ## fluent 0.8.1 (September 27, 2018) |
4 | 50 |
|
5 | 51 | - Expose `FluentResource` as an export. (#286) |
|
0 commit comments