2013-06-21 2 views
1

WordPress에서 언어를 전환하는 방법은 switch_to_blog()과 같은가요?WordPress에서 언어를 전환하는 법

global $locale 
$currentLanguage = $locale; 
switch_to_language('de_DE'); 

//do some action with german localisation 

switch_to_language($currentLanguage); 

같은 뭔가가 워드 프레스와 일반적으로이 가능

?

답변

7

결국 해결책을 찾았습니다. 이 함수는 load_textdomain()이라고 불립니다.

이것은 내 편이 다. LANGUAGE_PATH과 전환 할 언어를 $new_language에 정의하십시오. $your_domain

//will output "Good Morning" 
_e('Good Morning', $your_domain); 

global $locale; 
//save the current language for later 
$current_language = $locale; 
$new_language = 'DE_de'; 

//load the new text domain 
load_textdomain($your_language_domain, LANGUAGE_PATH.'/'.$your_domain.'-'.$new_language.'.mo'); 

//do some action with the new localisation 
//will output "Guten Morgen" 
_e('Good Morning', $your_domain); 

//go back to the previous language 
load_textdomain($your_language_domain , LANGUAGE_PATH.'/'.$your_domain.'-'.$current_language.'.mo'); 

핵심에이 방법을 찾기 위해 잠시 툭 플러그인/테마의 텍스트 도메인입니다. 해당 기능에 대한 자세한 내용은 the codex site

+0

아직도 작동하는지 알아? 나는 그것을 스스로 할 수 없다. 모든 텍스트 문자열이 영어로 _e() 또는 __()를 통해 실행되는 스웨덴어 사이트가 있습니다. 특정 게시물/페이지에서 모든 텍스트를 스웨덴어가 아닌 영어로 렌더링하고 싶습니다. 그래서 위의 작업을 수행하려고하는데 출력이 변경되지 않습니다. 그게 사물을 변경하면 나는 자식 테마를 사용하고 있습니까? – powerbuoy

+0

'en_US'로 다시 전환하면 작동하지 않는 것처럼 보입니다. '$ your_domain'을 임의의 문자열로 변경하여 번역이 등록되어 있지 않고 대체물을 사용하도록 할 수 있습니다. - English – Xaver

+0

사실 그것은 어떻게 끝나야 만 했나요? P 완벽하지는 않습니다. 분명히 영어로만 작동합니다. 지금 당장. – powerbuoy

0

죄송합니다. 플러그인이 필요합니다. 워드 프레스는 상자에서 꺼내지 않습니다. WPML은 일반적으로 WordPress 용 다국어 플러그인입니다. 체크 아웃해야합니다. :)

+0

에 대해 알아보십시오.하지만 어떻게 플러그인에서이를 수행합니까? 나는 실제로'switch_to_language()'함수가 필요 없다. 전역 $ 로컬을 변경하면 작동하지 않습니다. – Xaver

+0

정의 된 상수를 변경할 수 없습니다. 그게 효과가 없을거야. 'locale'필터를 사용하여 로케일 변수를 변경할 수 있습니다. 여기를 참조하십시오 : http://wordpress.stackexchange.com/questions/52419/setting-wplang-from-a-plugin – LucP

+0

내 최종 답변을 확인하십시오. 이것이 내가 어떻게 만들 었는지, 어떻게 작동하는지입니다. 난 그냥 일시적으로 언어를 일시적으로 전환해야하고 전체 요청을하지 않아야한다. – Xaver

관련 문제