Skip to content

Commit a1c70ac

Browse files
daniloraisidelucis
andauthored
i18n(pt-br): update guides/i18n.mdx (#1197)
* i18n(pt-br): update `guides/i18n.mdx` * i18n(pt-br): update `guides/i18n.mdx` --------- Co-authored-by: Chris Swithinbank <[email protected]>
1 parent 4d9b802 commit a1c70ac

File tree

1 file changed

+77
-39
lines changed
  • docs/src/content/docs/pt-br/guides

1 file changed

+77
-39
lines changed

docs/src/content/docs/pt-br/guides/i18n.mdx

+77-39
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
22
title: Internacionalização (i18n)
3-
description: Aprenda como configurar seu site Starlight para suportar várias línguas.
3+
description: Aprenda como configurar seu site Starlight para suportar vários idiomas.
44
---
55

66
import FileTree from '../../../../components/file-tree.astro';
77

8-
Starlight providencia suporte integrado para sites multilíngue, incluindo roteamento, conteúdo de fallback e suporte completo para línguas right-to-left (RTL).
8+
O Starlight oferece suporte integrado para sites multi-idioma, incluindo roteamento, conteúdo de fallback e suporte completo para idiomas direita para esquerda (RTL).
99

10-
## Configure i18n
10+
## Configurar i18n
1111

12-
1. Diga ao Starlight as línguas que você suporta passando [`locales`](/pt-br/reference/configuration/#locales) e [`defaultLocale`](/pt-br/reference/configuration/#defaultlocale) para a integração Starlight:
12+
1. Diga ao Starlight os idiomas que você suporta, passando [`locales`](/pt-br/reference/configuration/#locales) e [`defaultLocale`](/pt-br/reference/configuration/#defaultlocale) para a integração Starlight:
1313

14-
```js
14+
```js {9-26}
1515
// astro.config.mjs
1616
import { defineConfig } from 'astro/config';
1717
import starlight from '@astrojs/starlight';
@@ -20,12 +20,12 @@ Starlight providencia suporte integrado para sites multilíngue, incluindo rotea
2020
integrations: [
2121
starlight({
2222
title: 'Minha Documentação',
23-
// Define Português como a língua padrão deste site.
24-
defaultLocale: 'pt',
23+
// Define Português do Brasil como o idioma padrão deste site.
24+
defaultLocale: 'pt-br',
2525
locales: {
26-
// Documentação em Português em `src/content/docs/pt/`
27-
pt: {
28-
label: 'Português',
26+
// Documentação em Português do Brasil em `src/content/docs/pt-br/`
27+
'pt-br': {
28+
label: 'Português do Brasil',
2929
},
3030
// Documentação em Chinês Simplificado em `src/content/docs/zh-cn/`
3131
'zh-cn': {
@@ -43,9 +43,9 @@ Starlight providencia suporte integrado para sites multilíngue, incluindo rotea
4343
});
4444
```
4545

46-
Seu `defaultLocale` será utilizado para o conteúdo de fallback e rótulos da UI, então escolha a língua que é a mais provável para você começar a escrever conteúdo em, ou já tem conteúdo para ela.
46+
Seu `defaultLocale` será utilizado para o conteúdo de fallback e rótulos da UI, então escolha o idioma que é a mais provável que você começe a escrever conteúdo, ou já tem conteúdo escrito.
4747

48-
2. Crie um diretório para cada língua em `src/content/docs/`.
48+
2. Crie um diretório para cada idioma em `src/content/docs/`.
4949
Por exemplo, para a configuração mostrada acima, crie as seguintes pastas:
5050

5151
<FileTree>
@@ -54,22 +54,22 @@ Starlight providencia suporte integrado para sites multilíngue, incluindo rotea
5454
- content/
5555
- docs/
5656
- ar/
57-
- pt/
57+
- pt-br/
5858
- zh-cn/
5959

6060
</FileTree>
6161

62-
3. Você agora pode adicionar arquivos de conteúdo em seus diretórios da língua. Use o mesmo nome de arquivo para associar páginas entre línguas e se aproveite do conjunto completo de funcionalidades de i18n do Starlight, incluindo conteúdo de fallback, avisos de tradução e mais.
62+
3. Você agora pode adicionar arquivos de conteúdo em seus diretórios de idioma. Use o mesmo nome de arquivo para associar páginas entre idiomas e se aproveite do conjunto completo de funcionalidades de internacionalização do Starlight, incluindo conteúdo de fallback, avisos de tradução e mais.
6363

64-
Por exemplo, crie `ar/index.md` e `pt/index.md` para representar a página inicial em Árabe e Português respectivamente.
64+
Por exemplo, crie `ar/index.md` e `pt-br/index.md` para representar a página inicial em Árabe e Português do Brasil respectivamente.
6565

66-
### Use um local raiz
66+
### Use uma localidade raiz
6767

68-
Você pode usar um local “raiz” para servir uma língua sem nenhum prefixo de i18n no seu caminho. Por exemplo, se Português é seu local raiz, um caminho de página em Português se pareceria com `/sobre` ao invés de `/pt/sobre`.
68+
Você pode usar uma localidade “raiz” para servir um idioma sem nenhum prefixo de internacionalização no seu diretório. Por exemplo, se Português do Brasil é sua localidade raiz, um diretório de página em Português do Brasil seria `/sobre` ao invés de `/pt-br/sobre`.
6969

70-
Para definir um local raiz, use a chave `root` na sua configuração de `locales`. Se o local raiz também for o local padrão do seu conteúdo, remova `defaultLocale` ou defina-o como `'root'`.
70+
Para definir uma localidade raiz, use a chave `root` na sua configuração de `locales`. Se a localidade raiz também for a localidade padrão do seu conteúdo, remova `defaultLocale` ou defina como `'root'`.
7171

72-
```js
72+
```js {9,11-14}
7373
// astro.config.mjs
7474
import { defineConfig } from 'astro/config';
7575
import starlight from '@astrojs/starlight';
@@ -81,8 +81,8 @@ export default defineConfig({
8181
defaultLocale: 'root', // opcional
8282
locales: {
8383
root: {
84-
label: 'Português',
85-
lang: 'pt', // lang é obrigatório para locais raiz
84+
label: 'Português do Brasil',
85+
lang: 'pt-br', // lang é obrigatório para localidade raiz
8686
},
8787
'zh-cn': {
8888
label: '简体中文',
@@ -94,7 +94,7 @@ export default defineConfig({
9494
});
9595
```
9696

97-
Ao utilizar um local `root`, mantenha as páginas para aquela língua diretamente em `src/content/docs/` ao invés de em uma pasta dedicada para a língua. Por exemplo, aqui está os arquivos para a página inicial em Português e Chinês ao utilizar a configuração acima:
97+
Ao utilizar uma localidade `root`, mantenha as páginas para aquele idioma diretamente em `src/content/docs/` ao invés de em uma pasta dedicada para o idioma. Por exemplo, aqui estão os arquivos para a página inicial em Português do Brasil e Chinês ao utilizar a configuração acima:
9898

9999
<FileTree>
100100

@@ -107,11 +107,11 @@ Ao utilizar um local `root`, mantenha as páginas para aquela língua diretament
107107

108108
</FileTree>
109109

110-
#### Sites monolíngue
110+
#### Sites mono-idioma
111111

112-
Por padrão, Starlight é um site (Inglês) monolíngue. Para criar um site de língua única em outra língua, a defina como o `root` na sua configuração de `locales`:
112+
Por padrão, Starlight é um site mono-idioma (em Inglês). Para criar um site de idioma único em outro idioma, o defina como o `root` na sua configuração de `locales`:
113113

114-
```js
114+
```diff lang="js" {10-13}
115115
// astro.config.mjs
116116
import { defineConfig } from 'astro/config';
117117
import starlight from '@astrojs/starlight';
@@ -122,45 +122,47 @@ export default defineConfig({
122122
title: 'Minha Documentação',
123123
locales: {
124124
root: {
125-
label: '简体中文',
126-
lang: 'zh-CN',
125+
label: 'Português do Brasil',
126+
lang: 'pt-br',
127127
},
128128
},
129129
}),
130130
],
131131
});
132132
```
133133

134-
Isso te permite sobrescrever a língua padrão do Starlight sem habilitar outras funcionalidades de internacionalização para sites multilíngue, como o seletor de língua.
134+
Isso te permite sobrescrever o idioma padrão do Starlight sem habilitar outras funcionalidades de internacionalização para sites multi-idioma, como o seletor de idiomas.
135135

136136
## Conteúdo de Fallback
137137

138-
Starlight espera que você crie páginas equivalentes em todas as suas línguas. Por exemplo, se você tem um arquivo `en/about.md` crie, um `about.md` para cada outra língua que você suporta. Isso permite que Starlight providencie conteúdo de fallback automático para páginas que você ainda não tenha traduzidas.
138+
Starlight espera que você crie páginas equivalentes em todos os idiomas. Por exemplo, se você tem um arquivo `en/about.md` crie, um `about.md` para cada outro idioma que o site suporta. Isso permite ao Starlight oferecer conteúdo de fallback automático para páginas que você ainda não tenha traduzido.
139139

140-
Se uma tradução ainda não está disponível para uma língua, Starlight irá mostrar aos leitores o conteúdo dessa página na língua padrão (definida através de `defaultLocale`). Por exemplo, se você ainda não criou uma versão em Francês da sua página "Sobre" e sua língua padrão é Inglês, visitantes de `/fr/about` irão ver o conteúdo em Inglês de `/en/about` com um aviso de que esta página ainda não foi traduzida. Isso te ajuda a adicionar conteúdo na sua língua padrão e então progressivamente traduzí-la quando seus tradutores tiverem tempo.
140+
Se uma tradução ainda não está disponível para um idioma, Starlight irá mostrar aos leitores o conteúdo dessa página no idioma padrão (definido através de `defaultLocale`). Por exemplo, se você ainda não criou uma versão em Francês da sua página "Sobre" e seu idioma padrão é Português do Brasil, visitantes de `/fr/about` verão o conteúdo em Português do Brasil de `/pt-br/about` com um aviso de que esta página ainda não foi traduzida. Isso te ajuda a adicionar conteúdo no seu idioma padrão e então progressivamente traduzí-lo quando seus tradutores tiverem tempo.
141141

142142
## Traduza a UI do Starlight
143143

144-
Em adição a hospedar arquivos de conteúdo traduzido, Starlight te permite traduzir as strings padrões da UI (e.x. o cabeçalho "Nesta página" no índice) para que seus leitores possam experienciar seu site inteiramente na língua selecionada.
144+
import LanguagesList from '../../../../components/languages-list.astro';
145145

146-
Strings da UI são providenciadas para Inglês, Tcheco, Francês, Alemão, Italiano, Japonês, Português, Holandês, Dinamarquês, Espanhol, Turco, Árabe, Norueguês, Persa, Hebraico, Chinês Simplificado, Coreano, Indonésio, Russo, Sueco, Ucraniano e Vietnamita por padrão, e nós aceitamos [contribuições para adicionar mais línguas padrões](https://github.com/withastro/starlight/blob/main/CONTRIBUTING.md).
146+
Além de arquivos de conteúdo traduzido, o Starlight te permite traduzir as strings padrão da UI (e.x. o cabeçalho "Nesta página" no índice) para que seus leitores possam utilizar seu site inteiramente no idioma selecionado.
147147

148-
Você pode fornecer traduções para línguas adicionais que você suporta — ou sobrescrever nossos rótulos padrões — através da coleção de dados `i18n`.
148+
Strings da UI estão disponíveis para <LanguagesList /> por padrão, e são bem vindas [contribuições para adicionar mais idiomas padrão](https://github.com/withastro/starlight/blob/main/CONTRIBUTING.md).
149149

150-
1. Configure a coleção de dados `i18n` em `src/content/config.ts` se já não estiver configurado:
150+
Você pode fornecer traduções para idiomas adicionais que você suporta — ou sobrescrever nossos rótulos padrões — através da coleção de dados `i18n`.
151151

152-
```js
152+
1. Configure a coleção de dados `i18n` em `src/content/config.ts` se já não tiver configurado:
153+
154+
```diff lang="js" ins=/, (i18nSchema)/
153155
// src/content/config.ts
154156
import { defineCollection } from 'astro:content';
155157
import { docsSchema, i18nSchema } from '@astrojs/starlight/schema';
156158

157159
export const collections = {
158160
docs: defineCollection({ schema: docsSchema() }),
159-
i18n: defineCollection({ type: 'data', schema: i18nSchema() }),
161+
+ i18n: defineCollection({ type: 'data', schema: i18nSchema() }),
160162
};
161163
```
162164

163-
2. Crie um arquivo JSON em `src/content/i18n/` para cada local adicional que você quer providenciar tradução de strings da UI.
165+
2. Crie um arquivo JSON em `src/content/i18n/` para cada localidade adicional que você quer oferecer tradução de strings da UI.
164166
Por exemplo, isso adicionaria arquivos de tradução para Árabe e Chinês Simplificado:
165167

166168
<FileTree>
@@ -173,7 +175,7 @@ Você pode fornecer traduções para línguas adicionais que você suporta — o
173175

174176
</FileTree>
175177

176-
3. Adicione traduções para as chaves que você quer traduzir para os arquivos JSON. Traduza apenas os valores, deixando as chaves em Inglês (e.x. `"search.label": "Buscar"`).
178+
3. Adicione traduções para os rótulos que você quer traduzir nos arquivos JSON. Traduza apenas os valores, deixando as chaves em Inglês (e.x. `"search.label": "Buscar"`).
177179

178180
Essas são as strings padrões existentes em Inglês que vem com o Starlight:
179181

@@ -202,8 +204,19 @@ Você pode fornecer traduções para línguas adicionais que você suporta — o
202204
}
203205
```
204206

207+
O blocos de código do Starlight usam a biblioteca [Expressive Code](https://github.com/expressive-code/expressive-code).
208+
Você pode traduzir as strings de UI do Expressive Code no mesmo arquivo JSON usando as chaves `expressiveCode`:
209+
210+
```json
211+
{
212+
"expressiveCode.copyButtonCopied": "Copiado!",
213+
"expressiveCode.copyButtonTooltip": "Copiar",
214+
"expressiveCode.terminalWindowFallbackTitle": "Janela do Terminal"
215+
}
216+
```
217+
205218
O modal de pesquisa do Starlight é fornecido pela biblioteca [Pagefind](https://pagefind.app/).
206-
Você pode definir traduções para a UI do Pagefind no mesmo arquivo JSON utilizando chaves com `pagefind`:
219+
Você pode traduzir as strings de UI do Pagefind no mesmo arquivo JSON utilizando chaves com `pagefind`:
207220

208221
```json
209222
{
@@ -219,3 +232,28 @@ Você pode fornecer traduções para línguas adicionais que você suporta — o
219232
"pagefind.searching": "Searching for [SEARCH_TERM]..."
220233
}
221234
```
235+
236+
### Esquema de tradução extendida
237+
238+
Você pode adicionar chaves personalizadas no dicionário de tradução do seu site configurando a propriedade `extend` nas opções do `i18nSchema()`.
239+
No exemplo a seguir, a nova chave `custom.label`, opcional, é adicionada às chaves padrão:
240+
241+
```diff lang="js"
242+
// src/content/config.ts
243+
import { defineCollection, z } from 'astro:content';
244+
import { docsSchema, i18nSchema } from '@astrojs/starlight/schema';
245+
246+
export const collections = {
247+
docs: defineCollection({ schema: docsSchema() }),
248+
i18n: defineCollection({
249+
type: 'data',
250+
schema: i18nSchema({
251+
+ extend: z.object({
252+
+ 'custom.label': z.string().optional(),
253+
+ }),
254+
}),
255+
}),
256+
};
257+
```
258+
259+
Saiba mais sobre o esquemas de coleções de conteúdos em [“Definindo um esquema de coleção”](https://docs.astro.build/pt-br/guides/content-collections/#definindo-um-esquema-de-cole%C3%A7%C3%A3o) na documentação do Astro.

0 commit comments

Comments
 (0)