es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Traduzca el texto en un tubo angular personalizado (ngx-translate).

Estoy utilizando ngx-translate para las traducciones en mi aplicación Angular.

En un pipe personalizado tengo texto que necesita ser traducido.

pipe:

import { Pipe, PipeTransform } from '@angular/core';
import { Something } from '../domain';
import { TranslateService } from '@ngx-translate/core';

@Pipe({
  name: 'someDescription'
})
export class SomeDescriptionPipe implements PipeTransform {
  constructor(private translate: TranslateService) {}

  transform(value: Something, args?: any): string {
    switch (value) {
      case Something.value1: return this.translate.instant('string 001');
      case Something.value2: return this.translate.instant('string 002');
      default: return value;
    }
  }
}

Hasta donde tengo entendido, un constructor no es compatible desde Angular 6.
¿Cómo puedo traducir el texto en un pipe? (Esto no es cierto después de investigar un poco)

La solución es usar un constructor e importar TranslateService.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para traducir texto en una tubería personalizada utilizando ngx-translate, puedes seguir los siguientes pasos:

    1. Importa TranslateService de @ngx-translate/core:
    import { TranslateService } from '@ngx-translate/core';
    
    1. Modifica el constructor de tu tubería personalizada para inyectar TranslateService:
    constructor(private translateService: TranslateService) {}
    
    1. Utiliza el método instant de TranslateService para traducir el texto:
    transform(value: Algo): string {
      switch (value) {
        case Algo.valor1: return this.translateService.instant('string001');
        case Algo.valor2: return this.translateService.instant('string002');
        default: return value;
      }
    }
    
    1. Asegúrate de que las cadenas traducidas estén incluidas en tus archivos de traducción. Por ejemplo, si estás utilizando el archivo en.json por defecto, debería contener:
    {
      "string001": "Cadena traducida 001",
      "string002": "Cadena traducida 002"
    }
    

Comments are closed.