Skip to content

Commit 252e547

Browse files
authored
Fix localized API docs routing (#754)
Localized API docs are canonicalized and preferred content locale is preserved.
1 parent 8a6bea7 commit 252e547

34 files changed

Lines changed: 389 additions & 337 deletions

.github/skills/doc-writer/SKILL.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ src/frontend/src/content/docs/
4949
└── whats-new/ # Release notes
5050
```
5151

52+
### Localization and Sidebar Labels
53+
54+
When adding, moving, or renaming localized docs pages, keep the sidebar topic config in sync under `src/frontend/config/sidebar/*.topics.ts`. Topic labels and item `translations` should include entries for the supported Starlight locale codes used by the site, such as `pt-BR` and `zh-CN`; do not add obsolete or generic locale keys like `pt` or `pt-PT` unless they are explicitly present in `src/frontend/config/locales.ts`.
55+
56+
Route path segments can be lowercase (`pt-br`, `zh-cn`), but sidebar translation keys follow the locale codes consumed by Starlight. API reference docs under `src/content/docs/reference/api/` are intentionally not localized and should stay excluded from localization/sidebar translation work.
57+
5258
## Astro and MDX Conventions
5359

5460
When calling `pnpm dev` or `aspire run` to test documentation in the context of CI/CD, or from an LLM, call `astro telemetry disable` to disable telemetry.
@@ -819,7 +825,7 @@ curl -sSL https://aspire.dev/install.sh | bash
819825
irm https://aspire.dev/install.ps1 | iex
820826
```
821827

822-
For complete installation instructions, see [Install Aspire CLI](/get-started/install-cli/).
828+
For complete installation instructions, see [Install Aspire CLI](https://aspire.dev/get-started/install-cli/).
823829

824830
#### Nightly/Dev Builds
825831

src/frontend/config/sidebar/community.topics.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export const communityTopics: StarlightSidebarTopicsUserConfig = {
77
fr: 'Communauté',
88
de: 'Gemeinschaft',
99
it: 'Comunità',
10-
pt: 'Comunidade',
1110
ru: 'Сообщество',
1211
'zh-CN': '社区',
1312
da: 'Fællesskab',
@@ -35,7 +34,6 @@ export const communityTopics: StarlightSidebarTopicsUserConfig = {
3534
it: 'Panoramica',
3635
ja: '概要',
3736
ko: '개요',
38-
pt: 'Visão geral',
3937
'pt-BR': 'Visão geral',
4038
ru: 'Обзор',
4139
tr: 'Genel Bakış',
@@ -57,7 +55,6 @@ export const communityTopics: StarlightSidebarTopicsUserConfig = {
5755
it: 'Collaboratori',
5856
ja: 'コントリビューター',
5957
ko: '기여자',
60-
pt: 'Contribuidores',
6158
'pt-BR': 'Contribuidores',
6259
ru: 'Участники',
6360
tr: 'Katkıda Bulunanlar',
@@ -78,7 +75,6 @@ export const communityTopics: StarlightSidebarTopicsUserConfig = {
7875
it: 'Panoramica dei collaboratori',
7976
ja: 'コントリビューターの概要',
8077
ko: '기여자 개요',
81-
pt: 'Visão geral do contribuinte',
8278
'pt-BR': 'Visão geral do contribuinte',
8379
ru: 'Обзор участников',
8480
tr: 'Katkıda Bulunanlar Genel Bakışı',
@@ -100,7 +96,6 @@ export const communityTopics: StarlightSidebarTopicsUserConfig = {
10096
it: 'Guida per i collaboratori',
10197
ja: 'コントリビューターガイド',
10298
ko: '기여자 가이드',
103-
pt: 'Guia do contribuinte',
10499
'pt-BR': 'Guia do contribuinte',
105100
ru: 'Руководство для участников',
106101
tr: 'Katkıda Bulunanlar Kılavuzu',
@@ -122,7 +117,6 @@ export const communityTopics: StarlightSidebarTopicsUserConfig = {
122117
it: 'Guida alla traduzione',
123118
ja: '翻訳ガイド',
124119
ko: '번역 가이드',
125-
pt: 'Guia de tradução',
126120
'pt-BR': 'Guia de tradução',
127121
ru: 'Руководство по переводу',
128122
tr: 'Çeviri kılavuzu',
@@ -146,7 +140,6 @@ export const communityTopics: StarlightSidebarTopicsUserConfig = {
146140
it: 'Video',
147141
ja: '動画',
148142
ko: '비디오',
149-
pt: 'Vídeos',
150143
'pt-BR': 'Vídeos',
151144
ru: 'Видео',
152145
tr: 'Videolar',
@@ -176,7 +169,6 @@ export const communityTopics: StarlightSidebarTopicsUserConfig = {
176169
it: 'Ringraziamenti',
177170
ja: '謝辞',
178171
ko: '감사의 말',
179-
pt: 'Agradecimentos',
180172
'pt-BR': 'Agradecimentos',
181173
ru: 'Благодарности',
182174
tr: 'Teşekkürler',

src/frontend/config/sidebar/dashboard.topics.ts

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
77
fr: 'Tableau de bord',
88
de: 'Dashboard',
99
it: 'Dashboard',
10-
pt: 'Painel',
1110
ru: 'Панель управления',
1211
'zh-CN': '仪表板',
1312
da: 'Dashboard',
@@ -35,7 +34,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
3534
it: 'Dashboard di Aspire',
3635
ja: 'Aspireダッシュボード',
3736
ko: 'Aspire 대시보드',
38-
pt: 'Painel Aspire',
3937
'pt-BR': 'Painel Aspire',
4038
ru: 'Панель управления Aspire',
4139
tr: 'Aspire Gösterge Paneli',
@@ -56,7 +54,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
5654
it: 'Panoramica',
5755
ja: '概要',
5856
ko: '개요',
59-
pt: 'Visão geral',
6057
'pt-BR': 'Visão geral',
6158
ru: 'Обзор',
6259
tr: 'Genel bakış',
@@ -78,7 +75,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
7875
it: "Cos'è il dashboard di Aspire?",
7976
ja: 'Aspireダッシュボードとは何ですか?',
8077
ko: 'Aspire 대시보드란 무엇입니까?',
81-
pt: 'O que é o painel Aspire?',
8278
'pt-BR': 'O que é o painel Aspire?',
8379
ru: 'Что такое панель Aspire?',
8480
tr: 'Aspire gösterge paneli nedir?',
@@ -100,7 +96,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
10096
it: 'Esplora funzionalità',
10197
ja: '機能を探る',
10298
ko: '기능 탐색',
103-
pt: 'Explorar recursos',
10499
'pt-BR': 'Explorar recursos',
105100
ru: 'Изучение функций',
106101
tr: 'Özellikleri keşfet',
@@ -124,7 +119,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
124119
it: "Funzionalità dell'IA",
125120
ja: 'AI機能',
126121
ko: 'AI 기능',
127-
pt: 'Recursos de IA',
128122
'pt-BR': 'Recursos de IA',
129123
ru: 'Функции ИИ',
130124
tr: 'Yapay zeka özellikleri',
@@ -149,7 +143,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
149143
it: 'Server Aspire MCP',
150144
ja: 'Aspire MCPサーバー',
151145
ko: 'Aspire MCP 서버',
152-
pt: 'Servidor Aspire MCP',
153146
'pt-BR': 'Servidor Aspire MCP',
154147
ru: 'Сервер Aspire MCP',
155148
tr: 'Aspire MCP sunucusu',
@@ -173,7 +166,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
173166
it: 'Modalità autonoma',
174167
ja: 'スタンドアロンモード',
175168
ko: '독립 실행 모드',
176-
pt: 'Modo autônomo',
177169
'pt-BR': 'Modo autônomo',
178170
ru: 'Автономный режим',
179171
tr: 'Bağımsız mod',
@@ -205,7 +197,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
205197
it: 'Configurazione',
206198
ja: '構成',
207199
ko: '구성',
208-
pt: 'Configuração',
209200
'pt-BR': 'Configuração',
210201
ru: 'Конфигурация',
211202
tr: 'Yapılandırma',
@@ -227,7 +218,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
227218
it: 'Considerazioni sulla sicurezza',
228219
ja: 'セキュリティに関する考慮事項',
229220
ko: '보안 고려 사항',
230-
pt: 'Considerações de segurança',
231221
'pt-BR': 'Considerações de segurança',
232222
ru: 'Соображения безопасности',
233223
tr: 'Güvenlik değerlendirmeleri',
@@ -249,7 +239,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
249239
it: 'Telemetria',
250240
ja: 'テレメトリー',
251241
ko: '원격 측정',
252-
pt: 'Telemetria',
253242
'pt-BR': 'Telemetria',
254243
ru: 'Телеметрия',
255244
tr: 'Telemetri',
@@ -270,7 +259,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
270259
it: 'Abilita telemetria del browser',
271260
ja: 'ブラウザのテレメトリを有効にする',
272261
ko: '브라우저 원격 분석 활성화',
273-
pt: 'Ativar telemetria do navegador',
274262
'pt-BR': 'Ativar telemetria do navegador',
275263
ru: 'Включить телеметрию браузера',
276264
tr: 'Tarayıcı telemetrisi etkinleştirme',
@@ -292,7 +280,6 @@ export const dashboardTopics: StarlightSidebarTopicsUserConfig = {
292280
it: 'Telemetria Microsoft',
293281
ja: 'Microsoft テレメトリ',
294282
ko: 'Microsoft 원격 분석',
295-
pt: 'Telemetria da Microsoft',
296283
'pt-BR': 'Telemetria da Microsoft',
297284
ru: 'Телеметрия Microsoft',
298285
tr: 'Microsoft telemetrisi',

src/frontend/config/sidebar/docs.topics.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
5555
it: 'Panoramica',
5656
ja: '概要',
5757
ko: '개요',
58-
pt: 'Visão geral',
5958
'pt-BR': 'Visão geral',
6059
ru: 'Обзор',
6160
tr: 'Genel Bakış',
@@ -1052,7 +1051,6 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
10521051
it: 'Test',
10531052
ja: 'テスト',
10541053
ko: '테스트',
1055-
pt: 'Testes',
10561054
'pt-BR': 'Testes',
10571055
ru: 'Тестирование',
10581056
tr: 'Test',
@@ -1073,7 +1071,6 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
10731071
it: 'Panoramica',
10741072
ja: '概要',
10751073
ko: '개요',
1076-
pt: 'Visão geral',
10771074
'pt-BR': 'Visão geral',
10781075
ru: 'Обзор',
10791076
tr: 'Genel Bakış',
@@ -1095,7 +1092,6 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
10951092
it: 'Scrivi il tuo primo test',
10961093
ja: '最初のテストを書く',
10971094
ko: '첫 번째 테스트 작성',
1098-
pt: 'Escreva seu primeiro teste',
10991095
'pt-BR': 'Escreva seu primeiro teste',
11001096
ru: 'Напишите свой первый тест',
11011097
tr: 'İlk testinizi yazın',
@@ -1117,7 +1113,6 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
11171113
it: "Gestisci l'AppHost nei test",
11181114
ja: 'テストで AppHost を管理する',
11191115
ko: '테스트에서 AppHost 관리',
1120-
pt: 'Gerenciar o AppHost em testes',
11211116
'pt-BR': 'Gerenciar o AppHost em testes',
11221117
ru: 'Управление AppHost в тестах',
11231118
tr: "Testlerde AppHost'u yönetin",
@@ -1139,7 +1134,6 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
11391134
it: 'Accedi alle risorse nei test',
11401135
ja: 'テストでリソースにアクセスする',
11411136
ko: '테스트에서 리소스 액세스',
1142-
pt: 'Acessar recursos em testes',
11431137
'pt-BR': 'Acessar recursos em testes',
11441138
ru: 'Доступ к ресурсам в тестах',
11451139
tr: 'Testlerde kaynaklara erişin',
@@ -1161,9 +1155,7 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
11611155
it: 'Scenario di test avanzati',
11621156
ja: '高度なテストシナリオ',
11631157
ko: '고급 테스트 시나리오',
1164-
pt: 'Cenários de teste avançados',
11651158
'pt-BR': 'Cenários de teste avançados',
1166-
'pt-PT': 'Cenários de teste avançados',
11671159
ru: 'Расширенные сценарии тестирования',
11681160
tr: 'Gelişmiş test senaryoları',
11691161
uk: 'Розширені сценарії тестування',
@@ -1184,9 +1176,7 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
11841176
it: 'Test nelle pipeline CI/CD',
11851177
ja: 'CI/CD パイプラインでのテスト',
11861178
ko: 'CI/CD 파이프라인에서의 테스트',
1187-
pt: 'Testes em pipelines de CI/CD',
11881179
'pt-BR': 'Testes em pipelines de CI/CD',
1189-
'pt-PT': 'Testes em pipelines de CI/CD',
11901180
ru: 'Тестирование в конвейерах CI/CD',
11911181
tr: 'CI/CD ardışık düzenlerinde test',
11921182
uk: 'Тестування в конвеєрах CI/CD',
@@ -1230,7 +1220,6 @@ export const docsTopics: StarlightSidebarTopicsUserConfig = {
12301220
it: 'Panoramica',
12311221
ja: '概要',
12321222
ko: '개요',
1233-
pt: 'Visão geral',
12341223
'pt-BR': 'Visão geral',
12351224
ru: 'Обзор',
12361225
tr: 'Genel Bakış',

0 commit comments

Comments
 (0)