t pipe
并非所有内容都可以包装在组件中。像 placeholder 或 title 这样的属性需要一个字符串,有时你需要在 TypeScript 代码中进行翻译。对于这些,请使用 MagicTranslate 服务的 t pipe 或 translate 方法。
t pipe
import { Component } from '@angular/core';import { TranslatePipe } from '@magic-translate/angular';@Component({selector: 'app-search',imports: [TranslatePipe],template: `<input [placeholder]="'Search products' | t" />`})export class Search {}
pipe 返回原始文本,直到翻译加载完毕。像 <t> 组件一样,它采用语言和形式作为选项:
<input [placeholder]="'Your name' | t: { lang: 'fr', formality: 'formal' }" />
在代码中翻译
要在 TypeScript 中翻译字符串,请在 MagicTranslate 服务上调用 translate。它返回了一个承诺。
import { inject } from '@angular/core';import { MagicTranslate } from '@magic-translate/angular';const magicTranslate = inject(MagicTranslate);const message = await magicTranslate.translate('Your order has been placed');// with optionsconst formal = await magicTranslate.translate('How are you?', {lang: 'fr',formality: 'formal'});
如果没有 lang 选项,文本将被翻译成当前语言。