如何检测通过 Google translate 翻译的网页的实际语言?
How detect actual language of webpage translated via Google translate?
我需要检测翻译后的语言,最好是 class 到 body。之后通过这个 class 编辑 CSS 网页。我对 jQuery 或纯 JavaScript 的解决方案没有问题。
我需要这个,因为不同的语言有不同的单词长度,这会让我在设计上遇到问题。我需要像
这样解决这个问题
.language_cz .some_class{
font-size: 14px;
}
.language_en .some_class{
font-size: 16px;
}
我通过 https://gtranslate.io/ 翻译了这篇文章。这是纯Google翻译。
翻译代码为:
<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 翻译。
如果我理解你的问题是正确的,你想根据使用的语言设置页面样式。
在您的页面上,您在 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
它 returns 一个字符串,您需要在其中搜索 "googtrans" 值。
你可以用这个获取语言:
var cookie = document.cookie;
var position = cookie.indexOf("googtrans");
var language = cookie.substring(position+10, position + 16);
如果您搜索值“;”的结尾,则可以优化此代码而不是使用固定数字。
但这将满足您的需求。
您可能还应该使用 try/catch 并查看 cookie 是否存在,因为它不存在于您的原始语言。
我需要检测翻译后的语言,最好是 class 到 body。之后通过这个 class 编辑 CSS 网页。我对 jQuery 或纯 JavaScript 的解决方案没有问题。 我需要这个,因为不同的语言有不同的单词长度,这会让我在设计上遇到问题。我需要像
这样解决这个问题.language_cz .some_class{
font-size: 14px;
}
.language_en .some_class{
font-size: 16px;
}
我通过 https://gtranslate.io/ 翻译了这篇文章。这是纯Google翻译。
翻译代码为:
<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 翻译。
如果我理解你的问题是正确的,你想根据使用的语言设置页面样式。
在您的页面上,您在 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
它 returns 一个字符串,您需要在其中搜索 "googtrans" 值。
你可以用这个获取语言:
var cookie = document.cookie;
var position = cookie.indexOf("googtrans");
var language = cookie.substring(position+10, position + 16);
如果您搜索值“;”的结尾,则可以优化此代码而不是使用固定数字。 但这将满足您的需求。
您可能还应该使用 try/catch 并查看 cookie 是否存在,因为它不存在于您的原始语言。