Q&A

CMS/프레임워크 XE 1.x
개발 언어 PHP 7.4

안녕하십니까.

 

물어 볼곳은 여기 뿐이라서

 

염치 불구하고 질문드려 봅니다.

 

눈팅하면서 잘 살고 있는 좋은아빠되기입니다.

 

오늘 홈페이지 트래픽이 갑자기 증가해서 보니깐.

 

제가 다국어 지원을 하고 있었더라구요..

 

이걸 구글 크롤러에서 서로 다른 페이지로 인식을 하고 마구 마구 긁고 있던데...

 

 

/xe/index.php?l=fr  <---프랑스어

/xe/index.php?l=en <---영어

/xe/index.php?l=jp  <---일본어

 

이런식이더라구요.

 

그래서 저는

 

관리자 메뉴 - 설정 - 일반에서

 

[한국어]를 제외하고 체크 해제하였는데요.

 

XE 기준으로(제 사이트 기준)

 

/xe/index.php?l=jp  <---일본어

 

이렇게 접근을 하면

 

영어로 메뉴가 나와 버리네요.

 

즉, 지원하지 않은 언어에 대해서는 영어가 기본값이 되어 버리는것 같습니다.

 

본 라이믹스 홈페이지에서 테스트 해보니깐...

 

기본값이 한국어(ko)로 되어 있는것 같네요...(l=en 하면 영어도 열리네요. ㅎㅎㅎ)

 

그래서.. 이걸 어디에서 손보면 될지 몰라서 질문 드립니다.

 

 

질문을 요약하면..

 

지원하지 않은 다국어 l= 파리미터로 접근하면

 

기본값을 ko 한국어로 설정하고 싶습니다.

 

정리하면

 

/xe/index.php?l=jp 이렇게 접근하면 /xe/index.php?l=ko 이렇게 작동하게 하고 싶네요.

 

물론 파리미터는 안보여도 됩니다. ㅎㅎㅎ

 

도움 부탁 드립니다.

 

미리 감사합니다.

 

ps : 여기 저기 파일 열어 보고 찾아 보고 있겠습니다.

 

ps2 :  자문 자답입니다.

 

xe/classes/context/Context.class.php 파일에

 

 

 

대략 318번 라인에...

 

 

 

        // if still lang_type has not been set or has not-supported type , set as English.
        if(!$this->lang_type)
        {
            $this->lang_type = 'ko';
        }
        if(is_array($lang_supported) && !isset($lang_supported[$this->lang_type]))
        {
            $this->lang_type = 'ko';
        }

 

위와 같이 두부분에 ko로 바꾸니깐 일단 작동을 하네요.

 

초기값은 en 이었습니다.

 

저는 잘 작동합니다만...

 

정상 작동을 보증하지는 않습니다. ㅎㅎㅎ

 

그냥 초기값 건드린거라서.. 큰 문제는 없지 싶은데..

 

일단 저는 잘 됩니다.

 

꾸준히 사용해보고 문제 생기면

 

본문 내용 수정해 두겠습니다.

 

참고만 부탁 드립니다.

 

ps3 : 위 설정은 기본값을 건드린것으로...

 

다른 언어 지원과는 관계가 없습니다.

 

언어 설정에서 영어 지원 설정을 해두시면.. 정상적으로 영어 작동을 하네요...

 

다만 지원하지 않은 언어로 들어가면... 강제로 ko로 바뀝니다.

좋은아빠되기입니다.

댓글 8

  • 전체 사이트 설정] 시스템 설정->고급 설정->기본 언어 선택

    도메인단위 설정] 사이트 설정->목록중 수정 원하는 사이트 선택후 기본 언어 선택

  • @YJSoft

    XE에는 없는 메뉴 같습니다. 제가 못 찾은건지....

     

    댓글 감사합니다.

  • XE는 해당 부분을 변경할 수 없습니다.

  • @기진곰

    설정 메뉴는 없는것 같고...

     

    그래서 수작업으로 코드 수정을.... ㅠ.ㅠ

     

    댓글 감사합니다.

  • @좋은아빠되기

    Context.class.php에서 lang_type = 'en' 이라고 기본값 지정하는 곳을 모두 'ko'로 바꾸시면 될 거예요.

    사용자가 지정한 기본 언어를 무시하고 무조건 영어가 나오도록 하는 바람에,

    다국어를 쓰지 않는 사이트마저 다국어 문서 취약점에 노출시킨 병크가 바로 이 부분이었죠. ㅎㅎ

  • @기진곰

    설정을 더 바꾸어야 하는 부분이 또 있나 보네요. ㅎㅎㅎ

    다시 한번 잘 찾아 보겠습니다.

     

    감사합니다.

  • @기진곰

    다시 확인해 봤습니다.

     

                $this->db_info->lang_type = $site_module_info->default_language;
                if(!$this->db_info->lang_type)
                {
                    $this->db_info->lang_type = 'en';
                }
                if(!$this->db_info->use_db_session)
                {
                    $this->db_info->use_db_session = 'N';
                }

     

    여기에 en이 있기는 한데... 이건..

     

    db_info->lang_type = 'en'; 이렇게 DB관련처럼 보이네요.

     

    이건 수정하면 안될것 같아서.. 그냥 일단 두는게 맞을꺼 같습니다.

     

    짧은 지식으로 막 수정하면 사고 칠거 같아서.. 겁나네요. ㅎㅎㅎ

     

    일단 기진곰님 확인받기 전에는 이부분 수정은 보류하겠습니다.

     

    감사합니다.

  • @좋은아빠되기

    그 부분은 기본 언어 설정이 제대로 되어 있지 않은 사이트에만 적용되는 기본값이니, 이미 관리자 화면에서 기본 언어를 한국어로 설정해 두셨다면 바꾸든 안 바꾸든 영향이 없을 겁니다.