User Tools

Site Tools

Translations of this page:

ru:google_translate

Google translate

В скрипт встроена возможность автоматически перевести ваши тексты на другие языки используя Google Translate API. Обратите внимание что его использование платное (Google берет за это деньги, а не скрипт) и для этого вам понадобится зайти на https://developers.google.com/translate/v2/faq и получить свой Server API Key. Обратите внимание, именно Server, а не Browser.

Translation of Existing DB

Вероятно у вас уже есть готовая база, которую вы хотели бы перевести. Для этого надо зайти в ssh на том домене, где нужен перевод в scj/bin и запустить

php rot.php action=translate

Обратите внимание, что если сайт, на котором вы запускаете команду - слейв, то и результаты будут сохранены туда же. Это удобно тем например, что например у вас есть мастер с английскими описаниями. Вы добавляете слейв и переводите его описания на немецкий например.

После запуска комманды скрипт спросит вас какое поле вы хотите переводить (да, если у вас есть и альт и деск к галере то перевод надо будет запустить 2 раза), а так же в какое поле сохранять результат. А так же API key который вам надо получить до начала данного процесса.

После этого он спросит в каком режиме пеерводить - stops, log, fast stops - значит делаем остановку после каждой фразы, если перевод не подходит - можно интерактивно его поправить и нажать ентер дабы его сохранить в базу. log - это перевод без запроса подтверждения, но с выводом текста, fast - ничего не спрашивает, ничего не выводит лишнего, только максимально быстро переводит.

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

Translation of New Entries

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

Надо настроить перевод нужных полей (возможно вы хотите переводить только description например) в Import Replacements.

If this field = URL
Contains this value = http (те по факту все добавляемые галеры)
Then Search For - * (* тут значит полностью все поле)
in This Field 	- Custom Vars 1 (те заменять данное поле)
And Replace it With - external::http://YOURDOMAIN/scj/bin/rot.php?action=translate_text&text={DESCRIPTION}&source_lng=en&target_lng=de&api_key=YOUR_API_KEY (заменяем мы результатом который возвратит этот урл)

Что значит для каждой импортируемой галеры скрипт запросит указанный урл и поле Custom Vars1 будет заменено значением которое вернет этот урл. Те в Custom Vars 1  - у нас будет немецкий перевод текста из деска. 

В данном урле есть следующие особенности

  * В начале стоит external:: - это специальный префикс, который дает скрипту понять что надо запросить внешний урл, а не просто заменить данным текстом поле.
  * YOURDOMAIN - ....
  * {DESCRIPTION} - будет заменено непосредственно на описание галеры
  * source_lng=en&target_lng=de - где вам надо подставить значения откуда куда вы переводите.
  * YOUR_API_KEY - заменить на ваш ключ

Таким образом при добавлении контента к нему будут применено данное правило и каждая новая галера будет получать перевод в деска в поле Custom Vars 1 .

Обратите внимание, что в качестве поля куда сохранять результат можно выбрать поля слейва. Те если у вас мастер английский, а слейв немецкий - достаточно на мастере настроить данное правиль и сохранять результат в description (slave name) и на слейве галеры будут переведенными.

Почему делано через Import Replacements: возможности такого перевода довольно ограничены и он не всегда хорош. Кроме того возможно вы заходитете как-то иначе организовать перевод, возможно кешировать результаты каких-то фраз и тп. Таким образом можно будет всегда вписать свой УРЛ, условно external::http://YOURDOMAIN/my_script.phptext={DESCRIPTION} который будет переводить лучше или каким-то образом дополнительно обрабатывать строку.

Кроме того, как видно в этом АПИ ключ хранится в базе. Если вы задумаете кому-то передать базу, это будет не лучшей идеей тк кто-то сможет узнать ваш ключ. Вы можете например напистаь отдельный скрипт для перевода и хранить ключ там, на другом серваке и тп - как угодно.

Те такой вариант дает множество вариантов работы с импортируемым текстом.

ru/google_translate.txt · Last modified: 2014/01/29 18:18 (external edit)