Однако, когда я пытаюсь реализовать машинный перевод, предоставляемый такими плагинами, как 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, команда:
Код: Выделить всё
TranslationProviderReference reference = new TranslationProviderReference(uri, state, true);
TranslationProviderCascadeEntry entry = new TranslationProviderCascadeEntry(reference, false, true, true, 0);
pluginSettings.Entries.Add(entry);
Итак, он использует API Trados для создания нового тега MainTranslationProviderItem с использованием объекта TranslationProviderReference, затем помещает его в тег CascadeEntryItem с объектом TranslationProviderCascadeEntry и, наконец, добавляет его в настройки проекта. Все это задокументировано и работало в прошлом (правда, это было для другого плагина, Intento, и предыдущей версии Trados, 2021 года, но все работало нормально).
Так почему же это больше не работает? Что мне здесь не хватает? Как я уже говорил, в предыдущих версиях все работало нормально. Единственное отличие, которое я смог найти, это то, что Intento не требовала никакой строки JSON, вот и все.
Подробнее здесь: https://stackoverflow.com/questions/798 ... hrough-api
Мобильная версия