Add validation for Fluent-style placeholders
@jbphet is already working on this.
Since Dec 16, 2025.
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
Over the last several months, support for a translation system called "Fluent" has been added to our simulation code to enable translation of more complex phrases and sentences than we could previously handle. The placeholders used in Fluent strings are a bit different from the ones that are currently validated by Rosetta. The current ones look like {0} or {{value}}, whereas the Fluent style looks like { $value }.
As of this writing (Dec 2025), Fluent-style patterns are only used in a11y strings. This is because Rosetta doesn't yet show these strings to the user, so it's safe to use a pattern that Rosetta doesn't support since it essentially ignores them. However, there will soon be an effort to add full support for translation of a11y strings. Validating Fluent patterns is probably one of the first and easiest things we can do in support of this effort.
For reference, here's a link to one of the first GitHub issues created for adding Fluent support. There are a ton of other issues that were eventually created, but this one is a decent starting place if you need to piece together the backstory: https://github.com/phetsims/joist/issues/992.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.