| 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
전체 사이트 설정] 시스템 설정->고급 설정->기본 언어 선택
도메인단위 설정] 사이트 설정->목록중 수정 원하는 사이트 선택후 기본 언어 선택
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관련처럼 보이네요.
이건 수정하면 안될것 같아서.. 그냥 일단 두는게 맞을꺼 같습니다.
짧은 지식으로 막 수정하면 사고 칠거 같아서.. 겁나네요. ㅎㅎㅎ
일단 기진곰님 확인받기 전에는 이부분 수정은 보류하겠습니다.
감사합니다.
그 부분은 기본 언어 설정이 제대로 되어 있지 않은 사이트에만 적용되는 기본값이니, 이미 관리자 화면에서 기본 언어를 한국어로 설정해 두셨다면 바꾸든 안 바꾸든 영향이 없을 겁니다.