2010-03-26 5 views
4

.po 파일을 만드는 방법과 .mo 파일을 생성 한 다음 Codeigniter를 사용하는 사이트에서 번역 할 때 사용하는 방법을 알고 있습니다. 그러나 사이트 GUI에서 언어를 변경하는 방법에 대해서는 잘 모르겠습니다. 나는 스키마를 호출하는 codeigniter의 기본 URL 인 www.domain.com/controllername/method/param1/param2를 고수하고 싶다. 기본 URL 스키마를 사용하여 모든 컨트롤러에 대한 모든에서 같은 방법을 구현하기 위해 저를 필요로 하codeigniter와 함께 gettext를 사용하는 다국어 지원, 모범 사례?

www.domain.com/controllername?lang=en이 같은 서버를 호출

는 생각할 필요 없다 컨트롤러를 사용하여 lang 매개 변수를 setlocale() 함수에 전달한 다음 내 .po 도메인 이름에 바인딩합니다. 어색함을 느낀다 ...

당신은 어떻게 codeigniter에서 gettext로 작업합니까? 그리고 네, gettext로 작업하고 싶습니다.

답변

1

나는 "post_controller_constructor"에서 탐지를 연결하는 사용자의 언어를 확인하고, 전역에서 사용할 수있는 어딘가에 설정합니다 (예 : 구성 파일의 런타임을 언어로 변경). 컨트롤러는 그 값을 사용하고 있습니다.

언어는 그것이 GET 파라미터 (예를 들어,? LANG = EN)을 통해 설정된 대체

  1. 의 다음 검사로 검출?
  2. 쿠키에 설정 되었습니까?
  3. 브라우저에서 추천하는 언어는 무엇입니까?
  4. 는 기본값을 사용하지만,

언어가 지원되지 않으면 구성된 기본 언어를 사용합니다. 새 데이터로 쿠키를 설정하거나 새로 고칩니다. 사용자가 난 그냥 자동 {t} 사이의 모든 텍스트를 번역 할 수 있습니다 도서관과를 {할

+0

"post_controller_constructor '에서 탐지를 후킹하는 것은 무엇을 의미합니까? – DanMan

+0

"나는 콜백을 'post_controller_constructor'에 추가했다. http://codeigniter.com/user_guide/general/hooks.html을 참조하십시오. 컨트롤러 클래스가 인스턴스화 된 후 특정 컨트롤러 메소드가 호출되기 전에 코드가 필요합니다. –

+0

Interesting. 감사. – DanMan

2

언어를 변경하려면 어디를 클릭하면

그래서 당신은 일반적으로 /의 GET 매개 변수를 사용하여 evenctuallly 한 시간이 필요하지 않습니다

http://www.chuongduong.net/page/15/codeigniter-gettext-with-smarty-or-parser-template-without-php-code-in-view.html

이 뷰 코드가 될 수 있습니다 :

<html> 
<head> 
<title>{blog_title}</title> 
</head> 
<body> 

<h3>{blog_heading}</h3> 
{blog_entries} 

<h5>{t}Title is{/t} {title}</h5> 

<p>{t 1="<b>" 2="</b>"}Click here %1to see%2 me{/t}{body}</p> 

<p>{t 1="{id}" 2="author"}The id is: %1 wrote by %2{/t}</p> 

<p>{t 1="<a href=\"link here\">" 2="</a>"}Please lick on me%2{/t}</p> 

{/blog_entries} 

</body> 

</html> 
뷰에서 t}는, 나는 어떤 사람이 대신 뷰에서의 gettext 함수를 호출 사용하려는 경우 여기에 게시
관련 문제