# generaltranslation: General Translation Core SDK: Быстрый старт
URL: https://generaltranslation.com/ru/docs/core/quickstart.mdx
---
title: Быстрый старт
description: Краткое руководство по началу работы с библиотекой generaltranslation
---
## Обзор
В этом руководстве мы разберём основы использования библиотеки generaltranslation.
Мы рассмотрим перевод строк и файлов.
***
## Переведите свою первую строку
### 1. Получите переменные окружения
Сначала создайте `GT_PROJECT_ID` и `GT_API_KEY`.
Это совершенно бесплатно и даст вам доступ к сервисам перевода.
Перейдите на [страницу `API Keys`](https://dash.generaltranslation.com/api-keys) и нажмите `Create API Key`.
Выберите имя для своего API-ключа и нажмите `Create`.

General Translation предлагает щедрые бесплатные лимиты запросов для поддержки личных проектов, независимых разработчиков и сообщества.
### 2. Инициализируйте класс GT
Инициализируйте класс [`GT`](/docs/core/class/constructor) и безопасно передайте `GT_PROJECT_ID` и `GT_API_KEY`.
```typescript title="src/index.ts"
import { GT } from 'generaltranslation';
const gt = new GT({
projectId: 'your-project-id',
apiKey: 'your-api-key',
});
```
### 3. Переведите свою первую строку
Вызовите метод [`translate`](/docs/core/class/methods/translation/translate), чтобы перевести строку.
Передайте строку, которую хотите перевести, и целевую локаль.
```typescript title="src/index.ts"
const result = await gt.translate('Hello, world!', 'es'); // Испанский
if (result.success) {
console.log(result.translation); // "¡Hola, mundo!"
} else {
console.error(`Translation failed: ${result.error}`);
}
```
Если вам нужно найти код локали, откройте страницу [поддерживаемых локалей](/docs/platform/supported-locales).
***
## Переведите свой первый файл
В этом руководстве предполагается, что вы уже выполнили шаги 1 и 2 из руководства [Переведите свою первую строку](/docs/core/quickstart#translate-your-first-string)
и у вас уже есть `GT_PROJECT_ID`, `GT_API_KEY` и экземпляр класса `GT`.
Допустим, вы хотите перевести файл `en.json` на испанский.
```json title="en.json"
{
"hello": "Hello",
"world": "World"
}
```
Чтобы перевести файл, выполните следующие четыре шага:
1. Загрузите файл
2. Поставьте файл в очередь на перевод
3. Проверьте статус файла (необязательно)
4. Скачайте переведённый файл.
#### Почему не сделать всё одним вызовом? Обычно пользователям нужно переводить сразу много
файлов. Разбиение на четыре понятных шага даёт пользователям
гораздо больше гибкости в том, как они могут использовать API.
### 1. Загрузите файл
Метод [`uploadSourceFiles`](/docs/core/class/methods/translation/upload-source-files) при загрузке файлов возвращает список ссылок на файлы.
Это позволяет позже поставить файл в очередь на перевод, проверить его статус и скачать переведённый файл.
```typescript title="src/index.ts"
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'
}
);
```
В результате будет возвращён список ссылок на файлы:
```ts title="Output"
[
{
fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
branchId: '123456789',
fileName: '/Users/demo/en.json',
fileFormat: 'JSON'
}
]
```
### 2. Поставьте файл в очередь на перевод
На следующем шаге выберите целевые локали для перевода с помощью метода [`enqueueFiles`](/docs/core/class/methods/translation/enqueue-files).
В этом случае мы будем переводить на испанский.
```typescript title="src/index.ts"
const fileUploadRef = {
fileId: uploadedFiles[0].fileId,
versionId: uploadedFiles[0].versionId,
branchId: uploadedFiles[0].branchId,
fileName: uploadedFiles[0].fileName,
fileFormat: uploadedFiles[0].fileFormat,
};
const enqueueResult = await gt.enqueueFiles(
[fileUploadRef],
{
sourceLocale: 'en',
targetLocales: ['es'],
});
```
Будет возвращён результат со сведениями о задании:
```ts title="Output"
{
jobId: 'job-123456',
locales: [ 'es' ],
message: 'Creating 1 translation(s).'
}
```
### 3. Проверьте статус файла
Итак, файл уже загружен — как понять, что он готов к скачиванию?
Чтобы проверить статус файла, можно использовать метод [`queryFileData`](/docs/core/class/methods/translation/query-file-data).
```typescript title="src/index.ts"
const { fileId, versionId, branchId } = uploadedFiles[0];
const status = await gt.queryFileData({
translatedFiles: [{
fileId,
versionId,
branchId,
locale: 'es'
}]
});
```
Если файл всё ещё переводится, `completedAt` будет `null`. После завершения в этом поле будет временная метка.
```ts title="Output"
{
translatedFiles: [
{
fileId: '41726368696562616c64204d6342616c64792074686973206973206a6f6b652e',
versionId: '427269616e204c6f75206d6f7265206c696b65204c696f6e2042726f20686121',
branchId: '123456789',
locale: 'es',
completedAt: '2024-01-15T12:00:00Z',
...
}
]
}
```
### 4. Скачайте переведённый файл
В завершение можно скачать переведённый файл с помощью метода [`downloadFile`](/docs/core/class/methods/translation/download-file).
```typescript title="src/index.ts"
const { fileId, branchId } = uploadedFiles[0];
const content = await gt.downloadFile({
fileId,
branchId,
locale: 'es',
});
```
Это вернёт содержимое файла с переводом:
```ts title="Output"
{
"hello": "Hola",
"world": "Mundo"
}
```