테스트 사이트 - 개발 중인 베타 버전입니다

구글 자동번역에서 현재언어를 표시하는 방법 문의드려요. 채택완료

GNUAPP 2년 전 조회 2,730

https://sir.kr/qa/497764

 

위 게시물을 보고 들레아빠님께서 공개한 소스를 이용해서 페이지를 자동번역하고 있어요.

만약 일본어로 페이지를 바꾸었을때 현재 페이지에 적용된 언어가 어떤 언어인지를

변수를 가져올 방법이 있을까요?

 

$language = "추출된 현재언어";

?>

 

셀렉트폼으로 언어 바꾸는데, 페이지를 새로고침 하였을때

셀렉트폼에서 현재언어 표시가 되지 않아서 문의를 드려요.

도움 부탁 드려요~ㅜ

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
2년 전

기존 선택된 언어코드에 대해 쿠키 또는 스토리지 같은 저장매체의 이용을 생각해볼수 있고

다음은 sessionStorage 를 사용해 동작하도록 하는 방법중 하나입니다.

</p>

<p><a href="#" onclick="doGTranslate('ko|ko');return false;" title="한국어" class="gflag nturl" style="background-position:-0px -200px;"><img src="<a href="http://gtranslate.net/flags/blank.png"" target="_blank" rel="noopener noreferrer">http://gtranslate.net/flags/blank.png"</a> height="16" width="16" alt="한국어"/></a>

<a href="#" onclick="doGTranslate('ko|en');return false;" title="English" class="gflag nturl" style="background-position:-0px -0px;"><img src="<a href="http://gtranslate.net/flags/blank.png"" target="_blank" rel="noopener noreferrer">http://gtranslate.net/flags/blank.png"</a> height="16" width="16" alt="English"/></a>

<a href="#" onclick="doGTranslate('ko|zh-CN');return false;" title="中文" class="gflag nturl" style="background-position:-300px -0px;"><img src="<a href="http://gtranslate.net/flags/blank.png"" target="_blank" rel="noopener noreferrer">http://gtranslate.net/flags/blank.png"</a> height="16" width="16" alt="中文"/></a>

<a href="#" onclick="doGTranslate('ko|ja');return false;" title="日本語" class="gflag nturl" style="background-position:-700px -100px;"><img src="<a href="http://gtranslate.net/flags/blank.png"" target="_blank" rel="noopener noreferrer">http://gtranslate.net/flags/blank.png"</a> height="16" width="16" alt="日本語"/></a>

<a href="#" onclick="doGTranslate('ko|vi');return false;" title="Việt Nam" class="gflag nturl" style="background-position:-200px -400px;"><img src="<a href="http://gtranslate.net/flags/blank.png"" target="_blank" rel="noopener noreferrer">http://gtranslate.net/flags/blank.png"</a> height="16" width="16" alt="Vietnam"/></a>

<div id="google_translate_element2"></div></p>

<p> </p>

<p><script type="text/javascript">

function googleTranslateElementInit2() {

    var locale_default = 'ko';

    var locales = window.sessionStorage.getItem('locales');

    if (locales == null) {

        locales = {from: locale_default, to: locale_default};

        window.sessionStorage.setItem('locales', JSON.stringify(locales));

    } else {

        locales = JSON.parse(locales);

    }</p>

<p> </p>

<p>    var goog_te_TE = new google.translate.TranslateElement({

        // pageLanguage: locales.from,

        autoDisplay: false

    }, 'google_translate_element2');</p>

<p> </p>

<p>    // var goog_te_combo = document.querySelector('.goog-te-combo');

    // if (goog_te_combo != null) {

    //     goog_te_combo.addEventListener('change', function () {

    //         locales.to = this.value;

    //         if (locales.to == '') {

    //             locales.to = locale_default;

    //         }

    //         window.sessionStorage.setItem('locales', JSON.stringify(locales));

    //     });

    // }

    

    setInterval(function () {

        // var goog_te_TE = google.translate.TranslateElement.getInstance(); // from: o, to: j

        locales.from = goog_te_TE.o;

        locales.to = goog_te_TE.j;

        window.sessionStorage.setItem('locales', JSON.stringify(locales));

    }, 1000);</p>

<p> </p>

<p>    if (locales.from != locales.to) {

        doGTranslate(Object.values(locales).join('|'));

    }

}

</script></p>

<p><script type="text/javascript" src="<a href="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script>" target="_blank" rel="noopener noreferrer">https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script></a>

<script type="text/javascript">

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

/* ]]> */

</script></p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

복스리
2년 전

span 테그 id를 보시면 :1.finishTargetLang 로 되어있네요. 

그아래 테그의 class를 보시면 VIpgJd-ZVi9od-xl07Ob-lTBxed 요렇게 되어있는데요. 

jquery 를 사용해서.. 하면될거 같습니다.

 

var langguage = $(':1.finishTargetLang').find("span").eq(0);

 

요렇게 한번해보시기 바랍니다. (:1.finishTargetLang 아이디 안에 span테그를 찾아서. 0배열의 내용을 langguage 변수에 할당)

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인