<commit_before>Quando seu aplicativo for iniciado, o roteador compara com a URL com as *rotas* que você definiu. As rotas, por sua vez, são responsáveis por renderizar as templates, carregar os dados, e definir o estado do seu aplicativo.

## Basic Routes

O método [`map()`](http://emberjs.com/api/classes/Ember.Router.html#method_map) do roteador do seu aplicativo Ember pode ser invocado para definir mapeamentos de URL. Ao chamar `map()`, você deve passar uma função que será invocada com o valor de `this` sendo um objeto que você pode usar para criar rotas.

```app/router.js Router.map(function() { this.route('about', { path: '/about' }); this.route('favorites', { path: '/favs' }); });

    <br />Agora, quando o usuario visitar `/about`, Ember vai renderizar a template`about`. Visitar `/favs` irá renderizar a template `favorites`.
    
    Voce pode omitir path se o nome da template tem o mesmo nome da rota. ```app/router.js
    Router.map(function() {
      this.route('about');
      this.route('favorites', { path: '/favs' });
    });
    

Dentro de suas templates, voce pode usar [`{{link-to}}`](http://emberjs.com/api/classes/Ember.Templates.helpers.html#method_link-to) para navegar entre as rotas, usando o nome que voce definiu no método `route`.

```handlebars
{{#link-to "index"}}<img class="logo">{{/link-to}}

<nav>
  {{#link-to "about"}}About{{/link-to}}
  {{#link-to "favorites"}}Favorites{{/link-to}}
</nav>
```

O helper `{{link-to}}` tambem ira adicionar a classe `active` ao link que aponta para a rota atual.

Multi-word route names are conventionally dasherized, such as:

```app/router.js Router.map(function() { this.route('blog-post', { path: '/blog-post' }); });

    <br />The route defined above will by default use the `blog-post.js` route handler,
    the `blog-post.hbs` template, and be referred to as `blog-post` in any
    `{{link-to}}` helpers.
    
    Multi-word route names that break this convention, such as:
    
    ```app/router.js
    Router.map(function() {
      this.route('blog_post', { path: '/blog-post' });
    });
    

will still by default use the `blog-post.js` route handler and the `blog-post.hbs` template, but will be referred to as `blog_post` in any `{{link-to}}` helpers.

## Nested Routes

Often you'll want to have a template that displays inside another template. For example, in a blogging application, instead of going from a list of blog posts to creating a new post, you might want to have the post creation page display next to the list.

In these cases, you can use nested routes to display one template inside of another.

You can define nested routes by passing a callback to `this.route`:

```app/router.js Router.map(function() { this.route('posts', function() { this.route('new'); }); });

    <br />And then add the `{{outlet}}` helper to your template where you want the nested
    template to display:<commit_msg>[i18n] Sync Translations<commit_after>Quando seu aplicativo for iniciado, o roteador compara com a URL com as *rotas* que você definiu. As rotas, por sua vez, são responsáveis por renderizar as templates, carregar os dados, e definir o estado do seu aplicativo.

## Basic Routes

O método [`map()`](http://emberjs.com/api/classes/Ember.Router.html#method_map) do roteador do seu aplicativo Ember pode ser invocado para definir mapeamentos de URL. Ao chamar `map()`, você deve passar uma função que será invocada com o valor de `this` sendo um objeto que você pode usar para criar rotas.

```app/router.js Router.map(function() { this.route('about', { path: '/about' }); this.route('favorites', { path: '/favs' }); });

    <br />Agora, quando o usuario visitar `/about`, Ember vai renderizar a template`about`. Visitar `/favs` irá renderizar a template `favorites`.
    
    Voce pode omitir path se o nome da template tem o mesmo nome da rota. ```app/router.js
    Router.map(function() {
      this.route('about');
      this.route('favorites', { path: '/favs' });
    });
    

Dentro de suas templates, voce pode usar [`{{link-to}}`](http://emberjs.com/api/classes/Ember.Templates.helpers.html#method_link-to) para navegar entre as rotas, usando o nome que voce definiu no método `route`.

```handlebars
{{#link-to "index"}}<img class="logo">{{/link-to}}

<nav>
  {{#link-to "about"}}About{{/link-to}}
  {{#link-to "favorites"}}Favorites{{/link-to}}
</nav>
```

O helper `{{link-to}}` tambem ira adicionar a classe `active` ao link que aponta para a rota atual.

Rotas com nomes compostos por múltiplas palavras, por convenção terão endereços também separados por hífen, por exemplo:

```app/router.js Router.map(function() { this.route('blog-post', { path: '/blog-post' }); });

    <br />A rota definida acima, por padrão, vai utilizar o handler `blog-post.js`, a template `blog-post.hbs`, e qualquer `{{link-to}}` helper vai utilizar `blog-post` para referencia-la.
    
    Multi-word route names that break this convention, such as:
    
    ```app/router.js
    Router.map(function() {
      this.route('blog_post', { path: '/blog-post' });
    });
    

will still by default use the `blog-post.js` route handler and the `blog-post.hbs` template, but will be referred to as `blog_post` in any `{{link-to}}` helpers.

## Nested Routes

Often you'll want to have a template that displays inside another template. For example, in a blogging application, instead of going from a list of blog posts to creating a new post, you might want to have the post creation page display next to the list.

In these cases, you can use nested routes to display one template inside of another.

You can define nested routes by passing a callback to `this.route`:

```app/router.js Router.map(function() { this.route('posts', function() { this.route('new'); }); });

    <br />And then add the `{{outlet}}` helper to your template where you want the nested
    template to display:
{'fraction_non_alphanumeric': 0.13150731541340593, 'fraction_numerical': 0.0003402517863218782, 'mean_word_length': 3.9822033898305085, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4889395', 'n_tokens_mistral': 1924, 'n_tokens_neox': 1865, 'n_words': 716}