# Traduzir uma vista para vários idiomas

> Marque textos com @(...) nas vistas e forneça as traduções em ficheiros de recursos escolhidos por LOCALIZE().

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: pt
Content-SHA256: 874df0b2a494b0fa2800f68df20928366e2ca3ba25a467e02642307dbf753325
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

Envolva qualquer texto de uma vista em `@(...)` e o Total.js substitui-o pela tradução do idioma atual. As traduções vivem em `resources/<language>.resource`; cada linha é `key : translation`. A chave é `T` mais o hash do texto original em base 36, que o `total5` pode gerar por si. Os textos sem tradução ficam como escritos, por isso o texto da vista funciona como idioma por omissão.

`LOCALIZE()` decide o idioma de cada pedido. Aqui é lido da query string, mas pode ser um cookie, um cabeçalho ou um segmento do URL.

```js definitions/localization.js
LOCALIZE(function($) {
	return $.query.lang;
});
```

```text resources/sk.resource
// Total.js translation file
T4oxobw : Vitajte v obchode
```

```html views/index.html
@{layout('')}
<h1>@(Welcome to the shop)</h1>
```

```js controllers/default.js
exports.install = function() {
	ROUTE('GET /', home);
};

function home($) {
	$.view('index');
}
```
