Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何翻译几个php文件_Javascript_Php_Jquery_Xml_Translate - Fatal编程技术网

Javascript 如何翻译几个php文件

Javascript 如何翻译几个php文件,javascript,php,jquery,xml,translate,Javascript,Php,Jquery,Xml,Translate,我正在开发一个包含多个php文件的网站,使用一个带有翻译的xml文件。这样做的目的是用户在第一个页面中选择所需的语言,然后所有其他页面显示所选语言 我使用这个文件idioma.js来接收所选的语言id,并读取xml文件进行翻译 $('input').click(function() { language = $(this).attr('id'); $.ajax({ type: "post", url: 'validarporto.php',

我正在开发一个包含多个php文件的网站,使用一个带有翻译的xml文件。这样做的目的是用户在第一个页面中选择所需的语言,然后所有其他页面显示所选语言

我使用这个文件idioma.js来接收所选的语言id,并读取xml文件进行翻译

$('input').click(function() {
    language = $(this).attr('id');
    $.ajax({
        type: "post",
        url: 'validarporto.php',
        data: {
            'language': language
        },
        success: function(data) {
            //alert("---"+data);
        }
    });
    $.ajax({
        url: 'traducao.xml',
        success: function(xml) {
            $(xml).find('traducao').each(function() {
                var id = $(this).attr('id');
                var text = $(this).find(language).text();
                $("." + id).html(text);
            });
        }
    });
});
使用onclick调用此函数,方法是按所需语言的按钮。这很好用

这些是在my index.php中选择语言的按钮

  <form method="post" name='idioma' id='idioma'>
    <input type="button"  class="btn btn-primary sharp outline" onclick='function()'value='PT' id='pt' name='pt'></input>
    <input type="button"  class="btn btn-primary sharp outline" onclick='function()'value='EN' id='en' name='en'></input>
    <input type="button"  class="btn btn-primary sharp outline" onclick='function()'value='ES' id='es' name='es'></input>
  </form>
问题是现在。我需要保存该id并将其传递到下一个php文件,以便在不强制用户再次单击按钮的情况下自动将页面翻译给用户

还有一点我的traducao.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<traducoes>
    <traducao id='titulo1'>
        <pt>A melhor maneira de conhecer o melhor do Porto!</pt>
        <en>The best way to know the best in Porto!</en>
        <es>La mejor manera de experimentar lo mejor de Porto!</es>
    </traducao>
    <traducao id='titulo2'>
        <pt>Entradas gratuitas e descontos em mais de 100 atrações.</pt>
        <en>Free entries and discounts at over 100 attractions.</en>
        <es>Entrada gratuita y descuentos en más de 100 lugares de interés.</es>
    </traducao>
    <traducao id='titulo3'>
        <pt>Conheça mais, poupe mais!</pt>
        <en>Learn more, save more!</en>
        <es>Obtenga más, ahorrar más!</es>
    </traducao>

您可以在第一次单击按钮时将语言id保存在$\u会话变量中,以便以后可以访问它。

一旦端口验证了第一个Ajax请求,为什么不在响应中调用下一个函数

$('input').click(function () 
{
  language=$(this).attr('id');
  $.ajax({
    type:"post",
    url:'validarporto.php',
    data: {'language':language},
    success: function(data){
      //alert("---"+data);
      nextstep(language);
    }
  });

function nexstep(language){
      $.ajax
  ({
    url:'traducao.xml',
    success:function(xml)
    {
      $(xml).find('traducao').each(function()
      {
        var id = $(this).attr('id');
        var text = $(this).find(language).text();
        $("."+ id).html(text);
      });
    }
  });
}

});

我已经尝试过了,但是我无法进行自动翻译。如果您使用javascript访问XML,那么只需使用localStorage.setItemlanguage\u id、language\u id或cookie将语言id保存在本地存储中,所以你可以在每一页上看到它。我对这方面还不熟悉,我甚至不确定这是否是正确的翻译方法。你能给我解释一下怎么做吗?你可以有3个不同语言的php文件,每个文件都有一个,并且有定义页面内容的常量。例如,在pt.php中:definetitulo1,melhor maneira de conhecer o melhor do Porto!;因此,根据用户选择的语言,可以加载正确的翻译文件。用户第一次选择语言时,只需在会话中保存语言id,并使用它加载翻译文件。如何在调用下一个php文件时调用第二个函数?另一种方法是只使用cookie。但是,请提供一本词典,其中记录了您在Web应用程序中使用的所有cookie,以及将这些cookie与您的应用程序一起记录的含义。