querySourceFile
Riferimento API per il metodo querySourceFile che restituisce informazioni sul file sorgente e sulle traduzioni
Panoramica
Il metodo querySourceFile recupera informazioni dettagliate su un file sorgente e su tutte le traduzioni a esso associate.
Include i metadati del file, lo stato delle traduzioni per tutte le lingue e le date/ore di creazione, completamento, approvazione e pubblicazione.
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(`File sorgente: ${result.sourceFile.fileName}`);
console.log(`Disponibile in ${result.translations.length} lingue/locale`);Riferimenti
Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
data | FileQuery | Oggetto di query del file che specifica quale file recuperare |
options? | CheckFileTranslationsOptions | Configurazione opzionale della richiesta |
FileQuery
| Nome | Tipo | Descrizione |
|---|---|---|
fileId | string | Identificatore univoco del file da consultare |
versionId? | string | ID versione facoltativo per una specifica versione del file |
CheckFileTranslationsOptions
| Nome | Tipo | Descrizione |
|---|---|---|
timeout? | number | Timeout della richiesta in millisecondi |
Restituisce
Promise<FileQueryResult> - Contiene le informazioni sul file sorgente e lo stato della traduzione per tutte le lingue/localizzazioni.
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;
}[];
}Proprietà del file sorgente
| Proprietà | Tipo | Descrizione |
|---|---|---|
id | string | ID interno del database |
fileId | string | Identificatore univoco del file |
versionId | string | Identificatore della versione |
sourceLocale | string | Locale della lingua di origine |
fileName | string | Nome del file originale |
fileFormat | string | Formato del file (JSON, MD, MDX, ecc.) |
dataFormat | string | null | Formato dei dati nel file (ICU, I18NEXT, JSX) |
createdAt | string | Timestamp ISO di creazione del file |
updatedAt | string | Timestamp ISO dell’ultimo aggiornamento |
approvalRequiredAt | string | null | Timestamp ISO della richiesta di approvazione |
locales | string[] | Elenco dei locale di destinazione per questo file |
Proprietà della traduzione
| Proprietà | Tipo | Descrizione |
|---|---|---|
locale | string | Codice della lingua/locale di destinazione |
completedAt | string | null | Timestamp ISO di completamento della traduzione |
approvedAt | string | null | Timestamp ISO di approvazione della traduzione |
publishedAt | string | null | Timestamp ISO di pubblicazione della traduzione |
createdAt | string | null | Timestamp ISO di creazione del job di traduzione |
updatedAt | string | null | Timestamp ISO dell’ultimo aggiornamento della traduzione |
Esempio
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('=== Informazioni sul file di origine ===');
console.log(`Nome: ${result.sourceFile.fileName}`);
console.log(`Formato: ${result.sourceFile.fileFormat}`);
console.log(`Locale di origine: ${result.sourceFile.sourceLocale}`);
console.log(`Creato: ${new Date(result.sourceFile.createdAt).toLocaleString()}`);
console.log(`Aggiornato: ${new Date(result.sourceFile.updatedAt).toLocaleString()}`);
console.log('\n=== Stato delle traduzioni ===');
result.translations.forEach(translation => {
console.log(`${translation.locale}:`);
console.log(` Creata: ${translation.createdAt ? new Date(translation.createdAt).toLocaleString() : 'Non avviata'}`);
console.log(` Completata: ${translation.completedAt ? new Date(translation.completedAt).toLocaleString() : 'In corso'}`);
console.log(` Pubblicata: ${translation.publishedAt ? new Date(translation.publishedAt).toLocaleString() : 'Non pubblicata'}`);
});
return result;
}
const fileInfo = await getFileInfo('file-123', 'version-456');Note
- Restituisce il file sorgente e lo stato della traduzione per tutte le lingue di destinazione
- I timestamp di traduzione seguono questo ciclo di vita:
createdAt→completedAt→approvedAt→publishedAt - I timestamp null indicano che quella fase non è stata ancora raggiunta
- L'array
localesnel file sorgente mostra tutte le lingue di destinazione configurate per la traduzione - Usa questo metodo per report dettagliati, monitoraggio dell’avanzamento e workflow di gestione dei file
Prossimi passaggi
- Consulta
checkFileTranslationsper un controllo leggero dello stato di traduzioni specifiche - Consulta
downloadTranslatedFileper scaricare le traduzioni completate - Consulta
enqueueFilesper avviare i job di traduzione per i file - Consulta
getProjectDataper informazioni a livello di progetto
Come valuti questa guida?