Angular-translate笔记

本文介绍了Angular应用中如何通过HTML管道和TranslateService在TS中实现国际化翻译,包括使用方法、示例及在不同场景下的注意事项,帮助开发者高效管理多语言内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Angular-translate笔记

在已经保证 translate 功能 (国际化) 可以使用的前提下,翻译可以有两种写法,分别是在HTML中和TS中完成翻译。

  • 在HTML中使用 管道 ( | ) 翻译

    示例如:

    <label>
        {{I18nMessage.DEMO.DEMO_TEST | translate}}
    </label>
    

    i18nMessage 为存放翻译相关的值的静态常量类

    export class I18nMessage {
    	static DEMO {
    		DEMO_TEST: 'demo.demoTest'
    	}
    }
    

    'demo.demoTest' 为存放在数据库表中关键字段 “ key ”,比如数据库表中的这条记录为:

    idkeyvaluelanguagedate
    1demo.demoTestTestch时间戳
    2demo.demoTest测试zh时间戳
  • 在TS文件中使用 TranslateService 翻译

    HTML相关部分

    <p-radioButton label="{{demo}}"></p-radioButton>
    
    <p-radioButton [label]="demo"></p-radioButton>
    

    TS文件内容

    import { TranslateService } from '@ngx-translate/core';
    
    export class DemoComponent implements OnInit, OnDestroy {
      demo: string;
    
      private _subscription: Subscription = new Subscription();
    
      constructor(
          private readonly _translateService: TranslateService
      ) {
      }
    
      ngOnInit(): void {
          initData();
          initTranslate();
      }
      
      initData(): void {
          demo = this._translateService.instant(I18nMessage.DEMO.DEMO_TEST);
      }
    
      /**
       * Init translate data
       * @private
       */
      private initTranslate() {
        this._subscription.add(
            this._translateService.onLangChange.subscribe(() => {
              this.initData();
            })
        );
      }
        
      ngOnDestroy(): void {
        this._subscription.unsubscribe();
      }
    }
    

    initTranslate 方法中,onLangChange 事件只有在语言切换时才会发生,所有在 initTranslate 方法前需要调用 initData() 方法。否则在初始化时 字段 不显示,只有在切换语言后 字段 才能正常显示。
    错误情况如下:
    请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值