checkFileTranslations
Справочник API по методу checkFileTranslations для проверки статуса перевода без скачивания файлов
Обзор
Метод checkFileTranslations проверяет статус перевода файлов без скачивания их содержимого.
Это полезно для мониторинга хода перевода, проверки степени готовности и определения доступных переводов.
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'
}
]);Справка
Параметры
| Имя | Тип | Описание |
|---|---|---|
data | FileTranslationQuery[] | Массив запросов проверки перевода файлов |
options? | CheckFileTranslationsOptions | Необязательные параметры запроса |
FileTranslationQuery
| Название | Тип | Описание |
|---|---|---|
versionId | string | Идентификатор версии файла для проверки |
fileName? | string | Имя файла (обязателен, если fileId не указан) |
fileId? | string | Идентификатор файла (обязателен, если fileName не указан) |
locale | string | Целевая локаль для проверки статуса перевода |
CheckFileTranslationsOptions
| Name | Type | Description |
|---|---|---|
timeout? | number | Таймаут запроса в миллисекундах |
Возвращает
Promise<CheckFileTranslationsResult> — содержит сведения о состоянии перевода.
type CheckFileTranslationsResult = {
translations: CompletedFileTranslationData[];
}| Свойство | Тип | Описание |
|---|---|---|
translations | CompletedFileTranslationData[] | Массив данных о статусе переводов |
Структура данных 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;
}Примеры
Базовое использование
Проверьте статус перевода для отдельных файлов и локалей:
// (1) Создайте экземпляр GT
const targetLocales = ['es', 'fr', 'de'];
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
// (2) Загрузите файл
const fileUpload = {
content: fileContents,
fileName: filePath,
fileFormat: 'JSON',
locale: 'en',
};
const files = [ { source: fileUpload } ];
const { uploadedFiles } = await gt.uploadSourceFiles(
files,
{ sourceLocale: 'en' }
);
// (3) Добавьте задачу перевода файла в очередь
const enqueueResult = await gt.enqueueFiles(
uploadedFiles,
{
sourceLocale: 'en',
targetLocales: targetLocales,
});
// (4) Дождитесь завершения всех переводов
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));
}Примечания
- Статус перевода включает состояния
pending,completedиfailed - Завершённые переводы могут по-прежнему требовать утверждения перед публикацией
- Используйте этот метод для эффективной проверки статуса при мониторинге нескольких заданий на перевод
Дальнейшие шаги
- Ознакомьтесь с кратким руководством с полноценным примером использования этого метода
- См.
downloadTranslatedFile, чтобы скачать готовые переводы - См.
enqueueFiles, чтобы создавать задания на перевод - См.
querySourceFile, чтобы получить информацию об исходном файле и переводах
Насколько полезно это руководство?