mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
1.2 KiB
1.2 KiB
🦉 Translations 🦉
take care of this and "cherry-pick" 8464a1b04e
If properly setup, Owl QWeb engine can translate all rendered templates. To do so, it needs a translate function, which takes a string and returns a string.
For example:
const translations = {
hello: "bonjour",
yes: "oui",
no: "non",
};
const translateFn = (str) => translations[str] || str;
const qweb = new QWeb({ translateFn });
Once setup, all rendered templates will be translated using translateFn:
- each text node will be replaced with its translation,
- each of the following attribute values will be translated as well:
title,placeholder,labelandalt, - translating text nodes can be disabled with the special attribute
t-translation, if its value isoff.
So, with the above translateFn, the following templates:
<div>hello</div>
<div t-translation="off">hello</div>
<div>Are you sure?</div>
<input placeholder="hello" other="yes"/>
will be rendered as:
<div>bonjour</div>
<div>hello</div>
<div>Are you sure?</div>
<input placeholder="bonjour" other="yes"/>
Note that the translation is done during the compilation of the template, not when it is rendered.