diff --git a/docs/pt/guide/routing.md b/docs/pt/guide/routing.md
new file mode 100644
index 00000000..34d651f4
--- /dev/null
+++ b/docs/pt/guide/routing.md
@@ -0,0 +1,372 @@
+---
+outline: deep
+---
+
+# Roteamento
+
+## Roteamento baseado em Arquivos
+
+VitePress utiliza roteamento baseado em arquivos, isso significa que as páginas HTML geradas são mapeadas da estrutura de diretórios dos arquivos fonte Markdown. Por exemplo, dada a seguinte estrutura de diretório:
+
+```
+.
+├─ guide
+│ ├─ getting-started.md
+│ └─ index.md
+├─ index.md
+└─ prologue.md
+```
+
+As páginas HTML geradas serão:
+
+```
+index.md --> /index.html (acessível por /)
+prologue.md --> /prologue.html
+guide/index.md --> /guide/index.html (acessível por /guide/)
+guide/getting-started.md --> /guide/getting-started.html
+```
+
+O HTML resultante pode ser hospedado em qualquer servidor web que possa servir arquivos estáticos.
+
+## Diretório Raiz e Fonte
+
+Existem dois conceitos importantes na estrutura de arquivos de um projeto VitePress: o **diretório raiz** e o **diretório fonte**.
+
+### Diretório Raiz
+
+O diretório raiz é onde o VitePress procura pelo diretório especial `.vitepress`. O diretório `.vitepress` é um local reservado para o arquivo de configuração do VitePress, o cache do servidor de desenvolvimento, o resultado da compilação e o código de personalização de tema opcional.
+
+Ao executar `vitepress dev` ou `vitepress build` no terminal, VitePress usará o diretório atual como diretório raiz do projeto. Para especificar um subdiretório como raiz, é necessário passar o caminho relativo para o comando. Por exemplo, se o projeto VitePress estiver localizado em `./docs`, deve-se executar `vitepress dev docs`:
+
+```
+.
+├─ docs # diretório raiz
+│ ├─ .vitepress # diretório de configuração
+│ ├─ getting-started.md
+│ └─ index.md
+└─ ...
+```
+
+```sh
+vitepress dev docs
+```
+
+Isso resultará no seguinte mapeamento da fonte para HTML:
+
+```
+docs/index.md --> /index.html (acessível como /)
+docs/getting-started.md --> /getting-started.html
+```
+
+### Diretório Fonte
+
+O diretório fonte é onde seus arquivos fonte em Markdown estão. Por padrão, é o mesmo que o diretório raiz. No entanto, você pode configurá-lo por meio da opção de configuração [`srcDir`](../reference/site-config#srcdir).
+
+A opção `srcDir` é resolvida em relação ao diretório raiz do projeto. Por exemplo, com `srcDir: 'src'`, sua estrutura de arquivos ficará assim:
+
+```
+. # diretório raiz
+├─ .vitepress # diretório de configuração
+└─ src # diretório fonte
+ ├─ getting-started.md
+ └─ index.md
+```
+
+O mapeamento resultante da fonte para HTML:
+
+```
+src/index.md --> /index.html (acessível como /)
+src/getting-started.md --> /getting-started.html
+```
+
+## Links Entre Páginas
+
+Você pode usar tanto caminhos absolutos quanto relativos ao vincular páginas. Note que, embora ambas as extensões `.md` e `.html` funcionem, a prática recomendada é omitir as extensões de arquivo para que o VitePress possa gerar as URLs finais com base na sua configuração.
+
+```md
+
+[Getting Started](./getting-started)
+[Getting Started](../guide/getting-started)
+
+
+[Getting Started](./getting-started.md)
+[Getting Started](./getting-started.html)
+```
+
+Saiba mais sobre a vinculação de ativos, como imagens, em [Manipulação de Ativos](./manipulacao-de-ativos).
+
+### Vinculação a Páginas Não VitePress
+
+Se você deseja vincular a uma página em seu site que não é gerada pelo VitePress, será necessário usar a URL completa (abre em uma nova guia) ou especificar explicitamente o destino:
+
+**Entrada**
+
+```md
+[Link para pure.html](/pure.html){target="_self"}
+```
+
+**Saída**
+
+[Link para pure.html](/pure.html){target="_self"}
+
+::: dica Nota
+
+Nos links Markdown, a `base` é automaticamente adicionada à URL. Isso significa que, se você deseja vincular a uma página fora da sua base, será necessário algo como `../../pure.html` no link (resolvido em relação à página atual pelo navegador).
+
+Alternativamente, pode-se usar diretamente a sintaxe da tag âncora:
+
+```md
+Link para pure.html
+```
+
+:::
+
+## Geração de URL Limpa
+
+::: aviso Suporte do Servidor Necessário
+Para servir URLs limpas com VitePress, é necessário suporte no lado do servidor.
+:::
+
+Por padrão, VitePress resolve links de entrada para URLs que terminam com `.html`. No entanto, alguns usuários podem preferir "URLs limpas" sem a extensão `.html`, por exemplo, `example.com/caminho` em vez de `example.com/caminho.html`.
+
+Alguns servidores ou plataformas de hospedagem (por exemplo, Netlify, Vercel, GitHub Pages) fornecem a habilidade de mapear uma URL como `/foo` para `/foo.html` se ela existir, sem redirecionamento:
+
+- Netlify e GitHub Pages suportam isso por padrão.
+- Vercel requer a ativação da opção [`cleanUrls` no `vercel.json`](https://vercel.com/docs/concepts/projects/project-configuration#cleanurls).
+
+Se essa funcionalidade estiver disponível para você, também se pode ativar a própria opção de configuração [`cleanUrls`](../reference/site-config#cleanurls) de VitePress para que:
+
+- Links de entrada entre páginas sejam gerados sem a extensão `.html`.
+- Se o caminho atual terminar com `.html`, o roteador realizará um redirecionamento no lado do cliente para o caminho sem extensão.
+
+No entanto, se você não puder configurar o servidor com esse suporte, será necessário recorrer manualmente à seguinte estrutura de diretório:
+
+```
+.
+├─ getting-started
+│ └─ index.md
+├─ installation
+│ └─ index.md
+└─ index.md
+```
+# Reescrita de Rota
+
+Você pode personalizar o mapeamento entre a estrutura de diretórios fonte e as páginas geradas. Isso é útil quando você tem uma estrutura de projeto complexa. Por exemplo, digamos que você tenha um monorepo com vários pacotes e gostaria de colocar as documentações junto com os arquivos fonte desta forma:
+
+```
+.
+├─ packages
+│ ├─ pkg-a
+│ │ └─ src
+│ │ ├─ pkg-a-code.ts
+│ │ └─ pkg-a-docs.md
+│ └─ pkg-b
+│ └─ src
+│ ├─ pkg-b-code.ts
+│ └─ pkg-b-docs.md
+```
+
+E você deseja que as páginas VitePress sejam geradas assim:
+
+```
+packages/pkg-a/src/pkg-a-docs.md --> /pkg-a/index.html
+packages/pkg-b/src/pkg-b-docs.md --> /pkg-b/index.html
+```
+
+Você pode realizar isso configurando a opção [`rewrites`](../reference/site-config#rewrites) assim:
+
+```ts
+// .vitepress/config.js
+export default {
+ rewrites: {
+ 'packages/pkg-a/src/pkg-a-docs.md': 'pkg-a/index.md',
+ 'packages/pkg-b/src/pkg-b-docs.md': 'pkg-b/index.md'
+ }
+}
+```
+
+A opção `rewrites` também suporta parâmetros de rota dinâmicos. No exemplo acima, seria verboso listar todos os caminhos se você tiver muitos pacotes. Dado que todos eles têm a mesma estrutura de arquivo, você pode simplificar a configuração assim:
+
+```ts
+export default {
+ rewrites: {
+ 'packages/:pkg/src/(.*)': ':pkg/index.md'
+ }
+}
+```
+
+Os caminhos de reescrita são compilados usando o pacote `path-to-regexp` - consulte [sua documentação](https://github.com/pillarjs/path-to-regexp#parameters) para uma sintaxe mais avançada.
+
+::: warning Links Relativos com Reescritas
+
+Quando as reescritas estão habilitadas, **links relativos devem ser baseados nos caminhos reescritos**. Por exemplo, para criar um link relativo de `packages/pkg-a/src/pkg-a-code.md` para `packages/pkg-b/src/pkg-b-code.md`, deve-se usar:
+
+```md
+[Link para PKG B](../pkg-b/pkg-b-code)
+```
+:::
+
+## Rotas Dinâmicas
+
+Você pode gerar muitas páginas usando um único arquivo Markdown e dados dinâmicos. Por exemplo, você pode criar um arquivo `packages/[pkg].md` que gera uma página correspondente para cada pacote em um projeto. Aqui, o segmento `[pkg]` é um **parâmetro** de rota que diferencia cada página das outras.
+
+### Arquivo de Carregamento de Caminhos
+
+Como VitePress é um gerador de site estático, os caminhos possíveis das páginas devem ser determinados no momento da compilação. Portanto, uma página de rota dinâmica **deve** ser acompanhada por um **arquivo de carregamento de caminhos**. Para `packages/[pkg].md`, precisaremos de `packages/[pkg].paths.js` (`.ts` também é suportado):
+
+```
+.
+└─ packages
+ ├─ [pkg].md # modelo de rota
+ └─ [pkg].paths.js # carregador de caminhos da rota
+```
+
+O carregador de caminhos deve fornecer um objeto com um método `paths` como sua exportação padrão. O método `paths` deve retornar um _array_ de objetos com uma propriedade `params`. Cada um desses objetos gerará uma página correspondente.
+
+Dado o seguinte _array_ `paths`:
+
+```js
+// packages/[pkg].paths.js
+export default {
+ paths() {
+ return [
+ { params: { pkg: 'foo' }},
+ { params: { pkg: 'bar' }}
+ ]
+ }
+}
+```
+
+As páginas HTML geradas serão:
+
+```
+.
+└─ packages
+ ├─ foo.html
+ └─ bar.html
+```
+
+### Múltiplos Parâmetros
+
+Uma rota dinâmica pode conter múltiplos parâmetros:
+
+**Estrutura de Arquivo**
+
+```
+.
+└─ packages
+ ├─ [pkg]-[version].md
+ └─ [pkg]-[version].paths.js
+```
+
+**Carregador de Caminhos**
+
+```js
+export default {
+ paths: () => [
+ { params: { pkg: 'foo', version: '1.0.0' }},
+ { params: { pkg: 'foo', version: '2.0.0' }},
+ { params: { pkg: 'bar', version: '1.0.0' }},
+ { params: { pkg: 'bar', version: '2.0.0' }}
+ ]
+}
+```
+
+**Saída**
+
+```
+.
+└─ packages
+ ├─ foo-1.0.0.html
+ ├─ foo-2.0.0.html
+ ├─ bar-1.0.0.html
+ └─ bar-2.0.0.html
+```
+
+### Gerando Caminhos Dinamicamente
+
+O módulo de carregamento de caminhos é executado no Node.js e apenas durante o momento de compilação. Você pode gerar dinamicamente o _array_ de caminhos usando qualquer dado, seja local ou remoto.
+
+Gerando caminhos a partir de arquivos locais:
+
+```js
+import fs from 'fs'
+
+export default {
+ paths() {
+ return fs
+ .readdirSync('packages')
+ .map((pkg) => {
+ return { params: { pkg }}
+ })
+ }
+}
+```
+
+Gerando caminhos a partir de dados remotos:
+
+```js
+export default {
+ async paths() {
+ const pkgs = await (await fetch('https://my-api.com/packages')).json()
+
+ return pkgs.map((pkg) => {
+ return {
+ params: {
+ pkg: pkg.name,
+ version: pkg.version
+ }
+ }
+ })
+ }
+}
+```
+
+### Acessando Parâmetros na Página
+
+Você pode usar os parâmetros para passar dados adicionais para cada página. O arquivo de rota Markdown pode acessar os parâmetros da página atual em expressões Vue através da propriedade global `$params`:
+
+```md
+- nome do pacote: {{ $params.pkg }}
+- versão: {{ $params.version }}
+```
+
+Você também pode acessar os parâmetros da página atual através da API de tempo de execução [`useData`](../reference/runtime-api#usedata). Isso está disponível tanto em arquivos Markdown quanto em componentes Vue:
+
+```vue
+
+```
+
+### Renderizando Conteúdo Cru
+
+Parâmetros passados para a página serão serializados na carga JavaScript do cliente, portanto, evite passar dados pesados nos parâmetros, como Markdown cru ou conteúdo HTML obtido de um CMS remoto.
+
+Em vez disso, você pode passar tal conteúdo para cada página usando a propriedade `content` em cada objeto de caminho:
+
+```js
+export default {
+ async paths() {
+ const posts = await (await fetch('https://my-cms.com/blog-posts')).json()
+
+ return posts.map((post) => {
+ return {
+ params: { id: post.id },
+ content: post.content // Markdown ou HTML cru
+ }
+ })
+ }
+}
+```
+
+Em seguida, use a seguinte sintaxe especial para mostrar o conteúdo como parte do próprio arquivo Markdown:
+
+```md
+
+```