묻고답하기
언어 모드에 관계없이 동일한 글을 나타내려면?
2012.08.29 22:43
xe가 언어 모드를 지원하는 것은 메뉴만 한국어/영어로 나타내는 것이 아니라
게시판의 글 내용까지도 '언어모드'선택에 영향을 받는 다는 것을 오늘 처음 알았습니다.
그래서 다음과 같이 작동하죠.
1. 한글모드에서 '안녕하세요.' 작성
2. 영문모드로 전환해도 '안녕하세요'가 보임
3. 영문모드에서 '안녕하세요hello'로 추가 수정하면
4. 한글모드에서는 hello가 안보이고 '안녕하세요'만 보임
5. 영문모드에서느 '안녕하세요hello'가 보임
...다른 모드에서 한번 수정하면 이렇게 됨.
즉, 한글모드에서는 '안녕하세요'
영문모드에선 'hello'만 나타나게 하는 것이 맞다. (이게 바로 다국어를 지원하는 이유다. 다국어 홈페이지 작성을 위해.)
그러나 다음이 궁금합니다.
1. 언어모드에 상관없이 동일한 게시물을 나타내는 방법은?
-즉, 어떤 언어모드에서 수정을 하던지 동일한 내용이 표시되었으면 합니다.
(물론, 언어모드에 따라 메뉴의 언어는 변경되겠지만요.)
2. 한국어모드에서 작성한 것을 영어모드에서 수정했을 때 다시 원상태로 돌아갈 수가 없다.
즉, 한국어모드에서 계속 수정되어도 영어모드로 변경시 영어모드에서 수정했던 그 만큼만 보인다.
해결은?
*정리하면...언어 선택에 따라 메뉴의 언어는 변경되지만 게시판의 내용을 동일하게 표시되었으면 함.
예를 들어 다국어 페이지를 위해 xe에서는 '자기소기'를 '한국어'와 '영어', '일어'로 세개를 작성해야 하지만
저는 '한국어모드'에서 '자기소개'를 한글로 작성하면서 중간중간에 각국의 언어로 설명을 달려고 할 경우에
'자기소개'를 하나의 페이지로만 작성해도 되니까요.
*처음 작성할 때 '한국어'모드에서만 계속 수정하면 다른 언어모드에서도 동일하게 보이는 것은
확인했습니다. ^^;;;
- [2017/08/04] 묻고답하기 $user_lang->userLang### 이걸 언어로 읽어오는 방법?
- [2015/07/10] 묻고답하기 다국어 언어 소스에 적용법 ? *1
- [2015/05/11] 묻고답하기 위젯 다국어 설정 문제
- [2015/03/23] 묻고답하기 다국어 구축 내용은 구글 검색 등에서 제외되는 건가요? *1
- [2014/05/11] 묻고답하기 다국어 페이지 적용시 오류 *2
xe - modules - document - document.controller.php 열고
line 245 쯤에
$obj->lang_code = Context::getLangType();
이것을
$obj->lang_code = 'ko';
이것으로 수정
그리고
line 394 쯤에
if($source_obj->get('lang_code') != Context::getLangType()) {
// Change not extra vars but language code of the original document if document's lang_code doesn't exist.
if(!$source_obj->get('lang_code')) {
$lang_code_args->document_srl = $source_obj->get('document_srl');
$lang_code_args->lang_code = Context::getLangType();
$output = executeQuery('document.updateDocumentsLangCode', $lang_code_args);
} else {
$extra_content->title = $obj->title;
$extra_content->content = $obj->content;
$document_args->document_srl = $source_obj->get('document_srl');
$document_output = executeQuery('document.getDocument', $document_args);
$obj->title = $document_output->data->title;
$obj->content = $document_output->data->content;
}
}
이 부분을 주석처리 혹은 삭제