Как использовать Google Translate с CKEditor? - PullRequest
3 голосов
/ 22 июня 2011

Я успешно создал код JavaScript для использования API языка AJAX Google для перевода простого текста.Теперь я хочу перевести текст в экземпляре CKEditor, как это сделать?

1 Ответ

2 голосов
/ 22 июня 2011

Во-первых, я бы не советовал использовать Google AJAX Language API, поскольку по состоянию на декабрь он устарел.Вместо этого вы можете использовать Microsoft Translator, хотя API не так хорош.

По сути, все, что вам нужно сделать, это получить текст из редактора, перевести его и вставить обратно.

Получить текст из редактора:

Существует множество способов сделать это, но вы можете использовать:

CKEDITOR.instances.editor1.getData()

Где editor1 - этоИдентификатор вашего редактора.Если вы используете jQuery, вы можете сделать:

$('#editor1').val()

Перевести его и вставить обратно:

Это так же просто, как вызвать API Googleи в настройке обратного вызова содержимое редактора:

 google.language.translate(textToTranslate, translateFrom, translateTo, function(response) {
            if (response.translation) {
                CKEDITOR.instances.editor1.setData(response.translation);
            }
        });

или с помощью jQuery:

 google.language.translate(textToTranslate, translateFrom, translateTo, function(response) {
            if (response.translation) {
                $('#editor1').val(response.translation);
            }
        });

Соберите все это вместе в функцию

var translate = function(editor, translateFrom, translateTo) {
    var textToTranslate = editor.getData();

    google.language.translate(textToTranslate, translateFrom, translateTo, function(response) {
            if (response.translation) {
                editor.setData(response.translation);
            }
        });
};
...