# 🦉 Translations 🦉 If properly setup, Owl can translate all rendered templates. To do so, it needs a translate function, which takes a string and returns a string. For example: ```js const translations = { hello: "bonjour", yes: "oui", no: "non", }; const translateFn = (str) => translations[str] || str; const app = new App(Root, { templates, tranaslateFn }); // ... ``` See the [app configuration page](app.md#configuration) for more info on how to configure an Owl application. 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`, `label` and `alt`, - translating text nodes can be disabled with the special attribute `t-translation`, if its value is `off`. So, with the above `translateFn`, the following templates: ```xml