当前位置: 首页 > 知识库问答 >
问题:

使用角度i18n内部*NGFOR具有角度5的环路

张茂勋
2023-03-14
<mat-card *ngFor="let user of usersList">
    <mat-card-title>
        <span>{{user.name}}</span>
    </mat-card-title>
    <mat-card-content>
        <!--This is the enum i would like to translate dynamic -->
        <span i18n="Role@@role">{{user.role}}</span>
    </mat-card-content>
</mat-card>

使用其他文本消息不是一个好方法,因为如果枚举中有数百个值,那该怎么办。我不会在html代码中重复枚举。

共有1个答案

祁俊拔
2023-03-14

我设法让它成功了。下面是使用格式xlif2和选择ICU表达式的示例

https://angular.io/guide/i18n#翻译-选择

下面是我如何翻译select

    <ul>
      <li *ngFor="let user of users">
        <span i18n="@@role">dummy {user.role, select, admin {admin}}</span>
      </li>
      </ul>
    null

然后提取消息文件(例如,对于法语)

    ng xi18n --outputPath src/locale --locale fr--i18nFormat=xlf2 --outFile messages.fr.xlf

然后在messageMessages.[language].xlf文件中设置翻译

    <unit id="role">
      <segment>
        <source>ROLE <ph id="0" equiv="ICU" disp="{user.role, select, admin {...} user {...} other {...}}"/></source>
        <target>ROLE <ph id="0" equiv="ICU" disp="{user.role, select, admin {...} user {...} other {...}}"/></target>
      </segment>
    </unit>
    <unit id="7222321253551421654">
      <segment>
        <source>{VAR_SELECT, select, admin {administrator} user {user} other {other} }</source>
        <target>{VAR_SELECT, select, admin {administrateur} user {utilisateur} other {autre} }</target>
      </segment>
    </unit>

包含要翻译的实际值的单元7222321253551421654的ID是工具生成的ID。您只需修改该单元,即可根据需要添加任意多个角色/翻译

 类似资料:
  • 我正在尝试更改ngFor中的类whit ngclass和三元运算符,如果布尔值为真,我想使用alaling-成功,如果布尔值为假,我想使用alaling-危险。当我插入第一个元素true是可以的,但当我插入第二个元素false时,第一个元素更改为false TS

  • 首先,ngfor中的标签没有要关联的标识,也没有要查找的任何其他标识。然而,我没有发现任何需要id的东西,在剑道页面上有许多例子显示了没有id的复选框的例子,所以我不认为这是问题(但肯定可能是错误的)。 其次,它们在ngFor循环中。我不知道为什么这会把它搞砸,但这是我能想到的一切。我搜索了一下,但找不到任何关于这里的问题或如何解决它的东西。 你知道我哪里出了问题或者我没有看到什么吗?我确实记录了

  • 我想按照这个答案从角度5迁移到角度6 我试着执行这三个命令,来更新。angular-cli.json到angular.json: 不幸的是,仍然没有angular.json。如果我试图运行< code>ng serve,我会得到以下错误: 所以我改名了。angular-cli.json到angular.json。但这并没有帮助: 架构验证失败,出现以下错误:数据路径“”不应具有其他属性(项目)。错

  • 类定义为: 我继续创建对象: 使用以下工具进行检查: 打印: 但是在html模板中使用可以观察到: 引发: 如何解决这个问题?这里是Stackblitz项目的链接: https://stackblitz.com/edit/Angular-ivy-isebs7?file=src%2fapp%2fapp.component.ts

  • 我建立了一个角5应用程序使用i18n,支持法语和英语。然后,我为每种支持的语言部署了单独版本的应用程序 我还添加了以下nginx配置,以提供两种语言的应用程序; 我想做的是为这两个应用程序提供服务,并允许在英文版和法文版之间切换。 比如说,我在如果切换到主机。local/fr/something我应该得到法文版的“something”页面。 使用我共享的nginx配置,每次我在浏览应用程序时刷新页

  • 旋转 你可以通过对一个精灵的rotation设定一个角度来旋转它。 cat.rotation = 0.5; 但是旋转是针对于哪一个点发生的呢? 你已经了解了,精灵的左上角代表它的位置,这个点被称之为 锚点 。如果你用像0.5这种值设定rotation,这个旋转将会 围绕着锚点发生 。下面这张图就是结果: 你能看见锚点是猫的左边耳朵(译者:对猫来说实际上是它的右耳朵!),那里成了猫的图片的旋转中心。