2017-01-08 7 views
1

Google translate element는 처음로드 될 때만 내 페이지의 iframe을 변환합니다. iframe에 다른 페이지를로드하면 페이지가 대부분의 브라우저 (예 : Chrome)에서 번역되지 않습니다. 결과 웹 페이지가 iframe에 표시 될 수 없기 때문에 Google Translate iframe workaround을 사용할 수 없습니다 (Google에서 프레임 킷커를 사용하는 것 같습니다).google translate src가 다른 로컬 페이지로 변경되면 iframe이 번역되지 않습니다.

<div id="google"> 
    <span id="google_translate_element"></span> <span style="float: left;"> 
     <script id="translate1"> 
      function googleTranslateElementInit() { 
       googleTranslate = new google.translate.TranslateElement({ 
        pageLanguage : 'de' 
       }, 'google_translate_element'); 
      } 
     </script> 
     <script id="translate2" 
      src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"> 
     </script> 
    </span> 
</div> 
+0

도메인이나 다른 웹 사이트의 iframe은 맞습니까? –

+0

동일한 도메인에서 온 것입니다 (로컬 경로는 소스로 제공됨). –

답변

0

번역 된 페이지로 인해 Google 번역에 의해 전송 된 응답에 X-Frame-Options: DENY 헤더의 iframe에 표시 할 수 없습니다

여기 내 코드입니다.

내 솔루션은 iframe에게 번역 페이지를 가져 오지 서버에서 경로를 구현하고하는 것입니다

<iframe src="/translate?url=targetUrl"></iframe> 

당신은 X-프레임 - 옵션 주위에 얻을 수 :에 경로를 구현하여 헤더를 DENY 귀하의 서버가 콘텐츠를 가져 와서 사용자에게 전달하십시오 (예 : Flask).

def get_translate_url(url): 
    return "http://translate.google.com/translate?hl=bg&ie=UTF-8&u=%s&sl=de&tl=en" % url 

@app.route('/translate') 
def grabContentForMyIframe(): 
    url = request.args.get(url) 
    response = requests.get(get_translate_url(url)) 
    return response.content 
+0

Strato 서버에서이 경로를 구현하려면 어떻게해야합니까? 어떤 파일을 편집해야합니까? –

+0

운영 체제는 SunOS gaffer 5.10 Generic_142901-13 i86pc i386 i86pc Solaris입니다. –

+0

Strato는 Wordpress/정적 파일에만 사용되는 것처럼 보이기 때문에 가능하지 않다고 생각합니다. 서버 측 코드가 없습니다. 그래서 내 대답은 대답이 아닙니다. 사과. –