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

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

QA

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

본문

https://sir.kr/qa/497764

 

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

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

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

 

<?

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

?>

 

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

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

도움 부탁 드려요~ㅜ

이 질문에 댓글 쓰기 :

답변 2

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

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


<a href="#" onclick="doGTranslate('ko|ko');return false;" title="한국어" class="gflag nturl" style="background-position:-0px -200px;"><img src="http://gtranslate.net/flags/blank.png" 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="http://gtranslate.net/flags/blank.png" 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="http://gtranslate.net/flags/blank.png" 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="http://gtranslate.net/flags/blank.png" 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="http://gtranslate.net/flags/blank.png" height="16" width="16" alt="Vietnam"/></a>
<div id="google_translate_element2"></div>
 
<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);
    }
 
    var goog_te_TE = new google.translate.TranslateElement({
        // pageLanguage: locales.from,
        autoDisplay: false
    }, 'google_translate_element2');
 
    // 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);
 
    if (locales.from != locales.to) {
        doGTranslate(Object.values(locales).join('|'));
    }
}
</script>
<script type="text/javascript" src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script>
<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>

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

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

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

 

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

 

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

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 345
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT