2017-07-28 286 views
0

我需要檢測翻譯的語言,並理想地讓一些類可能是正文。之後,通過這個類編輯網頁的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

如果我理解你的問題是正確的,你想根據使用的語言來設置你的頁面風格。

在您的頁面上,您可以在html標籤上設置語言屬性。

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

所以,你可以用這個在你的CSS解決這個問題:

html[lang="cs"] .some_class 

[編輯] __________________

設置cookie 「googtrans」 的值/ CS/EN如果翻譯成英文,並且如果翻譯成德文,則翻譯成值/ cs/de。 你可以找到Cookie的JavaScript或jQuery的

document.cookie 

它返回你需要搜索「googtrans」值的字符串值。

你可以得到這樣的語言:

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

這個代碼可以,如果你搜索值的末尾進行優化「;」而不是使用固定數字。 但這會做你所需要的。

您也可以使用try/catch來查看cookie是否存在,因爲它不存在您的原始語言。

+0

但是,如果我通過谷歌翻譯器翻譯頁面,那麼這個標籤仍然是「CS」,文本在這個時候可能是英語。 我試圖通過jQuery改變點擊一些languge,但如果用戶來到網絡和改變語言然後確定,但是當他去我的網頁中的另一個頁面,然後翻譯自動翻譯網站的內容,沒有用戶點擊不同的語言,他的第一選擇的語言。 –

+0

啊,好的。現在我看到你的問題在哪裏。 – Ina

+1

剛剛更新了我的答案。你需要字符串操作的幫助嗎? – Ina