Быстрый старт
Краткое руководство по библиотеке General Translation
Обзор
В этом руководстве вы узнаете основы работы с библиотекой generaltranslation. Мы рассмотрим перевод строк и файлов.
Переведите свою первую строку
1. Получите переменные окружения
Первый шаг — создать GT_PROJECT_ID и GT_API_KEY.
Это полностью бесплатно и даст вам доступ к сервисам перевода.
Перейдите на страницу API Keys и нажмите Create API Key.
Укажите имя для своего API‑ключа и нажмите Create.

General Translation предлагает очень щедрые бесплатные лимиты, чтобы поддержать персональные проекты, независимых разработчиков и сообщество.
2. Инициализируйте класс GT
Инициализируйте класс GT и безопасно передайте свои GT_PROJECT_ID и GT_API_KEY.
import { GT } from 'generaltranslation';
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});3. Переведите свою первую строку
Вызовите метод translate, чтобы перевести строку.
Передайте строку, которую нужно перевести, и целевую локаль.
const { translation } = await gt.translate('Hello, world!', 'es'); // испанский
console.log(translation); // "¡Hola, mundo!"Если нужно узнать код локали, откройте страницу поддерживаемых локалей.
Переведите свой первый файл
В этом руководстве предполагается, что вы уже выполнили шаги 1 и 2 из раздела Translate your first string
и у вас есть GT_PROJECT_ID, GT_API_KEY и экземпляр класса GT.
Предположим, вы хотите перевести файл en.json на испанский.
{
"hello": "Привет",
"world": "Мир"
}Чтобы перевести файл, выполните эти четыре шага:
- Загрузите файл
- Поставьте файл в очередь на перевод
- Проверьте статус файла (необязательно)
- Скачайте переведённый файл.
Почему не одним запросом?
Обычно нужно переводить сразу много файлов. Разделение на четыре понятных шага даёт пользователям гораздо больше гибкости в использовании API.
1. Загрузите файл
Метод uploadSourceFiles при загрузке возвращает список ссылок на файлы.
Это позволяет позже поставить файл в очередь на перевод, проверить его статус и скачать переведённый файл.
import fs from 'fs';
import path from 'path';
import { FileUpload } from 'generaltranslation';
// (i) Чтение содержимого файла
const filePath = path.join(process.cwd(), 'en.json');
const fileContents = fs.readFileSync(filePath, 'utf8');
// (ii) Форматирование содержимого файла
const fileUpload: FileUpload = {
content: fileContents,
fileName: filePath,
fileFormat: 'JSON',
locale: 'en',
};
const files = [ { source: fileUpload } ];
// (iii) Загрузка файла
const { uploadedFiles } = await gt.uploadSourceFiles(
files,
{
sourceLocale: 'en'
}
);Это вернет список ссылок на файлы:
[
{
fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
fileName: '/Users/demo/en.json',
fileFormat: 'JSON'
}
]2. Добавьте файл в очередь на перевод
Далее выберите целевые локали для перевода с помощью метода enqueueFiles.
В этом примере мы переведём на испанский.
const fileUploadRef = {
fileId: uploadedFiles[0].fileId,
versionId: uploadedFiles[0].versionId,
fileName: uploadedFiles[0].fileName,
fileFormat: uploadedFiles[0].fileFormat,
};
const enqueueResult = await gt.enqueueFiles(
[fileUploadRef],
{
sourceLocale: 'en',
targetLocales: ['es'],
});Это вернёт список ссылок на файлы:
{
translations: [],
data: {
'41726368696562616c64204d6342616c64792074686973206973206a6f6b652e': {
fileName: '/Users/demo/en.json',
versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121'
}
},
locales: [ 'es' ],
message: 'Создание 1 перевода.'
}3. Проверьте статус файла
Итак, файл загружен. Когда мы узнаем, что он готов к загрузке?
Мы можем использовать метод checkFileTranslations, чтобы проверить статус файла.
const status = await gt.checkFileTranslations([{
versionId: uploadedFiles[0].versionId,
fileName: uploadedFiles[0].fileName,
locale: 'es'
}]);Если файл всё ещё находится в процессе перевода, соответствующих результатов в выводе не будет.
{
translations: [
{
locale: 'es',
metadata: {},
fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
fileName: '/Users/demo/en.json',
versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
id: 'skl44z0ieuvdcomw38zb5chv',
isReady: true,
downloadUrl: '/v2/project/translations/files/skl44z0ieuvdcomw38zb5chv/download'
}
]
}4. Скачайте переведённый файл
Наконец, мы можем скачать переведённый файл с помощью метода downloadTranslatedFile.
const { translation } = await gt.downloadTranslatedFile({
fileId: uploadedFiles[0].fileId,
locale: 'es',
versionId: uploadedFiles[0].versionId,
});Будет возвращено переведённое содержимое файла:
{
"hello": "Привет",
"world": "Мир"
}Насколько полезно это руководство?