GT ClassMethodsTranslation

checkFileTranslations

Referencia de API del método checkFileTranslations para consultar el estado de las traducciones sin descargar files

Descripción general

El método checkFileTranslations comprueba el estado de traducción de files sin descargar su contenido. Es útil para monitorear el progreso de traducción, verificar el grado de finalización y determinar qué traducciones están disponibles.

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

const status = await gt.checkFileTranslations([
  {
    versionId: 'version-123',
    fileName: 'app.json',
    locale: 'es'
  }
]);

Referencia

Parámetros

NombreTipoDescripción
dataFileTranslationQuery[]Matriz de consultas de traducción de archivos para comprobar
options?CheckFileTranslationsOptionsConfiguración opcional de la solicitud

FileTranslationQuery

NombreTipoDescripción
versionIdstringID de la versión del archivo a comprobar
fileName?stringIdentificador del nombre de archivo (obligatorio si no se proporciona fileId)
fileId?stringIdentificador del ID del archivo (obligatorio si no se proporciona fileName)
localestringLocale de destino para comprobar el estado de la traducción

CheckFileTranslationsOptions

NombreTipoDescripción
timeout?numberTiempo de espera de la solicitud en milisegundos

Devuelve

Promise<CheckFileTranslationsResult> - Contiene información sobre el estado de las traducciones.

type CheckFileTranslationsResult = {
  translations: CompletedFileTranslationData[];
}
PropiedadTipoDescripción
translationsCompletedFileTranslationData[]Matriz de datos de estado de traducción

Estructura de CompletedFileTranslationData

type CompletedFileTranslationData = {
  id: string;
  fileId: string;
  versionId: string;
  fileName: string;
  locale: string;
  status: 'completed' | 'pending' | 'failed';
  completedAt: string | null;
  approvedAt: string | null;
  publishedAt: string | null;
  createdAt: string;
  updatedAt: string;
}

Ejemplos

Uso básico

Consulta el estado de la traducción para files y locales específicos:

index.ts
// (1) Crear una instancia de GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
  projectId: 'your-project-id',
  apiKey: 'your-api-key',
});

// (2) Cargar el archivo
const fileUpload = {
  content: fileContents,
  fileName: filePath,
  fileFormat: 'JSON',
  locale: 'en',
};
const files = [ { source: fileUpload } ];
const { uploadedFiles } = await gt.uploadSourceFiles(
  files,
  { sourceLocale: 'en' }
);

// (3) Encolar el trabajo de traducción del archivo
const enqueueResult = await gt.enqueueFiles(
  uploadedFiles,
  {
  sourceLocale: 'en',
  targetLocales: targetLocales,
});

// (4) Esperar a que se completen todas las traducciones
let translationIds = [];
const statusQuery = Object.values(enqueueResult.data).flatMap(({fileName, versionId}) => {
  return targetLocales.map((locale) => ({locale, fileName, versionId}));
});
while (true) {
  const status = await gt.checkFileTranslations(statusQuery);
  if (status.translations.length === statusQuery.length) {
    translationIds = status.translations.map(translation => translation.id);
    break;
  }
  await new Promise(resolve => setTimeout(resolve, 1000));
}

Notas

  • El estado de la traducción incluye los estados pending, completed y failed
  • Las traducciones completadas pueden requerir aprobación antes de publicarse
  • Usa este método para comprobar el estado de forma eficiente al supervisar múltiples trabajos de traducción

Próximos pasos

¿Qué te parece esta guía?