Skip to content

Support for fluent terms not defined in the base language? #9895

@Imberflur

Description

@Imberflur

Describe the problem

Terms are similar to regular messages but they can only be used as references in other messages. Their identifiers start with a single dash - like in the example above: -brand-name. The runtime cannot retrieve terms directly.

https://projectfluent.org/fluent/guide/terms.html

Because terms are referenced by other messages it can be useful for translators to define terms that aren't present in the base language. We have a few languages that utilize this pattern and noticed a few issues when adopting Weblate:

  1. No interface for translators to add novel terms for a particular language (afaict).
  2. Since terms are treated like regular messages, the cleanup add-on will remove terms not present in the base language.

Describe the solution you'd like

I'm not familiar enough with Weblate to know how viable it is to address 1, but having an interface for this would be pretty useful.

For 2, it seems possible to add a check to not remove terms in the cleanup code. A more ideal solution would be to check if the term is referenced by any other message, but I assume that would be much harder to implement and it could removed terms that are just briefly unused.

Describe alternatives you've considered

A workaround for this is to manually add empty placeholder terms to the base language when translators need them (other than adding more friction, this also is just less discoverable, but perhaps we could include information about this in our project specific documentation for translators).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Waiting for: DemandLow priority for development. Pull requests welcome. Can be prioritized by sponsorship.enhancementAdding or requesting a new feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions