Inicio rápido

Guía de inicio rápido de la biblioteca generaltranslation

Descripción general

Esta guía te mostrará los aspectos básicos para usar la biblioteca generaltranslation. Veremos cómo traducir cadenas y archivos.


Traduce tu primera cadena

1. Obtén tus variables de entorno

El primer paso es crear un GT_PROJECT_ID y un GT_API_KEY. Esto es completamente gratuito y te dará acceso a los servicios de traducción.

Ve a la página de API Keys y haz clic en Create API Key. Elige un nombre para tu clave de API y haz clic en Create.

Página de clave de API

General Translation ofrece límites gratuitos muy generosos para apoyar proyectos personales, desarrolladores individuales y a la comunidad.

2. Inicializa la clase GT

Inicializa la clase GT y pasa de forma segura tu GT_PROJECT_ID y GT_API_KEY.

src/index.ts
import { GT } from 'generaltranslation';

const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

3. Traduce tu primera cadena

Llama al método translate para traducir tu cadena. Pasa la cadena que quieres traducir y el locale de destino.

src/index.ts
const { translation } = await gt.translate('Hello, world!', 'es'); // Spanish

console.log(translation); // "¡Hola, mundo!"

Si quieres consultar un código de configuración regional, visita la página de locales compatibles.


Traduce tu primer archivo

Esta guía asume que ya seguiste los pasos 1 y 2 de la guía Traduce tu primera cadena y que cuentas con un GT_PROJECT_ID, GT_API_KEY y una instancia de la clase GT.

Supongamos que quieres traducir un archivo llamado en.json al español.

en.json
{
  "hello": "Hola",
  "world": "Mundo"
}

Para traducir un file, debes seguir estos cuatro pasos:

  1. Sube el file
  2. Encola el file para traducción
  3. Revisa el estado del file (opcional)
  4. Descarga el file traducido.

¿Por qué no solo una llamada?

Normalmente, las personas querrán traducir muchos files a la vez. Al dividirlo en cuatro pasos claros, se les da a los usuarios mucha más flexibilidad en cómo pueden usar la API.

1. Sube el archivo

La carga de files devuelve una lista de referencias de archivo con el método uploadSourceFiles. Esto te permite posteriormente poner el archivo en cola para su traducción, comprobar su estado y descargar el archivo traducido.

src/index.ts
import fs from 'fs';
import path from 'path';
import { FileUpload } from 'generaltranslation';

// (i) Leer el contenido de un archivo
const filePath = path.join(process.cwd(), 'en.json');
const fileContents = fs.readFileSync(filePath, 'utf8');

// (ii) Dar formato al contenido del archivo
const fileUpload: FileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON',
  locale: 'en',
};
const files = [ { source: fileUpload } ];

// (iii) Cargar el archivo
const { uploadedFiles } = await gt.uploadSourceFiles(
  files,
  {
    sourceLocale: 'en'
  }
);

Esto devolverá una lista de referencias de archivo:

Output
[
  {
    fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
    versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
    fileName: '/Users/demo/en.json',
    fileFormat: 'JSON'
  }
]

2. Encola el archivo para traducción

El siguiente paso es seleccionar los locales de destino para la traducción con el método enqueueFiles. En este caso, traduciremos al español.

src/index.ts
const fileUploadRef = {
  fileId: uploadedFiles[0].fileId,
  versionId: uploadedFiles[0].versionId,
  fileName: uploadedFiles[0].fileName,
  fileFormat: uploadedFiles[0].fileFormat,
};
const enqueueResult = await gt.enqueueFiles(
  [fileUploadRef],
  {
  sourceLocale: 'en',
  targetLocales: ['es'],
});

Esto devolverá una lista de referencias a archivos:

Output
{
  translations: [],
  data: {
    '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e': {
      fileName: '/Users/demo/en.json',
      versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121'
    }
  },
  locales: [ 'es' ],
  message: 'Creando 1 traducción.'
}

3. Comprueba el estado del archivo

Bien, ahora que el archivo se ha subido, ¿cómo sabemos cuándo está listo para descargar? Podemos usar el método checkFileTranslations para comprobar el estado del archivo.

src/index.ts
const status = await gt.checkFileTranslations([{
  versionId: uploadedFiles[0].versionId,
  fileName: uploadedFiles[0].fileName,
  locale: 'es'
}]);

Si el archivo aún se está traduciendo, no habrá traducciones correspondientes en la salida.

Output
{
  translations: [
    {
      locale: 'es',
      metadata: {},
      fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
      fileName: '/Users/demo/en.json',
      versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
      id: 'skl44z0ieuvdcomw38zb5chv',
      isReady: true,
      downloadUrl: '/v2/project/translations/files/skl44z0ieuvdcomw38zb5chv/download'
    }
  ]
}

4. Descarga el archivo traducido

Por último, podemos descargar el archivo traducido con el método downloadTranslatedFile.

src/index.ts
const { translation } = await gt.downloadTranslatedFile({
  fileId: uploadedFiles[0].fileId,
  locale: 'es',
  versionId: uploadedFiles[0].versionId,
});

Esto devolverá el contenido traducido del archivo:

Output
{
  "hello": "Hola",
  "world": "Mundo"
}

¿Qué te parece esta guía?