# generaltranslation: General Translation Core SDK: translateMany URL: https://generaltranslation.com/ru/docs/core/class/methods/translation/translate-many.mdx --- title: translateMany description: Справка по API метода GT translateMany для пакетного перевода --- ## Обзор Метод `translateMany` позволяет эффективно переводить несколько элементов контента в рамках одного API-запроса. Он оптимизирован для пакетной обработки и обеспечивает более высокую производительность по сравнению с несколькими отдельными вызовами `translate`. ```typescript const gt = new GT({ apiKey: 'your-api-key', projectId: 'your-project-id' }); const results = await gt.translateMany( ['Hello, world!', 'Welcome to our app', 'Click here to continue'], 'es' ); ``` *** ## Справочник ### Перегрузка 1: Массив записей ```typescript translateMany( sources: TranslateManyEntry[], options: string | TranslateOptions, timeout?: number ): Promise ``` Возвращает `TranslateManyResult` (массив объектов `TranslationResult`) в том же порядке, что и входной массив. ### Перегрузка 2: Record с элементами ```typescript translateMany( sources: Record, options: string | TranslateOptions, timeout?: number ): Promise> ``` При передаче объекта с ключами в виде хешей возвращает объект с теми же ключами. ### Параметры ', description: 'Массив или Record с записями для перевода.', optional: false, }, "options": { type: 'string | TranslateOptions', description: 'Строка целевой локали (сокращённая форма) или объект параметров.', optional: false, }, "timeout?": { type: 'number', description: 'Необязательный тайм-аут запроса в миллисекундах.', optional: true, } }} /> ### TranslateManyEntry Каждый элемент может быть обычной строкой или объектом с исходным содержимым и необязательными метаданными: ```typescript type TranslateManyEntry = string | { source: Content; metadata?: EntryMetadata }; ``` ### TranslateOptions ```typescript type TranslateOptions = { targetLocale: string; sourceLocale?: string; modelProvider?: string; }; ``` ### Описание параметров | Параметр | Описание | | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | `sources` | Массив или Record с элементами `TranslateManyEntry`. Каждый элемент может быть простой строкой или объектом с `source` и необязательным `metadata`. | | `options` | Строка целевой локали (например, `'es'`) или объект параметров с `targetLocale`, необязательным `sourceLocale` и `modelProvider`. | | `timeout` | Необязательный тайм-аут запроса в миллисекундах. | ### Возвращаемое значение * **Массив на входе** → `Promise` (`TranslationResult[]`), в том же порядке, что и во входных данных * **Record на входе** → `Promise>`, с ключами по тем же хешам *** ## Поведение ### Массив или запись * **Array**: Элементы хешируются внутренне; результаты возвращаются в порядке входных данных. * **Record**: Ключи используются как хеши; в ответ возвращается Record с теми же ключами. ### Стратегия обработки ошибок * Отдельные сбои перевода не прерывают всю пакетную операцию * Каждый результат отдельно показывает успех или ошибку * Сценарии частичного успеха полностью поддерживаются ### Сокращённая форма для `options` Вы можете передать строку в параметр `options` как сокращённую форму записи `{ targetLocale: string }`: ```typescript // Эти вызовы эквивалентны: await gt.translateMany(['Hello', 'Goodbye'], 'es'); await gt.translateMany(['Hello', 'Goodbye'], { targetLocale: 'es' }); ``` *** ## Примеры ### Массив строк ```typescript const results = await gt.translateMany( ['Home', 'About', 'Products', 'Contact'], 'fr' ); results.forEach((result, index) => { if (result.success) { console.log(`Item ${index}: ${result.translation}`); } else { console.error(`Item ${index} failed: ${result.error}`); } }); ``` ### Массив с метаданными ```typescript const results = await gt.translateMany( [ { source: 'Hello, world!', metadata: { dataFormat: 'ICU' } }, { source: 'Goodbye, world!' } ], { targetLocale: 'es' } ); ``` ### Record (ключ — хеш) ```typescript const results = await gt.translateMany( { 'greeting-hash': 'Hello, world!', 'farewell-hash': 'Goodbye, world!' }, 'es' ); console.log(results['greeting-hash'].translation); ``` *** ## Примечания * Переводит несколько элементов в рамках одного API-запроса * Ошибки перевода в одной записи не влияют на остальные * Результаты сохраняют тот же порядок, что и входные записи (массив), или те же ключи (Record) ## Следующие шаги * Узнайте больше об отдельных переводах в разделе [translate](/docs/core/class/methods/translation/translate) * Изучите [тип TranslateManyEntry](/docs/core/types/Entry) * Разберитесь со [структурой TranslateManyResult](/docs/core/types/translate-many-result)