Как пользоваться Translate API в Yandex.Cloud

Nikolay Matrosov

--

Пара примеров использования АПИ из Python

Для начала нам понадобится получить API-ключ, для авторизации запросов. Я не буду повторяться, процесс со скриншотами подробно описан в моем посте про SpeechKit. Прочитайте и возвращайтесь.

Перевод массива текстов

Тексты для перевода должны лежать в in.csv. В колонке с именем соответствующим исходного языка, в примере это ru.

20 текстов для примера взяты из корпуса https://rus-ltc.org/static/html/about.html

Ниже приведен код на Python 3 с довольно подробными комментариями.

В итоге мы получим файл out.csv в котором напротив каждого исходного текста будет указан его перевод на целевой язык, в примере это английский — en.

Перевод шаблонов

Тут я бы хотел скорее не приводить код, потому что он будет очень похож по сути на тот что выше, а обсудить подход к подготовке текстов.

И так пример:

У нас есть строковые шаблоны в нашем приложении и мы хотим их перевести.

"Корзина пуста"
"В корзине {{count}} покупок"

Если мы попробуем в лоб скормить эти строки переводчику, то получим следующее:

ru "Корзина пуста"
en "The shopping cart is empty"
ru "В корзине {{count}} покупок"
en "In the shopping cart {{count}} "

Текст без токенов подстановки переведен нормально, а вот фраза с {{count}} переведена довольно странно.

Ну что ж, в этот момент мы вспоминаем про то, что у Translate API есть режим работы не с простым текстом, а с HTML-разметкой. Попробуем ее и посмотрим, что получится.

ru "В корзине <span name="count">count</span> покупок"
en "In <span name="count">the count</span> shopping cart"

Все равно бред какой-то. А что если подставить вместо {{count}} его значение.

ru "В корзине 10 покупок"
en "There are 10 purchases in your cart"

Отлично, а теперь сохранив разметку мы получим отличный переиспользуемый шаблон!

ru "В корзине <span name="count">10</span> покупок"
en "<span name="count">There are 10</span> purchases in your cart"

НЕТ))

В общем у меня не получилось сделать готовое решение для i18n приложений. В любом случае понадобится пройтись по результатам руками и редактировать их. Возможно у вас будут какие-то идеи и предложения на этот счет и может вы поделитесь ими в коментах.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Responses (1)

Write a response