querySourceFile
Referencia de API del método querySourceFile para obtener información del archivo fuente y de sus traducciones
Descripción general
El método querySourceFile obtiene información completa sobre un archivo fuente y todas sus traducciones asociadas.
Esto incluye los metadatos del archivo, el estado de traducción en todos los locales y las marcas de tiempo de creación, finalización, aprobación y publicación.
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });
const result = await gt.querySourceFile({
fileId: 'file-123',
versionId: 'version-456'
});
console.log(`Archivo de origen: ${result.sourceFile.fileName}`);
console.log(`Disponible en ${result.translations.length} locales`);Referencias
Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
data | FileQuery | Objeto de consulta que especifica qué archivo obtener |
options? | CheckFileTranslationsOptions | Configuración opcional de la solicitud |
FileQuery
| Nombre | Tipo | Descripción |
|---|---|---|
fileId | string | Identificador único del archivo que se va a consultar |
versionId? | string | ID de la versión opcional para una versión específica del archivo |
CheckFileTranslationsOptions
| Nombre | Tipo | Descripción |
|---|---|---|
timeout? | number | Tiempo de espera de la solicitud, en milisegundos |
Devuelve
Promise<FileQueryResult> - Contiene información del archivo fuente y el estado de la traducción para todas las locales.
type FileQueryResult = {
sourceFile: {
id: string;
fileId: string;
versionId: string;
sourceLocale: string;
fileName: string;
fileFormat: string;
dataFormat: string | null;
createdAt: string;
updatedAt: string;
approvalRequiredAt: string | null;
locales: string[];
};
translations: {
locale: string;
completedAt: string | null;
approvedAt: string | null;
publishedAt: string | null;
createdAt: string | null;
updatedAt: string | null;
}[];
}Propiedades del archivo de origen
| Propiedad | Tipo | Descripción |
|---|---|---|
id | string | ID interno de la base de datos |
fileId | string | Identificador único del archivo |
versionId | string | Identificador de versión |
sourceLocale | string | Locale del idioma de origen |
fileName | string | Nombre original del archivo |
fileFormat | string | Formato de archivo (JSON, MD, MDX, etc.) |
dataFormat | string | null | Formato de datos dentro del archivo (ICU, i18next, JSX) |
createdAt | string | Marca de tiempo ISO de creación del archivo |
updatedAt | string | Marca de tiempo ISO de la última actualización |
approvalRequiredAt | string | null | Marca de tiempo ISO cuando se solicitó la aprobación |
locales | string[] | Lista de locales de destino para este archivo |
Propiedades de la traducción
| Propiedad | Tipo | Descripción |
|---|---|---|
locale | string | Código de configuración regional de destino |
completedAt | string | null | Marca de tiempo ISO de la finalización de la traducción |
approvedAt | string | null | Marca de tiempo ISO de la aprobación de la traducción |
publishedAt | string | null | Marca de tiempo ISO de la publicación de la traducción |
createdAt | string | null | Marca de tiempo ISO de la creación de la tarea de traducción |
updatedAt | string | null | Marca de tiempo ISO de la última actualización de la traducción |
Ejemplo
import { GT } from 'generaltranslation';
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key'
});
async function getFileInfo(fileId: string, versionId?: string) {
const result = await gt.querySourceFile({
fileId,
versionId
});
console.log('=== Información del archivo fuente ===');
console.log(`Nombre: ${result.sourceFile.fileName}`);
console.log(`Formato: ${result.sourceFile.fileFormat}`);
console.log(`Locale de origen: ${result.sourceFile.sourceLocale}`);
console.log(`Creado: ${new Date(result.sourceFile.createdAt).toLocaleString()}`);
console.log(`Actualizado: ${new Date(result.sourceFile.updatedAt).toLocaleString()}`);
console.log('\n=== Estado de traducción ===');
result.translations.forEach(translation => {
console.log(`${translation.locale}:`);
console.log(` Creado: ${translation.createdAt ? new Date(translation.createdAt).toLocaleString() : 'No iniciado'}`);
console.log(` Completado: ${translation.completedAt ? new Date(translation.completedAt).toLocaleString() : 'En curso'}`);
console.log(` Publicado: ${translation.publishedAt ? new Date(translation.publishedAt).toLocaleString() : 'No publicado'}`);
});
return result;
}
const fileInfo = await getFileInfo('file-123', 'version-456');Notas
- Devuelve el archivo fuente y el estado de traducción para todas las locales de destino
- Las marcas de tiempo de traducción siguen el ciclo de vida:
createdAt→completedAt→approvedAt→publishedAt - Las marcas de tiempo nulas indican que esa etapa aún no se ha alcanzado
- El arreglo
localesen el archivo fuente muestra todas las locales de destino configuradas para la traducción - Usa este método para generar informes detallados, hacer seguimiento del progreso y gestionar flujos de trabajo de archivos
Siguientes pasos
- Consulta
checkFileTranslationspara revisar de forma ligera el estado de traducciones específicas - Consulta
downloadTranslatedFilepara descargar traducciones finalizadas - Consulta
enqueueFilespara iniciar trabajos de traducción para files - Consulta
getProjectDatapara obtener información a nivel de proyecto
¿Qué te parece esta guía?