odoo / owl

OWL: A web framework for structured, dynamic and maintainable applications
https://odoo.github.io/owl/
Other
1.1k stars 332 forks source link

[IMP] compiler: add support for the `.translate` suffix #1613

Open sdegueldre opened 1 month ago

sdegueldre commented 1 month ago

Previously, if you wanted to pass a prop and have it be translated, you had to either to the translation manually in JS, or use a workaround with t-set and a body so that Owl would translate it for you, and then pass the t-set variable as a prop. This is quite inconvenient and is a common use case.

This commit introduces the .translate suffix to solve this issue. When a prop uses this suffix, it is treated as a string instead of a JS expression, avoiding the need for quotes as well as their escaping and allowing extraction tools such as babel to generate a clean string as the term's translation id. This is also more ergonomic.

This change will still require some work in Odoo to correctly extract the terms for props using this suffix.

Odoo PR adding extraction for the suffix: https://github.com/odoo/odoo/pull/165922