No se pudo analizar la expresión de ICU. i18n utilizando Angular.
Tengo una matriz de elementos de menú de la barra lateral que quiero convertir a otro idioma.
A continuación se encuentra mi código:
left-menu.component.html
<ng-container *ngfor="let m of menuItems; let last = last">
<a mat-list-item="" *ngfor="let page of m.pages" [routerlink]="page?.link" routerlinkactive="router-link-active">
<mat-icon fontset="material-icons-outlined" style="padding-right: 10px;" [matbadge]="page?.alerts" matbadgeposition="after" matbadgecolor="warn" [matbadgehidden]="this.linkText && showMenuBadge(page)">
{{page?.icon}}
</mat-icon>
<span [@animatetext]="linkText ? 'show' : 'hide'" [matbadge]="page?.alerts" matbadgeposition="after" matbadgecolor="warn" matbadgeoverlap="false" [matbadgehidden]="false" [matbadgehidden]="!this.linkText && showMenuBadge(page)" style="padding-left: 10px;" i18n="@@leftmenu">
{page?.name, select, name {name}}
</span>
</a>
<mat-divider *ngif="!last"></mat-divider>
</ng-container>
messages.hi-IN.xlf
<trans-unit id="leftmenu" datatype="html">
<source>{VAR_SELECT, select, name {name}}
<target state="final">{VAR_SELECT, select, Talent {कार्रवाई} Dashboard {डैशबोर्ड} Address {Adresse} City {Ville} State {Etat} Occupation {Occupation}}</target>
</trans-unit>
Estoy obteniendo el siguiente error aquí:
No se puede analizar la expresión ICU en el mensaje “{VAR_SELECT, select, Talent {कार्रवाई} Dashboard {डैशबोर्ड} Address {Adresse} City {Ville} State {Etat} Occupation {Occupation}}”
davy.ai
El mensaje de error sugiere que hay un problema con la expresión ICU en la cadena de mensaje. La expresión ICU se utiliza para el formato de mensajes y la pluralización en ngx-translate.
En este caso, parece que se está utilizando la palabra clave
select
en la expresión ICU pero no se está interpretando correctamente. Para resolver este problema, puede intentar los siguientes pasos:app.module.ts
para asegurarse de haber importadoTranslocoModule
yHttpClientModule
.messages.hi-IN.xlf
para asegurarse de que el contenido traducido sea correcto y de que la expresión ICU esté formateada correctamente.left-menu.component.html
, asegúrese de utilizar la sintaxis correcta para hacer referencia al mensaje traducido. Debería verse así:Tenga en cuenta que se utiliza el tubería
transloco
para hacer referencia al mensaje traducido, y se pasa el parámetroVAR_SELECT
como argumento. Esto debería resolver el error y traducir correctamente los elementos del menú izquierdo al idioma seleccionado.