2011-03-24 2 views
3

옆으로 페이지의 언어를 설정하는 명백한 패션 :PHP의 올바른 사용 : header ('Content-language : ...');

<meta name="language" content="de"><html lang="de"> 

는 최근 수는 PHP 파일의 맨 위에 언어를 설정하는 개발자 수 있도록 PHP의 프로그래밍 언어에 대한 일반적인 놀라운면을 발견 :

<?php 

/* Set and pre-define the language in the header; 
    * Eliminating guesswork for the Header language. 
    */ 

    header('Content-language: de'); 

?> 

두 질문은 PHP 프로그래머에 eveidentaly 발생 :

홈페이지 질문 : 언제 하나는 PHP 헤더에 언어를 설정해야합니까?

SideQ1 : 큰 웹 사이트는 사용하지 않아도됩니다.

SideQ2 : 검색 엔진이이를 수신합니까? 그렇다면이 PHP 헤더에 어떤 영향이 있습니까?

+1

이것은 PHP 언어로만 격리되어 있지 않습니다. PHP header() 함수는 많은 언어에서 할 수있는 원시 HTTP 헤더를 설정하는 데 사용됩니다. – Benxamin

답변

5

짧은 답변 : : 브라우저가 일반적으로 무시하므로 걱정하지 마십시오.

긴 대답 : W3C의는 HTTP에 Content-Language 헤더를 통해 HTML에서 lang 속성을 사용하는 것이 좋습니다 :

http://www.w3.org/International/geo/html-tech/tech-lang.html#ri20040808.110827800

이론적 근거 : 사용자 에이전트 헤더를 무시하거나 일관성을 구현하는 경향이있다.

더하기 lang 속성이 더 유연합니다. 다른 하나 개의 언어 및 기타의 일부 콘텐츠가있는 경우, 당신은과 같이 정확하게 그를 지정할 수 있습니다 : 나는 검색 엔진 모르는 http://www.w3.org/International/geo/html-tech/tech-lang.html#ri20040728.121403792

:

<body> 
<div lang="en" xml:lang="en"> 
    <h1>Welcome!</h1> 
    <p>Lots of text in English...</p> 
</div> 
<div lang="fr" xml:lang="fr"> 
    <h1>Bienvenue !</h1> 
    <p>Beaucoup de texte en français...</p> 
</div> 
</body> 

은에서 촬영.

5

정보 용으로이 헤더를 사용할 수 있습니다. 하지만 주로 content negotiation을 의미합니다.

각 http URL은 다른 리소스를 투명하게 나타낼 수 있습니다. 클라이언트 Accept : 및 Accept-Language : 헤더에 따라 서버는 특정 리소스 변형을 보낼 수 있습니다. 그리고 그러한 설명적인 헤더가 포함되는 것이 바람직합니다.

그런 방식으로 사용되는 경우 Vary: * 또는 Vary: Accept-Language 헤더가 첨부됩니다. 그렇지 않으면 정말로 정보에 불과합니다. (그 자체만으로는 널리 사용되지 않습니다.)