2014-11-06 2 views
0

실제로 그의 해결책은 저에게 맞지 않을 것이라는 점을 제외하고는 joomla - forcibly get keyword from specific language에서와 똑같은 문제에 대한 답을 찾고있었습니다. 여기에 내가 할 수있는만큼 좋은 모두를 설명한다 :joomla - JText에서 특정 언어의 키워드를 강제로 가져옵니다.

나는 내가 번역하고 싶은 언어를주는 방식으로 JText를 사용해야한다. JText 함수를 호출하기 전에 이미 해당 언어를 설정 /로드하려했지만 언어 로딩 결과가 성공적이라도 항상 기본 언어의 키워드를 반환합니다. 고객 요청이 이메일을 통해 관리자에게 전송되는 구성 요소를 작성했습니다. 고객이 사본을 얻습니다 (방문중인 사이트의 올바른 언어로 =이 작업 중입니다). 관리자는하지만, 같은 bodytext의 사본을 얻을해야하지만 강제 언어 :

$body = '<td><b>'.JText::_(TPL_FORM_TELEFON).'</b></td><td>'.$_POST['tel'].'</td></tr>'. 

그래서 기본적으로 JText::_(TPL_FORM_TELEFON) 중 하나 en-GB 또는 ru-RU가 (자신이 방문하는 어떤 언어 따라 고객에게 전송 복사 이메일에)하지만 관리자 용 JText::_(TPL_FORM_TELEFON) 독일어로되어 있어야합니다 (de-DE)

어떻게 할 수 있습니까?

답변

0

이렇게하는 방법이 있습니다. Joomla!에서이 기사를 찾으십시오! 문서 : https://docs.joomla.org/Specification_of_language_files

끝에 "모든 언어 파일로드 중 어디서나" "임의의 프런트 엔드 및 백 엔드 언어 파일을로드하는 방법이 나와 있습니다. 중요한 정보는

번역되지 않은 문자열이 영어로 표시하고 번역되지 않은하지 키

이메일이 고객에게 보내 주셔서 프런트 엔드 번역 된 문자열을로드 할 수 있습니다이 방법, 및 관리자를위한 것입니다 독일어 백엔드 언어 파일을로드 할 수 있습니다. 독일어 백엔드 언어 파일을 번역하지 않고 en &을 비워두면 관리자 이메일의 독일어 문자열을 항상 가져와야합니다. 이 기능을 사용하려면 백엔드 및 프런트 엔드 언어 파일에 다른 언어 키를 사용해야 할 수도 있습니다.

예 프론트 엔드 키 : 디 DE위한
: TPL-FROM-TELEFON="Phone"

예 백엔드 키 : EN-GB 용 TPL-FROM-TELEFON="Telefon"
디 DE위한

: TPL-FROM-TELEFON-ADMIN="Telefon"
en-GB의 경우 : TPL-FROM-TELEFON-ADMIN=이 키를 모두 포함하지 마십시오 !!!

마지막으로 Joomla!에서 설명한 언어 파일을로드해야합니다. 문서 도구 :

당신은 백엔드 언어 파일에 대해이 같은 것을 사용할 수 있습니다

$language = JFactory::getLanguage(); 
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, 'en-GB', true); 
$language->load('com_yourcomponentname', JPATH_ADMINISTRATOR, null, true); 

을 그리고 같은 트릭을 사용하여 프런트 엔드 언어 파일을로드 :

$language = JFactory::getLanguage(); 
$language->load('com_yourcomponentname', JPATH_SITE, 'en-GB', true); 
$language->load('com_yourcomponentname', JPATH_SITE, null, true); 
관련 문제