【问题标题】:How detect actual language of webpage translated via Google translate?如何检测通过谷歌翻译翻译的网页的实际语言?
【发布时间】:2017-07-28 10:12:00
【问题描述】:

我需要检测翻译的语言,并在理想情况下制作一些可能适合正文的类。之后通过此类编辑网页的 CSS。我对 jQuery 或纯 JavaScript 的解决方案没有任何问题。 我需要这个,因为不同的语言有不同的单词长度,这会让我在设计上遇到问题。我需要像

一样解决这个问题
.language_cz .some_class{
  font-size: 14px;
}
.language_en .some_class{
  font-size: 16px;
}

我通过https://gtranslate.io/ 进行翻译。这是纯谷歌翻译。

翻译代码为:

   <div class="obal_mutace">
<span class="aktualni_mutace">CZ</span>
<div class="blok_mutace_in">
            <a href="#" onclick="doGTranslate('cs|cs');return false;" title="Czech" class="gflag nturl"><span data-id="CZ" class="polozka_mutace_in">CZ</span></a>
  <a href="#" onclick="doGTranslate('cs|en');return false;" title="English" class="gflag nturl"><span data-id="EN" class="polozka_mutace_in">EN</span></a>
  <a href="#" onclick="doGTranslate('cs|de');return false;" title="German" class="gflag nturl"><span data-id="DE" class="polozka_mutace_in">DE</span></a>
  <a href="#" onclick="doGTranslate('cs|ru');return false;" title="Russian" class="gflag nturl"><span data-id="RU" class="polozka_mutace_in">RU</span></a>
  <a href="#" onclick="doGTranslate('cs|fr');return false;" title="French" class="gflag nturl"><span data-id="FR" class="polozka_mutace_in">FR</span></a>
  <a href="#" onclick="doGTranslate('cs|it');return false;" title="Italian" class="gflag nturl"><span data-id="IT" class="polozka_mutace_in">IT</span></a>
  <a href="#" onclick="doGTranslate('cs|pt');return false;" title="Portuguese" class="gflag nturl"><span data-id="PT" class="polozka_mutace_in">PT</span></a>
  <a href="#" onclick="doGTranslate('cs|es');return false;" title="Spanish" class="gflag nturl"><span data-id="ES" class="polozka_mutace_in">ES</span></a>
  <div id="google_translate_element2"></div>
  <script type="text/javascript" src="funkce/transl_init.js?v=1.0.1"></script>
  <script type="text/javascript" src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script>
</div>

在“transl_init.js”中我有:

function googleTranslateElementInit2() {new google.translate.TranslateElement({pageLanguage: 'cs',autoDisplay: false}, 'google_translate_element2');}

/* <![CDATA[ */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('6 7(a,b){n{4(2.9){3 c=2.9("o");c.p(b,f,f);a.q(c)}g{3 c=2.r();a.s(\'t\'+b,c)}}u(e){}}6 h(a){4(a.8)a=a.8;4(a==\'\')v;3 b=a.w(\'|\')[1];3 c;3 d=2.x(\'y\');z(3 i=0;i<d.5;i++)4(d[i].A==\'B-C-D\')c=d[i];4(2.j(\'k\')==E||2.j(\'k\').l.5==0||c.5==0||c.l.5==0){F(6(){h(a)},G)}g{c.8=b;7(c,\'m\');7(c,\'m\')}}',43,43,'||document|var|if|length|function|GTranslateFireEvent|value|createEvent||||||true|else|doGTranslate||getElementById|google_translate_element2|innerHTML|change|try|HTMLEvents|initEvent|dispatchEvent|createEventObject|fireEvent|on|catch|return|split|getElementsByTagName|select|for|className|goog|te|combo|null|setTimeout|500'.split('|'),0,{}))
/* ]]> */

我在我的网页项目http://www.kalimera-recko.cz/中使用了它。我在搜索输入左侧的网页头部使用了谷歌翻译。

【问题讨论】:

    标签: javascript jquery css google-translate


    【解决方案1】:

    如果我理解你的问题是正确的,你想根据使用的语言来设置你的页面样式。

    在您的页面上,您在 html 标记上设置语言属性。

    <html class="js" style="height: 100%;" lang="cs">
    

    所以你可以在你的 css 中解决它:

    html[lang="cs"] .some_class
    

    [编辑]__________________

    设置了一个 cookie 如果翻译成英语,“googtrans”的值为 /cs/en,如果翻译成德语,则值为 /cs/de。 你可以用 javascript 或 jQuery 找出 cookie 的值

    document.cookie
    

    它返回一个字符串,您需要在其中搜索“googtrans”值。

    您可以通过以下方式获取语言:

    var cookie = document.cookie;
    var position = cookie.indexOf("googtrans");
    var language = cookie.substring(position+10, position + 16);
    

    如果您搜索值“;”的结尾,则可以优化此代码而不是使用固定数字。 但这会满足您的需要。

    您可能还应该使用 try/catch 并查看 cookie 是否存在,因为它对于您的原始语言不存在。

    【讨论】:

    • 但如果我通过谷歌翻译器翻译了页面,那么这个标签仍然是“cs”,此时的文本可能是英文。我尝试通过 jQuery 在单击时将类似的内容更改为某种语言,但是如果用户来到网络并更改语言然后就可以了,但是当他转到我的网络中的另一个页面时,翻译器会自动翻译网络的内容,而无需用户单击不同的语言,到他选择的第一个语言。
    • 啊,好吧。现在我知道你的问题出在哪里了。
    • 刚刚更新了我的答案。您需要字符串操作方面的帮助吗?
    • 要读取这个cookie的内容,我需要使用plugins.jquery.com/cookie ?
    • 没有。只有javascript很好。
    猜你喜欢
    • 2021-07-02
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多