2011-08-19 6 views
2

다른 언어로 번역하는 웹 사이트가 있습니다. 콘텐츠를 번역하여 데이터베이스에 저장했습니다. 필자는 또한 PHP 파일에 전역 코드를 기반으로 언어를 표시 할 다양한 메커니즘을 작성했습니다. 나는이 모든 것에 만족합니다. 내 질문은이 전역 정의를 어떻게 제어 할 것인가?웹 사이트에서 여러 언어를 처리하는 방법

현재 쿠키를 설정하고 현재 페이지를 다시로드하는 자바 스크립트 토글이 있습니다. 이후의 모든 페이지는 쿠키를 읽어 전역 정의를 설정합니다. 그것은 잘 작동하지만 두 가지 큰 문제가 있습니다. (1) 언어가있는 사람에게 URL을 보낼 수는 없습니다. domain.com/forwarder.php?lan=spanish & gotopage = page.php와 같이 설정할 수 있습니다. 쿠키를 누른 다음 앞으로,하지만 그 못생긴). 그리고 (2) 검색 엔진은 실제로 쿠키와 자바 스크립트를 사용하지 않기 때문에 여러 언어를 볼 수 없습니다.

어떻게 해결할 수 있습니까? 아무도이 경험이 있습니까? 당신의 경험을 공유 할 수 있습니까?

나는 단지 URL을 사용하고 쿠키를 버리는쪽으로 기울어 져있다. 내가 본 다양한 국제 사이트 중 인기있는 것 같습니다. 따라서 URL은 다음과 같을 것입니다.

domain.com/page  (for english, equivalent to domain.com/en/page) 
domain.com/es/page (for spanish) 
domain.com/fr/page (for french) 
etc ...... 

이 것이 좋나요? 나는 내 코드를 살펴보고 모든 href 코드 앞에 언어 코드를 붙여야한다.

그럼 누구에게이 의견이 있습니까? 이것은 좋은 계획입니까? 나는 뭔가를 깨닫지 못하고 있니?

+0

궁금하신 분은 http://archive.cyark.org/에서 현재 볼 수 있습니다. 상단의 언어 토글을 클릭하고 스페인어를 선택하십시오. – Landon

답변

1

오랜 시간이 걸렸지 만 $ _SERVER [ "HTTP_ACCEPT_LANGUAGE"]를 사용하여 자동으로 설정할 수는 없습니다. 그리고 처음으로 쿠키를 작성하기 전에 배열에 영어 또는 다른 언어로 화면에 메시지를 남겨 두십시오. 올바른 언어인지, 사용 가능한 언어가 드롭되어 있는지 묻습니다. 선택한 후에는 기본 웹 사이트 언어로 저장하십시오.

전역 리소스 파일에 문자열 상수를 사용할 수 있습니다. 현재 언어를 기반으로 문자열 상수를 호출하는 웹 사이트는 하나뿐입니다.

+0

$ _SERVER 변수의 속성을 알지 못했습니다. 그것 참 흥미 롭네. 어쩌면 스위치가 없어도 될까요? 나는 그것을 보면서 그것을 사용할 수 있습니다. 그러나 그것은 제가 현재 갖고있는 것과는 상반되는 방법이라고 생각합니다. 쿠키가 요청과 함께 전송 되든, 아니면 $ _SERVER 변수의 일부인지에 상관없이 브라우저의 요청에 따라 달라집니다. 스페인어로 누군가에게 URL을 보내고 싶다면이 점이 도움이되지 않습니다. Google 크롤링에 도움이됩니까? Woudl google이 다른 HTTP_ACCEPT_LANGUAGE 값을 사용하여 두 번 크롤링하고 결과를 저장합니까? – Landon

+0

특정 언어로 URL을 보내려면 쿼리 문자열을 사용하십시오. www.whateversite.com?lang=en_gb 또는 lang = span 등. 확실하지 않지만 Google에 기본적으로 설정된 다른 언어로 크롤링하는 서버가 있다고 생각합니다. – DFTR

관련 문제