CMS/프레임워크 | XE 1.x |
---|---|
개발 언어 | PHP 5.x |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
안녕하세요.
XE를 이용하는 것은 물론이거니와, 웹사이트 제작이라는 것 자체가 완전 처음인 생초보입니다.
이번에 랜딩 페이지 제작을 하게되면서 문제점이 생겼어요.
다국어 지원이 그 문제인데요, 별도 버튼을 만들어서 ko / en 전환은 성공했습니다. 문제가 되는 부분은 "첫 접속시 언어"인데요, 현재 제 페이지 디폴트 언어는 영어로 설정 되어 있습니다만
제가 원하는 동작은 [기본 언어 → 영어, 한국에서 접속시→한국어] 인 상태로 접속이 되는 것입니다.
물론 쿠키가 있기 때문에 한번 버튼을 눌러 바꿔 둔 언어 세팅은 쿠키를 지우기 전까지 남아있습니다.
그렇지만 첫 접속시에 기본으로 보여지는 언어.. 그게 문제입니다.
자동 언어 선택 관련한 애드온 세 개를 설치해봤는데
쿠키를 지우고 테스트해도 잘 작동이 되지 않습니다.
현재 제 사이트는 기본 설정 영어에 "언어 자동 선택" 애드온이 설치되어있는 상태입니다.
혹시 접속국가별로 언어 설정을 바꾸는 방법을 아시는 분 계신가요??
댓글 15
그리고 접속 국가를 판단하는 것에서 GPS나 IP로 판단하는게 아니라 접속하는 브라우저의 언어로 구분하는걸로 보여집니다.
말씀하신 방법대로 브라우저 언어를 인식하는 쪽으로 계속 시도했었습니다.
애드온을 쓰지 않고 수동으로 html수정해서 해볼려했는데, 브라우저 언어 안식까지는 성공했으나 현재 페이지가 무슨 언어인지를 못 가져오더라고요. $lang_type에 담기는 줄 알았는데..
if ($lang_type == 'ko') 요런식으로 될 줄 알았는데 안되더라고요. ㅠㅠ
1. 현재 웹브라우저 언어가 ko이다
2. 웹사이트를 ko 언어로 바꾼다.
3. (새로고침됐으니) 현재 웹 브라우저 설정이 ko이다
4. 다시 사이트를 ko로 바꾼다
...
이런 사태가 일어나서요 ㅠㅠ
1. 현재 웹 브라우저 언어가 ko이고 사이트 언어는 en이다
2. ko로 사이트 언어를바꾼다
이렇게 만들 요량이었습니다.
2. 웹사이트를 ko 언어로 바꾼다.
3. (새로고침됐으니) 현재 웹 브라우저 설정이 ko이다
4. 다시 사이트를 ko로 바꾼다
요 문제는...
if(!쿠키언어 && 브라우저언어 !=웹사이트언어) {
명령어: 브라우저언어사이트로 이동
}
요렇게 하면 쿠키에 언어설정값이 들어가면 더이상 동작안하겠죠.
쿠키가 없고, 브라우저와 웹사이트언어가 다를때만 동작할테니까요.
$lang_type을 이용해도 잘 안되네요 ㅠㅠ
애드온 자체의 문제라기보다는 제 레이아웃과 잘 안맞는 것 같습니다. 희한하게 잘 작동을 안하더라고요. 쿠키를 지우면서 테스트해도요..ㅠㅠ
브라우저는 비발디/사파리로 테스트 했습니다.
제 기억이 맞다면, 쿠키를 지우셔도 무관하게 동작하도록 되어 있습니다.
첫 접속 시 언어를 골라주는 것으로 알고있습니다. 그래서 새로고침은 물론이거니와 아예 브라우저 언어를 바꾼 후 쿠키를 지우고, 브라우저를 재시작 한 후에 홈페이지에 접속했을 때의 언어가 브라우저의 언어와 일치하는지 봐야하는것으로 알고있습니다.
그리고.. 언어가 바뀌는데 새로고침이 안되기는 힘들지 않을까요?
스스로 해결해보려고 했으나 다른 부분에서 막히네요 ㅠㅠ 열심히 배우겠습니다.
if ( xe.current_lang == 'ko' )
이런 식으로 활용하심 될 듯합니다.
그리고 기진곰님 애드온이라면 페이지를 새로고침시키는 번거로움을 초래하진 않을 것 같은데요.
1. 콘텐츠 로드 전에 브라우저 언어를 미리 감지해서
2. xe의 언어모드를 거기에 맞춰주는 동작..
3. 그리고나서 콘텐츠 로드..
이지 않을까요?
그래서 페이지 새로고침이 잘 이해가 안 되고 다른 사정이 있으신가 하는 이야기였어요.
앗.. 저 새로고침 이야기는 애드온이 아닌 수동으로 만들때 이야기였어요. 제가 잘 못 봤었네요 원 댓글을.
dochangelangtype을 쓰니까 새로고침이 되더라고요.
전역변수로 xe.current_lang이 있는지는 몰랐네요. 정말 감사합니다. 이거로 해결할 수 있을 것 같아요.