-
-
Notifications
You must be signed in to change notification settings - Fork 34
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
Candidate Features to be implemented/tested in the both Data Model versions #165
Comments
Dynamic References #130 Relevant example of this that I gave during the meeting: A message regarding one of a set of products (e.g. browsers) needs to be formatted. This can be made possible by having one resource with identifiers for each product, and their representation under different cases. For example, this is in Finnish: chrome:
nominative: Chrome
genitive: Chromen
edge:
nominative: Edge
genitive: Edgen
firefox:
nominative: Firefox
genitive: Firefoxin
safari:
nominative: Safari
genitive: Safarin With this message resource, a dynamic message reference using a path |
Plural Range Selectors #125 Depending on the locale, the pluralisation of a range of values depends on either the start or end value, both, or neither. This makes it an interesting data model test, as an implementation may require the range to be passed in as an externally defined tuple, or it may allow for the range start & end to be passed in as separate variables. |
The multi-selector messages of #119 That issue has (or links) to three complex real-world examples that in MF1 use internal selectors, but in MF2 can't. It would be good to show how each of these could be represented by each data model not just as a single message, but also as sets of messages; the latter form is effectively required for a use case that needs to maintain complete backwards compatibility with MF1 sources. |
Interaction with a custom list formatter #36 As detailed in the issue, at least Siri uses a list formatter that provides a wider set of options and transformation than e.g. the ICU ListFormatter. The point with this example wouldn't be to implement said formatter, but to show how the interface would look like, with multiple tweakable things. This would also provide an opportunity to show a difference between the models' ability to complement an externally provided list with values defined within the data model. |
For the data model proposed by @zbraniecki and myself, I've added a test suite covering each of the four features listed above. This CI run shows all of those tests passing. For the multi-selector messages, the data model is compiled from the original Fluent and MessageFormat 1 sources, as working with the up to 81 separate selector cases directly would be somewhat unwieldy. Internally, each message's internal selectors are here lifted to be external selectors, so this doesn't yet show how message references could be used for the same task. Regarding the list formatter case, the test flattens multiple arguments into one list, and uses |
List formatting with grammatical inflection on each list item #3 Example:
|
Interpolating placeholder values with linguistic context #3
|
Full message fallback #45 Fall back to a default message pattern when part of the message fails to format, ex: the formatter for a placeholder lacks logic / data to format input. Ex: Polish: |
Inflections #16
The linked issue describes some of the known considerations for "Your", "is", "on", and
The linked issue describes the need for plural selection based on |
Pluggable formatters / Interface for formatters #22 Allow custom (user-defined) formatters to be used in a message. This would be best designed by defining an interface through which all formatter functions can participate. |
Regarding placeholder value interpolation and inflections, those could get solved by the local transformations of #160. As discussed there, the only requirement that this would impose on the data model is ensuring that metadata can be attached to nodes. Of course the syntax and runtime processing need to take it into account too. |
This list was discussed at yesterday's "MF extended" meeting. The following were selected as features to compare the proposed data models:
Additionally, the Romanian dative case example of the second list formatter feature was selected. Discussion on the first list formatter feature was cut short without a final decision; the point of conflict is the ability to concatenate lists and literal values passed as separate formatter arguments. The remaining items were not selected, as the sense was that while very important, they do not have a significant impact on the data model. More discussion on a possible solution for them is available in issue #160.
|
List of issues that must be tested against both data Models. Please add comments to any relevant issue that should be considered as a Feature Candidate to be implemented and tested agains the candidate versions of data models.
Goals
Important :
Process
The text was updated successfully, but these errors were encountered: