JavaScript / jQuery - получите текст и переведите его - PullRequest
5 голосов
/ 22 марта 2011

Можно ли использовать jQuery для получения текста из элемента и перевода его на другие языки?

До

<p>Hello</p>

После

<p>bonjour</p>

Ответы [ 7 ]

8 голосов
/ 22 ноября 2013

Используйте этот плагин JQuery http://www.openxrest.com/translatejs

1 - Включите класс "trn" в текст, который вы хотите перевести:

<span class="trn">text to translate</span>

2 - Определите словарь:

var dict = {
  "text to translate": {
    pt: "texto para traduzir"
  },
  "Download plugin": {
    pt: "Descarregar plugin",
    en: "Download plugin"
  }
}

3 - Перевести все тело страницы:

var translator = $('body').translate({lang: "en", t: dict}); //use English

4 - Изменить на другой язык:

translator.lang("pt"); //change to Portuguese
3 голосов
/ 22 марта 2011

Используйте API перевода Google.Легко использовать.Следующее переводит с испанского на английский.Чтобы перевести с и на другие языки, просто измените 'es' и 'en'

<div id="content"></div>

google.load("language", "1");

function initialize() {
    var content = document.getElementById('content');
    content.innerHTML = '<div id="text">Hola, me alegro mucho de verte.<\/div><div id="translation"/>';
    var text = document.getElementById("text").innerHTML;
    google.language.translate(text, 'es', 'en', function(result) {
        var translated = document.getElementById("translation");
        if (result.translation) {
            translated.innerHTML = result.translation;
        }
    });
}
google.setOnLoadCallback(initialize);

Проверьте рабочий пример на http://jsfiddle.net/wJ2QP/1/

2 голосов
/ 02 мая 2012

Используйте переводчик Bing, так как бесплатный Google Translate API был прекращен 1 декабря 2011 года

2 голосов
/ 22 марта 2011

попробуйте гугл переводчик: http://code.google.com/apis/language/translate/overview.html

0 голосов
/ 22 апреля 2018

Почему бы не попробовать это:

var body = $("body");
var html = body.html();
var nhtml = html.split(" ");
var dict = [];
for (var i = 0; i < nhtml.length; i++) {
    nhtml[i].replace(dict[index]);
}

Может заменить все.

0 голосов
/ 23 ноября 2016

В этом решении PHP / JS вы должны использовать включить языковые файлы PHP и установить язык в сеансе / cookie , а не в $ _GET.Ради простоты я сделаю это для файла

index.php

<?php
$lang = $_GET['lang'];

if ($lang == 'fr'){
    $w = array(
        'Trouvé',
        ' non trouvé.',
        'Erreur. Veuillez réessayer.'
    );  
}else if($lang == 'en'){
    $w = array(
        'Found',
        ' not found.',
        'Error. Please try again.'
    );  
}else{
    $w = array(
        'Trouvé',
        ' non trouvé.',
        'Erreur. Veuillez réessayer.'
    );  
}
?>
<!DOCTYPE html>
<html lang="en">

<head>
....................
<body>
....................
    <script type="text/javascript">
        /*  Translate JS
            Declare JS variables for translation in PHP file as below (Global vars outside $(document).ready). 
            Inside JS file call the variable as $.lang_mynamespace.var_name
        */
        $.lang_scan = { 
            found_js:"<?=$w[0];?>",
            not_found_js:"<?=$w[1];?>",
            error_js:"<?=$w[2];?>"
        };  
    </script>
</body>
</html>

JS-файла

$(function() {
    $("#scan_result").on('change', function(){

        //check number
        $.ajax({
            url: "check.php",
            dataType: "json",
            type: "post",
            data: {'scan_no': scan_value} ,
            success: function (response) {
                if (response.status == true){
                    alert("Scan no. " + response.scan_no + $.lang_scan.found_js);
                }else{
                    alert("Scan no. " + response.scan_no + $.lang_scan.not_found_js);                      
                }
            },
            error: function(jqXHR, textStatus, errorThrown) {
               //ajax error 
               alert($.lang_scan.error_js);            
            }
        }); 

    }); 
});

check.phpвернуть JSON

{"scan_no": "123", "status": true/false}
0 голосов
/ 22 марта 2011

Вы можете использовать Javascript API Google Translate.

<p id="some">Hello</p>
<input id="trans" value="Translate" type="button">

<script>
   $('#trans').click(function() {
     google.language.translate($('#some').html(), 'en', 'fr', function(result) {
         $('#some').html(result.translation);
     });
   });
</script>

Вам нужно будет загрузить библиотеку js в раздел HEAD вашей страницы, чтобы использовать API.

...