# 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`. ![Страница API-ключей](https://assets.gtx.dev/core/quickstart/core-quickstart-1.png) 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" } ```