文档

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 options
const formal = await magicTranslate.translate('How are you?', {
lang: 'fr',
formality: 'formal'
});

如果没有 lang 选项,文本将被翻译成当前语言。