angular 5.翻译-翻译前操作所有键

angular 5. translation- manipulate all keys before translation

在我的应用程序中,我使用的是 ngx-translate。 我需要根据用户信息对所有键进行一些操作。

例如-

模板中的代码是a.b.c,如果用户在某个输入框选择x我们会先尝试寻找 a.b.c.x 键,如果它不存在 - 搜索原始代码。 我需要它用于系统中的所有键(在实际逻辑中我需要在键中添加更多信息)

有没有什么方法可以在翻译之前只在一个地方而不是在每个组件中对我的所有键执行此逻辑?

谢谢!

创建一个扩展 ngx-translate 翻译管道的自定义管道。 像这样:

@Pipe({
  name: 'customTranslate',
  pure: false
})
export class CustomTranslatePipe extends TranslatePipe {
transform(query: string, ...args: any[]): any {
  const modifiedQuery = query + '.x';
  const result = super.transform(modifiedQuery, args);
  return result !== modifiedQuery ? result : super.transform(query, args);
}

并使用它代替翻译管道:

{{ 'a.b.c' | customTranslate }}