谷歌翻译插件使用时 遇到的问题

最近使用谷歌翻译的插件,发现直接使用网上的资源可能会出现链接超时错误,附上本地静态资源链接:

链接:https://pan.baidu.com/s/12QcRb-WOY0eSc4OhlcgG0g

提取码:ji90

首先是成功后出现的调用资源的顺序,可以看看自己的项目是在哪一步,没有被调用到什么资源。

正确的调用顺序

第一次遇见的BUG ——没有加载完整资源

看自己的前端network,参考上面的正确的调用顺序,发现自己的页面调用到element.js?cb=goodleTranslateElementInit后面就没调用其他翻译中的资源了。
(正确的应该会调用element_**.js,element_main.js、element.js)


调用的资源只有自己写的element.js?cb=goodleTranslateElementInit

有可能是你element.js、element_main.js、你选择的那个语言编码js(比如中文是main-ZH-cn.js),看看这几个文件中有没有出现resourceUrl这个变量。如果有,有两种方法:
1.去掉所有element.js、element-main.js、你所用到的翻译语言js(比如英文是main_en.js)、的resouceUrl,主要是下面贴代码的这几个文件。


注意这里的资源位置变量

2.第二种方法是我在项目中遇见的,就是把所有的调用资源的语句前面加上resourceUrl,,,,,,,,,

下面是这几个需要去掉或加上的js文件,大家根据自己的情况而定:
注意resouceUrl + "/js/te_bk.gif" 需要在原来的js前加一个"/",不要出现路径拼接的问题

element.js ———位置在文件的最后面

        var b = s + h;
        c._pah = h;
        c._pas = s;
        c._pbi = resourcesUrl + '/js/te_bk.gif';
        c._pci = resourcesUrl +'/js/te_ctrl3.gif';
        c._pli = resourcesUrl +'/js/loading.gif';
        c._plla = h+'/translate_a/l';
        c._pmi = resourcesUrl +'/js/mini_google.png';
        c._ps = resourcesUrl + '/css/translateelement.css';
        c._puh = resourcesUrl + '/translate.google.com';
        _loadCss(c._ps);
        if(localLanguage == 'en'){
            _loadJs(resourcesUrl + '/js/main.js');
            
        }else{
            _loadJs(resourcesUrl + '/js/main_'+localLanguage+'.js');
        }

element_ZH-CN.js ————位置同样在项目的后面

        else {
            var C = g._pas + g._pah + A,
                D = document.createElement("script");
            D.type = "text/javascript";
            D.charset = "UTF-8";
            D.src =  resourcesUrl + "/js/element_main.js";
            var E = document.getElementsByTagName("head")[0];
            E || (E = document.body.parentNode.appendChild(document.createElement("head")));
            E.appendChild(D)
        }
        e("google.translate.m", f);
        e("google.translate.v", h)
    };

main.js————同样在项目最后

        else {
            var D = h._pas + h._pah + B,
            E = document.createElement("script");
            E.type = "text/javascript";
            E.charset = "UTF-8";
//            E.src = D;
            E.src = resourcesUrl + "/js/element_main.js";
            var F = document.getElementsByTagName("head")[0];
            F || (F = document.body.parentNode.appendChild(document.createElement("head")));
            F.appendChild(E)
        }
        f("google.translate.m", g);
        f("google.translate.v", k)
    };
}).call(window)

第二次遇见的BUG

localLanguage变量未定义

在网上搜这个error可能是因为该变量上一行的拼写错误,于是我localLanguage定义放在了第一行,,,,,结果还是不行,最后发现截图中选中的那条引用语句位置不对。


引用js位置不对

这条js引用应该写在


写在初始化js语句的后面

让localLuanguage去调用系统中的语言,不去使用谷歌翻译插件。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。