Добрый вечер коллеги!
Есть задача: В текстовом поле хранится название компании на английском, его нужно перевести на наш могучий русский ("как слышится", русскими буквами). Например: Apple -> Эпл, Сони -> Сони, Samsung -> Самсунг.
Есть ли простой способ это реализовать? На сколько понял модуль translitiration такого не умеет.
Спасибо.
Комментарии
Написать небольшой процессор, который будет "переводить" по табличке соответствий. Ну, или чуть больший процессор, если нужна доп. логика (учет пред./след. звуков, склонения, любое морфирование).
Да, думал об этом, но написание своего процессора не вписывался в рамки "простой способ"
Спасибо за ответ!
Самое надежное: работать с оригинальными названиями.
Но если без перевода никак, то два самых простых пути:
1. При ограниченном наборе названий добавить свою таблицу транслитерации. При этом сразу же там предусмотреть возможность склонения по родам, как это принято в "великом и могучем". Так же, если предполагается ручной ввод названий, такая таблица позволит предусмотреть самые характерные ачепятки (Frod вместо Ford, Aple -> Apple, Phillips -> Philips и т.д.)
2. Использовать сторонние API. Дока по Google Translation: https://cloud.google.com/translate/docs/
Спасибо за ссылку elia
2. Пока протестировал:
Яндекс переводчик (https://tech.yandex.ru/translate/doc/dg/reference/translate-docpage/) и Яндекс словари (https://tech.yandex.ru/dictionary/doc/dg/reference/lookup-docpage/).
Первый переводить Samsung как Самсунг отказывается (хотя translate.yandex.ru переводит как нужно).
Второй переводит отдельные слова, но если подсунуть что-то более сложное, переводить отказывается (да и не для этого он).
1. Склонять и проверять на правильность введенных данных не нужно, т.к. поле заполняется исключительно модератором. Все похоже сводится к тому, что готовых вариантов под задачу еще нет.
Так почему бы модератору не заполнять сразу русский транслит? А ещё стоит учитывать, что задача вовсе не так проста, как кажется. Взять хотя бы Xiaomi или Hyundai.
Да уже вкусил, взял простой процессор (пример кода php: https://ploshadka.net/transliteration/), добавил свои переводы букв, далее добавил основные слова как они звучат по русски (как их люди ищут ). Получившийся скрипт положил в Rules с запуском после создания ноды.