Проблемы с использованием плагинов машинного перевода для SDL Studio через APIC#

Место общения программистов C#
Ответить
Anonymous
 Проблемы с использованием плагинов машинного перевода для SDL Studio через API

Сообщение Anonymous »

Я работаю над рабочим процессом перевода, используя решение SDL Studio посредством вызовов API. Работает просто отлично, наш инструмент может вызвать Studio для создания проекта перевода, заполнить его файлами для перевода, в целом все функции работают через API довольно хорошо.
Однако, когда я пытаюсь реализовать машинный перевод, предоставляемый такими плагинами, как Google Translation или Microsoft Translation, дела идут не так хорошо...
Мне удалось успешно добавить «поставщиков» в проекты, поскольку Studio их распознает, и когда вы открываете проект в Studio, вы можете использовать их для машинного перевода файлов. Но когда я пытаюсь сделать то же самое из API, это не работает.
Точнее, задача «предварительного перевода» завершается неудачей по разным причинам, в зависимости от используемого плагина:
  • Для Google заявленная ошибка заключается в том, что аутентификация не удалась, хотя она работает нормально, когда вы делаете это с помощью пользовательского интерфейса Studio. (Sdl.LanguagePlatform.TranslationMemoryApi.TranslationProviderAuthenticationException: неверные учетные данные. в GoogleCloudTranslationProvider.Studio.TranslationProviderFactory.CreateTranslationProvider(Uri TranslationProviderUri, String TranslationProviderState, ITranslationProviderCredentialStore credentialStore))
  • Для Microsoft возвращается ошибка, связанная с нулевым аргументом был предоставлен, хотя и здесь он работает нормально, если это делается из пользовательского интерфейса Studio. (System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта. в MicrosoftTranslatorProvider.Service.MicrosoftService.'TranslateAsync'd__3.MoveNext())
    AutomaticTask TranslateTask = project.RunAutomaticTask(targetFiles.GetIds(), AutomaticTaskTemplateIds.PreTranslateFiles);
Итак, я предполагаю, что «поставщик», добавленный через код, не полностью распознается при работе из-за пределов пользовательского интерфейса Studio, и поэтому некоторые функции, которые автоматически реализуются плагинами при работе с пользовательским интерфейсом Studio, такие как плагин Google, автоматически отправляющий аутентификацию при вызове, или плагин Microsoft, автоматически собирающий строки для перевода перед их отправкой, не срабатывают, если «поставщик» неправильно добавлен в проект.
Чтобы добавить поставщика перевода для данного пару языков в проект Studio, команда:

Код: Выделить всё

TranslationProviderReference reference = new TranslationProviderReference(uri, state, true);
TranslationProviderCascadeEntry entry = new TranslationProviderCascadeEntry(reference, false, true, true, 0);
pluginSettings.Entries.Add(entry);
Где «uri» — это URI, сгенерированный для соответствующего провайдера (в нашем случае плагин Google или Microsoft), а «state» — это строка JSON, содержащая все настройки, необходимые плагину.
Итак, он использует API Trados для создания нового тега MainTranslationProviderItem с использованием объекта TranslationProviderReference, затем помещает его в тег CascadeEntryItem с объектом TranslationProviderCascadeEntry и, наконец, добавляет его в настройки проекта. Все это задокументировано и работало в прошлом (правда, это было для другого плагина, Intento, и предыдущей версии Trados, 2021 года, но все работало нормально).
Так почему же это больше не работает? Что мне здесь не хватает? Как я уже говорил, в предыдущих версиях все работало нормально. Единственное отличие, которое я смог найти, это то, что Intento не требовала никакой строки JSON, вот и все.

Подробнее здесь: https://stackoverflow.com/questions/798 ... hrough-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»