2017-07-28 25 views
0

私は翻訳された言語を検出する必要があり、理想的にはいくつかのクラスを体にすることが必要です。その後、このクラスを介してWebページのCSSを編集します。私はjQueryや純粋なJavaScriptを使ったソリューションには問題ありません。 言語が異なると単語の長さが違うので、これが必要です。これはデザインに問題を引き起こす可能性があります。私はこれを解決する必要がありますGoogleで翻訳したウェブページの実際の言語をどのように検出するのですか?

.language_cz .some_class{ 
    font-size: 14px; 
} 
.language_en .some_class{ 
    font-size: 16px; 
} 

私はこれをhttps://gtranslate.io/で翻訳します。これは純粋なGoogleの翻訳です。

変換のコードがある: "transl_init.js" で

<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> 

私が持っている:

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,{})) 
/* ]]> */ 

私は自分のWebページプロジェクトhttp://www.kalimera-recko.cz/でそれを使用しました。私は検索入力から左のウェブの頭の中でGoogleの翻訳を使用しました。

答えて

1

あなたの質問が正しいと分かっている場合は、使用している言語に従ってページのスタイルを設定してください。

ページでは、htmlタグにlanguage属性を設定します。

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

だから、これであなたのCSSでそれに対処することができます

html[lang="cs"] .some_class 

[EDIT] __________________クッキーが値に "googtrans" に設定されて

/CS/EN englischに翻訳され、ドイツ語に翻訳された場合は/ cs/deになります。 あなたはそれはあなたが「googtrans」の値を検索するために必要な文字列を返す

JavaScriptやjQueryの
document.cookie 

でCookieの値を調べることができます。

あなたはこれで言語を取得することができます:

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

あなたは価値の終わりを検索する場合、このコードを最適化することができます「;」固定数を使用する代わりに しかし、これはあなたが必要とするものです。

また、try/catchを使用して、元の言語では存在しないため、Cookieが存在するかどうかを確認する必要があります。

+0

しかし、私がGoogleトランスレータを介してページを移管した場合、このタグはまだ "cs"であり、テキストはこの時点ではおそらく英語です。 jQueryをクリックしていくつかのlangugeに変更してみましたが、ユーザーがウェブにアクセスして言語を変更してもOKですが、彼がウェブ内の別のページに移動したときに、彼の最初の選ばれた言語に、 –

+0

ああ、大丈夫です。今私はあなたの問題がどこにあるかを見ます。 – Ina

+1

私の答えを更新しました。あなたは文字列の操作に助けが必要ですか? – Ina

関連する問題