如何检测通过谷歌翻译的网页的实际语言?

时间:2017-07-28 10:12:01

标签: javascript jquery css google-translate

我需要检测翻译的语言,理想情况下可以将某些课程改为正文。之后通过这个类编辑网页的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/上使用了它。我在搜索输入的左侧使用了Google翻译网页。

1 个答案:

答案 0 :(得分:1)

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

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

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

所以你可以用你的css来解决它:

html[lang="cs"] .some_class

<强> [编辑] __________________

设置了Cookie &#34; googtrans&#34;如果转换为englisch,则转换为值/ cs / en,如果转换为德语,则转换为te / cs / de。 你可以用javascript或jQuery

找出cookie的价值
document.cookie

它会返回一个字符串,您需要在其中搜索&#34; googtrans&#34;值。

您可以使用以下语言获取语言:

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

如果您搜索值的结尾,则可以优化此代码&#39 ;;&#39;而不是使用固定的数字。 但这将满足您的需求。

您也可以使用try / catch查看cookie是否存在,因为它不适用于您的原始语言。