downloadTranslatedFile
Справочник API по методу downloadTranslatedFile для скачивания готовых файлов перевода
Обзор
Метод downloadTranslatedFile скачивает содержимое одного переведённого файла в виде строки UTF-8.
Этот метод используется для получения готовых переводов после их обработки платформой General Translation.
const gt = new GT({ projectId: 'your-project-id', apiKey: 'your-api-key' });
const content = await gt.downloadTranslatedFile({
fileId: 'file-123',
locale: 'es',
versionId: 'version-456'
});Статус перевода:
Этот метод работает только с завершёнными переводами.
Сначала используйте checkFileTranslations, чтобы убедиться, что переводы завершены, прежде чем скачивать их.
Справка
Параметры
| Имя | Тип | Описание |
|---|---|---|
file | FileInfo | Объект с данными о файле, указывающий, какой файл необходимо загрузить |
options? | DownloadFileOptions | Необязательные параметры запроса на загрузку |
Структура FileInfo
| Имя | Тип | Описание |
|---|---|---|
fileId | string | Уникальный идентификатор файла для скачивания |
locale | string | Целевая локаль перевода для скачивания |
versionId? | string | Необязательный идентификатор версии файла |
Параметры DownloadFileOptions
| Имя | Тип | Описание |
|---|---|---|
timeout? | number | Таймаут запроса в миллисекундах |
Возвращает
Promise<string> — переведённое содержимое файла в виде строки UTF‑8.
Возвращаемая строка содержит переведённое содержимое файла в том же формате, что и исходный исходник, при этом весь переводимый текст преобразован под целевую локаль.
Пример
// (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));
}
// (5) Скачайте файл
const result = await Promise.all(
translationIds.map(id => gt.downloadTranslatedFile(id))
);Примечания
- Возвращает загруженный файл как строку в кодировке UTF‑8
- Файл должен содержать завершённый перевод для указанной локали
- Завершится с ошибкой, если файл не найден
Дальнейшие шаги
- См.
checkFileTranslations, чтобы проверить статус переводов перед загрузкой - См.
downloadFileBatch, чтобы эффективно загрузить несколько файлов - См.
uploadSourceFilesо процессе загрузки исходных файлов - См.
enqueueFiles, чтобы запустить задачи перевода
Насколько полезно это руководство?