Skip to content

Commit 4df79b6

Browse files
committed
feat: update origin to Angular v22.1
Sync the Spanish translation with Angular v22.1 and fix the accumulated drift between adev-es and the current origin structure. Content sync - Translate/update all guides affected by the v22.1 refactor: signals, components, templates, directives, DI, routing, forms (including the new Signal Forms guides), HTTP client, SSR, testing, Angular Aria, i18n, animations - Fully rewrite guide/testing/components-basics.md and components-scenarios.md to match the current inline-code-based English content (previously referenced a deleted examples/testing app) - Remove content that no longer exists in English (pipes guides, route-animations, prerendering, router-tutorial, devtools, migrations) - Translate events/v22.md and update the aria/*.md Testing and API reference sections to the current format - Fix stale example file references (attribute-directives, router-reference, routing-with-urlmatcher, i18n typos) Link and anchor consistency - Standardize internal links to explicit English heading IDs ({#id}) across guide/ so Spanish translations no longer break anchors, and stabilize the resulting duplicate/misplaced IDs - Fix broken absolute angular.dev links, stale/renamed page targets, and Spanish-slugged anchors found via the real build pipeline (npm run build), not just static link auditing - Verify 1:1 heading structure and .en.md byte-parity for all 341 translated pages, and folder/file parity between adev-es and origin Navigation architecture - Rebuild adev-es/src/app/routing/navigation-entries/index.ts to match origin's new navigation module (previously stuck on the old monolithic sub-navigation-data.ts, missing ~20 new pages and several top-level sections) - Simplify sub-navigation-data.ts back to a thin re-export, matching origin - Translate remaining navigation.component.html/footer.component.html strings and localize the home page demo components (control-flow, deferrable-views, signals demo, hydration demo, animation) Tooling - Fix tools/update-origin.mjs: sync navigation-entries, home page components, and links.ts going forward (previously unmatched glob patterns silently skipped them)
1 parent 01c0889 commit 4df79b6

678 files changed

Lines changed: 30289 additions & 19170 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

adev-es/src/app/core/layout/footer/footer.component.en.html

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ <h2>Community</h2>
5858
<li>
5959
<a
6060
href="https://github.com/angular/angular/issues"
61-
title="Post issues and suggestions on github."
61+
title="Post issues and suggestions on GitHub."
6262
>
6363
Report Issues
6464
</a>
@@ -93,28 +93,41 @@ <h2>Resources</h2>
9393
</ul>
9494
</div>
9595
<div>
96-
<h2>Languages</h2>
96+
<h2>Community translations</h2>
9797
<ul>
98+
<!-- Sorted using Unicode Collation Algorithm (UCA) -->
9899
<li>
99-
<a href="https://angular.cn/" title="简体中文版">简体中文版</a>
100+
<a href="https://angular.az/" title="Azərbaycanca">Azərbaycanca</a>
100101
</li>
101102
<li>
102-
<a href="https://dev.angular.tw/" title="正體中文版">正體中文版</a>
103+
<a href="https://docs.angular.lat/" title="Español">Español</a>
103104
</li>
104105
<li>
105-
<a href="https://angular.jp/" title="日本語版">日本語版</a>
106+
<a href="https://angular-docs.tr/" title="Türkçe">Türkçe</a>
107+
</li>
108+
<li>
109+
<a href="https://angular-docs.ru/" title="Русский">Русский</a>
106110
</li>
107111
<li>
108112
<a href="https://angular.kr/" title="한국어">한국어</a>
109113
</li>
114+
<li>
115+
<a href="https://angular.jp/" title="日本語版">日本語版</a>
116+
</li>
117+
<li>
118+
<a href="https://angular.cn/" title="简体中文版">简体中文版</a>
119+
</li>
120+
<li>
121+
<a href="https://dev.angular.tw/" title="正體中文版">正體中文版</a>
122+
</li>
110123
</ul>
111124
</div>
112125
</div>
113126
<p class="docs-license">
114-
Super-powered by Google ©2010-2025. Code licensed under an
127+
Super-powered by Google ©2010-2026. Code licensed under an
115128
<a routerLink="/license" title="License text">MIT-style License</a>
116129
. Documentation licensed under
117130
<a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>
118-
.
131+
. Built by Angular at v{{ angularVersion }}.
119132
</p>
120133
</div>

adev-es/src/app/core/layout/footer/footer.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ <h2>Comunidad</h2>
3232
href="https://angular.lat/coc"
3333
title="Tratarnos unos a otros con respeto."
3434
>
35-
Codigo de coducta
35+
Código de conducta
3636
</a>
3737
</li>
3838
<li>
3939
<a
4040
href="https://github.com/angular-hispano/angular-docs-es/issues"
41-
title="Publique problemas y sugerencias en github."
41+
title="Publique problemas y sugerencias en GitHub."
4242
>
4343
Reportar problemas
4444
</a>

adev-es/src/app/core/layout/navigation/navigation.component.en.html

Lines changed: 43 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[attr.id]="PRIMARY_NAV_ID"
44
class="wrapper"
55
(docsClickOutside)="closeMobileNav()"
6-
[docsClickOutsideIgnore]="[SECONDARY_NAV_ID]"
6+
[docsClickOutsideIgnore]="[SECONDARY_NAV_ID, SEARCH_DIALOG_ID]"
77
>
88
<!-- Mobile nav bar -->
99
<div class="adev-mobile-nav-bar">
@@ -170,18 +170,13 @@
170170
</button>
171171

172172
<ng-template #docsVersionMiniMenu>
173-
<ul class="adev-mini-menu adev-version-picker" cdkMenu>
173+
<ul class="adev-mini-menu adev-mini-menu--version adev-version-picker" cdkMenu>
174174
@for (item of versions(); track item) {
175-
<li>
176-
<a
177-
type="button"
178-
cdkMenuItem
179-
[href]="item.url"
180-
[aria-label]="item.displayName"
181-
>
182-
<span>{{ item.displayName }}</span>
183-
</a>
184-
</li>
175+
<li>
176+
<a type="button" cdkMenuItem [href]="item.url" [aria-label]="item.displayName">
177+
<span>{{ item.displayName }}</span>
178+
</a>
179+
</li>
185180
}
186181
</ul>
187182
</ng-template>
@@ -195,6 +190,7 @@
195190
type="button"
196191
(click)="toggleSearchDialog($event)"
197192
title="Search docs"
193+
[aria-label]="'Open search dialog with ' + searchTitle"
198194
>
199195
<svg
200196
aria-hidden="true"
@@ -207,10 +203,7 @@
207203
d="M14.583 15.48 9.104 10a4.591 4.591 0 0 1-1.458.844 5.156 5.156 0 0 1-1.771.302c-1.5 0-2.77-.52-3.813-1.563C1.022 8.542.5 7.285.5 5.813c0-1.473.52-2.73 1.563-3.771C3.103 1 4.367.479 5.854.479 7.326.48 8.58 1 9.614 2.042c1.035 1.041 1.553 2.298 1.553 3.77 0 .598-.098 1.174-.292 1.73A5.287 5.287 0 0 1 10 9.104l5.5 5.459-.917.916ZM5.854 9.895c1.125 0 2.083-.4 2.875-1.198a3.95 3.95 0 0 0 1.188-2.885 3.95 3.95 0 0 0-1.188-2.886C7.938 2.13 6.98 1.73 5.854 1.73c-1.139 0-2.107.4-2.906 1.198-.799.799-1.198 1.76-1.198 2.886 0 1.125.4 2.086 1.198 2.885.799.799 1.767 1.198 2.906 1.198Z"
208204
/>
209205
</svg>
210-
<span
211-
class="adev-nav-item__label adev-search-desktop"
212-
[aria-label]="'Open search dialog with ' + searchTitle"
213-
>
206+
<span class="adev-nav-item__label adev-search-desktop">
214207
<kbd>{{ searchLabel }}</kbd>
215208
<kbd>K</kbd>
216209
</span>
@@ -303,16 +296,17 @@
303296
<button
304297
type="button"
305298
[cdkMenuTriggerFor]="socialMiniMenu"
306-
[cdkMenuPosition]="miniMenuPositions"
299+
[cdkMenuPosition]="bottomMiniMenuPositions"
307300
aria-label="Open social media links"
308301
(cdkMenuClosed)="closeMenu()"
309302
(cdkMenuOpened)="openMenu('social')"
303+
aria-controls="social-mini-menu"
310304
>
311305
<docs-icon role="presentation">more_horiz</docs-icon>
312306
</button>
313307

314308
<ng-template #socialMiniMenu>
315-
<ul class="adev-mini-menu" cdkMenu>
309+
<ul class="adev-mini-menu adev-mini-menu--social" cdkMenu id="social-mini-menu">
316310
<li>
317311
<a
318312
[href]="ngLinks.YOUTUBE"
@@ -324,7 +318,7 @@
324318
<!-- Youtube Icon -->
325319
<svg
326320
width="20"
327-
height="15"
321+
height="20"
328322
viewBox="0 0 20 15"
329323
fill="none"
330324
xmlns="http://www.w3.org/2000/svg"
@@ -345,8 +339,8 @@
345339
>
346340
<!-- X Icon -->
347341
<svg
348-
width="17"
349-
height="16"
342+
width="20"
343+
height="20"
350344
viewBox="0 0 17 16"
351345
fill="none"
352346
xmlns="http://www.w3.org/2000/svg"
@@ -367,8 +361,8 @@
367361
>
368362
<!-- Bluesky Icon -->
369363
<svg
370-
width="16"
371-
height="16"
364+
width="20"
365+
height="20"
372366
viewBox="0 0 16 16"
373367
fill="none"
374368
xmlns="http://www.w3.org/2000/svg"
@@ -399,11 +393,11 @@
399393
<a
400394
[href]="ngLinks.GITHUB"
401395
cdkMenuItem
402-
title="Angular Github"
396+
title="Angular GitHub"
403397
target="_blank"
404398
rel="noopener"
405399
>
406-
<!-- Github Icon -->
400+
<!-- GitHub Icon -->
407401
<svg
408402
width="20"
409403
height="20"
@@ -443,6 +437,28 @@
443437
</svg>
444438
</a>
445439
</li>
440+
<li>
441+
<a
442+
[href]="ngLinks.STACKOVERFLOW"
443+
cdkMenuItem
444+
title="Angular Stack Overflow"
445+
target="_blank"
446+
rel="noopener"
447+
>
448+
<!-- Stack Overflow Icon -->
449+
<svg
450+
width="20"
451+
height="20"
452+
viewBox="0 0 26 31"
453+
fill="none"
454+
xmlns="http://www.w3.org/2000/svg"
455+
>
456+
<path
457+
d="m22.18 16.32.05.02-.02.01za19 19 0 0 0-2.45 4.14l-.03.07q-.94 2.19-1.29 4.6v.03a18 18 0 0 0-.05 4.85H.01v-4.88h15.94l.1-.6L.69 20.48l1.28-4.7 15.55 4.1.22-.46-13.96-7.96 2.47-4.22 14.16 8.07.34-.4L9.15 3.47 12.65 0l11.78 11.64 1.25 1.23q-1.97 1.5-3.5 3.44"
458+
/>
459+
</svg>
460+
</a>
461+
</li>
446462
</ul>
447463
</ng-template>
448464
</div>
@@ -451,7 +467,7 @@
451467
<button
452468
type="button"
453469
[cdkMenuTriggerFor]="themeMiniMenu"
454-
[cdkMenuPosition]="miniMenuPositions"
470+
[cdkMenuPosition]="bottomMiniMenuPositions"
455471
[aria-label]="'Change theme. Current theme: ' + theme()"
456472
aria-controls="theme-mini-menu"
457473
[aria-expanded]="openedMenu() === 'theme-picker'"
@@ -476,7 +492,7 @@
476492

477493
<ng-template #themeMiniMenu>
478494
<ul
479-
class="adev-mini-menu"
495+
class="adev-mini-menu adev-mini-menu--theme"
480496
cdkMenu
481497
id="theme-mini-menu"
482498
role="menu"

adev-es/src/app/core/layout/navigation/navigation.component.html

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
[attr.id]="PRIMARY_NAV_ID"
44
class="wrapper"
55
(docsClickOutside)="closeMobileNav()"
6-
[docsClickOutsideIgnore]="[SECONDARY_NAV_ID]"
6+
[docsClickOutsideIgnore]="[SECONDARY_NAV_ID, SEARCH_DIALOG_ID]"
77
>
88
<!-- Mobile nav bar -->
99
<div class="adev-mobile-nav-bar">
1010
<!-- Logo icon -->
1111
<button
1212
type="button"
1313
class="adev-mobile-nav-button"
14-
aria-label="Toggle mobile navigation"
14+
aria-label="Alternar navegación móvil"
1515
(click)="openMobileNav($event)"
1616
>
1717
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 223 236" width="32">
@@ -70,7 +70,7 @@
7070
type="button"
7171
class="adev-close-nav"
7272
(click)="closeMobileNav()"
73-
aria-label="Close navigation"
73+
aria-label="Cerrar navegación"
7474
>
7575
<docs-icon role="presentation">close</docs-icon>
7676
</button>
@@ -81,7 +81,7 @@
8181
class="adev-nav-item adev-nav-item--logo"
8282
[class.adev-nav-item--active]="activeRouteItem() === PAGE_PREFIX.HOME"
8383
>
84-
<a aria-label="Angular homepage" routerLink="/">
84+
<a aria-label="Página de inicio de Angular" routerLink="/">
8585
<!-- Logo Symbol -->
8686
@if (!isUwu) {
8787
<svg
@@ -151,7 +151,8 @@
151151
class="adev-nav-button"
152152
type="button"
153153
(click)="toggleSearchDialog($event)"
154-
title="Search docs"
154+
title="Buscar documentación"
155+
[aria-label]="'Abrir diálogo de búsqueda con ' + searchTitle"
155156
>
156157
<svg
157158
aria-hidden="true"
@@ -164,10 +165,7 @@
164165
d="M14.583 15.48 9.104 10a4.591 4.591 0 0 1-1.458.844 5.156 5.156 0 0 1-1.771.302c-1.5 0-2.77-.52-3.813-1.563C1.022 8.542.5 7.285.5 5.813c0-1.473.52-2.73 1.563-3.771C3.103 1 4.367.479 5.854.479 7.326.48 8.58 1 9.614 2.042c1.035 1.041 1.553 2.298 1.553 3.77 0 .598-.098 1.174-.292 1.73A5.287 5.287 0 0 1 10 9.104l5.5 5.459-.917.916ZM5.854 9.895c1.125 0 2.083-.4 2.875-1.198a3.95 3.95 0 0 0 1.188-2.885 3.95 3.95 0 0 0-1.188-2.886C7.938 2.13 6.98 1.73 5.854 1.73c-1.139 0-2.107.4-2.906 1.198-.799.799-1.198 1.76-1.198 2.886 0 1.125.4 2.086 1.198 2.885.799.799 1.767 1.198 2.906 1.198Z"
165166
/>
166167
</svg>
167-
<span
168-
class="adev-nav-item__label adev-search-desktop"
169-
[aria-label]="'Open search dialog with ' + searchTitle"
170-
>
168+
<span class="adev-nav-item__label adev-search-desktop">
171169
<kbd>{{ searchLabel }}</kbd>
172170
<kbd>K</kbd>
173171
</span>
@@ -245,8 +243,8 @@
245243
<button
246244
type="button"
247245
[cdkMenuTriggerFor]="socialMiniMenu"
248-
[cdkMenuPosition]="miniMenuPositions"
249-
aria-label="Open social media links"
246+
[cdkMenuPosition]="bottomMiniMenuPositions"
247+
aria-label="Abrir enlaces de redes sociales"
250248
(cdkMenuClosed)="closeMenu()"
251249
(cdkMenuOpened)="openMenu('social')"
252250
>
@@ -259,11 +257,11 @@
259257
<a
260258
[href]="ngLinks.GITHUB"
261259
cdkMenuItem
262-
title="Angular Github"
260+
title="GitHub de Angular"
263261
target="_blank"
264262
rel="noopener"
265263
>
266-
<!-- Github Icon -->
264+
<!-- GitHub Icon -->
267265
<svg
268266
width="20"
269267
height="20"
@@ -283,7 +281,7 @@
283281
<a
284282
[href]="ngLinks.DISCORD"
285283
cdkMenuItem
286-
title="Angular Discord"
284+
title="Discord de Angular"
287285
target="_blank"
288286
rel="noopener"
289287
>
@@ -311,8 +309,8 @@
311309
<button
312310
type="button"
313311
[cdkMenuTriggerFor]="themeMiniMenu"
314-
[cdkMenuPosition]="miniMenuPositions"
315-
[aria-label]="'Change theme. Current theme: ' + theme()"
312+
[cdkMenuPosition]="bottomMiniMenuPositions"
313+
[aria-label]="'Cambiar tema. Tema actual: ' + theme()"
316314
aria-controls="theme-mini-menu"
317315
[aria-expanded]="openedMenu() === 'theme-picker'"
318316
aria-haspopup="menu"
@@ -336,11 +334,11 @@
336334

337335
<ng-template #themeMiniMenu>
338336
<ul
339-
class="adev-mini-menu"
337+
class="adev-mini-menu adev-mini-menu--theme"
340338
cdkMenu
341339
id="theme-mini-menu"
342340
role="menu"
343-
aria-label="Theme options"
341+
aria-label="Opciones de tema"
344342
>
345343
<li role="none">
346344
<button
@@ -393,7 +391,7 @@
393391
<button type="button" (click)="openMobileNav($event)">
394392
<docs-icon class="docs-icon_high-contrast">menu</docs-icon>
395393
@if (activeRouteItem() === PAGE_PREFIX.DOCS) {
396-
<span>Docs</span>
394+
<span>Documentos</span>
397395
}
398396
@if (activeRouteItem() === PAGE_PREFIX.REFERENCE) {
399397
<span>API</span>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<div class="two-column-step">
2+
<div class="step-description">
3+
<div class="header">Control Flow</div>
4+
<div class="description">
5+
Angular's new control flow syntax makes templates easier to write and understand.
6+
</div>
7+
8+
<button
9+
class="docs-primary-btn"
10+
[attr.text]="'Learn more about Control Flow'"
11+
routerLink="/guide/templates/control-flow"
12+
>
13+
Learn more about Control Flow
14+
</button>
15+
</div>
16+
17+
<div class="step-code">
18+
<div class="code-block">
19+
<div class="code-header">
20+
<span>my-template.html</span>
21+
<span class="copy-icon"></span>
22+
</div>
23+
24+
<adev-code-block [code]="Example" language="angular-html" />
25+
</div>
26+
</div>
27+
</div>

0 commit comments

Comments
 (0)