Estoy ayudando a implementar la localización en una aplicación web angular usando un conmutador de idioma que implementé usando transloco . La forma en que funciona transloco es que agrega el código de idioma de dos dígitos /en/ justo después del dominio en la URL, y el punto final y la ubicación secundaria siguen después del código de idioma. Este era el código antiguo que funcionaba bien antes de implementar la localización:
<div class="navbar-brand"> <ng-container *ngIf="sites$ | async as sites"> <a [matMenuTriggerFor]="menu" href="javascript:void(0);">{{ siteName$ | async }}</a> <mat-menu #menu="matMenu"> <button *ngIf="admin$ | async" mat-menu-item routerLink="admin">Admin</button> <button *ngFor="let site of sites" mat-menu-item [routerLink]="site.id">{{ site.name }}</button> </mat-menu> </ng-container> </div> Entonces, para ir a la página correcta tan pronto como se carga la aplicación, tuve que cambiar "admin" a "en/admin". Sin embargo site.id es una variable, entonces, ¿cómo paso el valor de la cadena dentro de site.id dentro del valor del enlace del enrutador? Esto es lo que probé, pero obviamente no funciona correctamente:
<div class="navbar-brand"> <ng-container *ngIf="sites$ | async as sites"> <a [matMenuTriggerFor]="menu" href="javascript:void(0);">{{ siteName$ | async }}</a> <mat-menu #menu="matMenu"> <button *ngIf="admin$ | async" mat-menu-item routerLink="en/admin">Admin</button> <button *ngFor="let site of sites" mat-menu-item [routerLink]="'en' + /site.id">{{ site.name }}</button> </mat-menu> </ng-container> </div>Intentalo:
[routerLink]="'en/'+sitio.id"