You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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).
9
9
10
-
## Configure i18n
10
+
## Configurar i18n
11
11
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:
13
13
14
-
```js
14
+
```js {9-26}
15
15
// astro.config.mjs
16
16
import { defineConfig } from'astro/config';
17
17
importstarlightfrom'@astrojs/starlight';
@@ -20,12 +20,12 @@ Starlight providencia suporte integrado para sites multilíngue, incluindo rotea
20
20
integrations: [
21
21
starlight({
22
22
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',
25
25
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',
29
29
},
30
30
// Documentação em Chinês Simplificado em `src/content/docs/zh-cn/`
31
31
'zh-cn': {
@@ -43,9 +43,9 @@ Starlight providencia suporte integrado para sites multilíngue, incluindo rotea
43
43
});
44
44
```
45
45
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.
47
47
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/`.
49
49
Por exemplo, para a configuração mostrada acima, crie as seguintes pastas:
50
50
51
51
<FileTree>
@@ -54,22 +54,22 @@ Starlight providencia suporte integrado para sites multilíngue, incluindo rotea
54
54
- content/
55
55
- docs/
56
56
- ar/
57
-
- pt/
57
+
- pt-br/
58
58
- zh-cn/
59
59
60
60
</FileTree>
61
61
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.
63
63
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.
65
65
66
-
### Use um local raiz
66
+
### Use uma localidade raiz
67
67
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`.
69
69
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'`.
71
71
72
-
```js
72
+
```js {9,11-14}
73
73
// astro.config.mjs
74
74
import { defineConfig } from'astro/config';
75
75
importstarlightfrom'@astrojs/starlight';
@@ -81,8 +81,8 @@ export default defineConfig({
81
81
defaultLocale:'root', // opcional
82
82
locales: {
83
83
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
86
86
},
87
87
'zh-cn': {
88
88
label:'简体中文',
@@ -94,7 +94,7 @@ export default defineConfig({
94
94
});
95
95
```
96
96
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:
98
98
99
99
<FileTree>
100
100
@@ -107,11 +107,11 @@ Ao utilizar um local `root`, mantenha as páginas para aquela língua diretament
107
107
108
108
</FileTree>
109
109
110
-
#### Sites monolíngue
110
+
#### Sites mono-idioma
111
111
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`:
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.
135
135
136
136
## Conteúdo de Fallback
137
137
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.
139
139
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.
141
141
142
142
## Traduza a UI do Starlight
143
143
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.
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.
147
147
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).
149
149
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`.
151
151
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)/
153
155
// src/content/config.ts
154
156
import { defineCollection } from 'astro:content';
155
157
import { docsSchema, i18nSchema } from '@astrojs/starlight/schema';
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.
164
166
Por exemplo, isso adicionaria arquivos de tradução para Árabe e Chinês Simplificado:
165
167
166
168
<FileTree>
@@ -173,7 +175,7 @@ Você pode fornecer traduções para línguas adicionais que você suporta — o
173
175
174
176
</FileTree>
175
177
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"`).
177
179
178
180
Essas são as strings padrões existentes em Inglês que vem com o Starlight:
179
181
@@ -202,8 +204,19 @@ Você pode fornecer traduções para línguas adicionais que você suporta — o
202
204
}
203
205
```
204
206
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
+
205
218
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`:
207
220
208
221
```json
209
222
{
@@ -219,3 +232,28 @@ Você pode fornecer traduções para línguas adicionais que você suporta — o
219
232
"pagefind.searching": "Searching for [SEARCH_TERM]..."
220
233
}
221
234
```
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