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.

Cómo utilizar expresiones regulares en JSON como clave.

¿Es posible hacer esto? No encontré una sola solución en internet. Estoy trabajando en un proyecto de Angular 6. Necesito traducir algunas cadenas y para eso estoy manteniendo un archivo en-US.json en la carpeta i18n. El JSON se ve así:


"words": {
"Car": "Wagen",
"Ship": "Schiff",
"Flight": "Flug",
"*": "", // <------------ NECESITO AYUDA }

No quiero convertir las otras cadenas en absoluto. ¿Puedo usar expresiones regulares para ignorarlas? Si las dejo sin atender, obtengo cadenas como:


words.train
words.helicopter

Por favor, corríjame si estoy equivocado.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible lograr esto utilizando ngx-translate en Angular 6. En lugar de utilizar una expresión regular para ignorar las cadenas sin traducir, simplemente puedes evitar agregarlas al archivo JSON.

    Por ejemplo, si solo quieres traducir “Car”, “Ship” y “Flight”, tu archivo JSON debería verse así:

    "words": {
      "Car": "Wagen",
      "Ship": "Schiff",
      "Flight": "Flug"
    }
    

    En tu componente, puedes usar el servicio translateService para obtener la traducción:

    import { TranslateService } from '@ngx-translate/core';
    
    ...
    
    constructor(private translateService: TranslateService) {}
    
    ...
    ngOnInit() {
      this.translateService.get('words.Car').subscribe((res: string) => {
        console.log(res); // Wagen
      });
    }
    

    De esta manera, puedes evitar agregar un asterisco u otro tipo de carácter para ignorar las cadenas sin traducir. ¡Espero que esto te ayude!

Comments are closed.