다국어 서비스를 준비하고 있습니다.
의뢰하기 전에 내용을 좀 파악을 해야 구상도 할 수 있기 때문에 조언을 요청드립니다!
1. 애드온이나 모듈마다 Lang 폴더를 가지고 있는데 각각 작업을 해야하나요? 아니면 Common -> Lang 에서 한번에 작업하면 될까요?
2. en.php 와 en.lang.php 의 차이
3. 안내문 문구와 같이 단어가 아닌 긴 문장 또는 여러문장으로 이루어진 문단의 경우도 en.lang.php 에서 설정해주면 될까요? 아니면 하드 코딩으로 해당 div나 p 태그에 뭔가 언어 설정에 따라 출력되도록 해주는 편이 나을까요?
4. 원래 메뉴가 a / b / c 라는 메뉴를 가지고 있다면, 특정 언어가 선택된 화면에서는 a/b 만 출력되도록 하고 싶은데 대략 어떤 식으로 구현해야 할지.
5. 언어 설정을 감지할 수 있는 조건문(if?)가 있는지요.
5. 지금은 조금 작업해놓고 관리자 메뉴에서 시스템 설정에서 언어를 변경하고 있는데 이렇게 하니 다시 원복하려면 캐쉬 뿐 아니라 브라우저 캐쉬까지 지워야 합니다. 일전에 검색하다가 주소명 뒤에 en_en 이런식으로 붙이면 해당 언어가 설정된 화면을 출력해주던데 다시 찾으려니 못찾겠습니다.
1. 작업하시려는 자료(스킨, 레이아웃, 모듈, 애드온 등) 안에서 파일을 만들어 쓰세요. 코어의 영역은 건드리면 안됩니다.
2. en.php는 라이믹스 방식입니다. XE 방식은 lang.xml 파일 하나에 다 집어넣는 것인데, XE도 아주 오래 전에는 en.lang.php이라고 쓴 적이 있습니다. 라이믹스는 3가지 모두 지원하지만, 성능면에서는 라이믹스 방식이 가장 유리합니다.
3. 케바케입니다. 너무 길고 복잡하고 HTML이나 변수 내용도 들어가야 한다면 스킨에서 현재 언어에 따라 분기 처리하는 편이 더 관리하기 쉬울 것입니다.
4. 태그 구조에 따라 다릅니다. 특정 언어에서 해당 언어코드를 빈 문자열로 만들어 버리는 방법도 있겠고, 그래도 앞뒤에 태그나 아이콘 등이 지저분하게 남는 것이 싫다면 소스에서 언어에 따라 다르게 처리하는 방법밖에 없습니다.
5. Context::getLangType()
6. 사이트주소?l=en 을 붙이면 영어 모드가 되고, ?l=ko를 붙이면 한국어 모드가 됩니다. 그 밖의 언어도 코드가 다를 뿐 문법은 동일합니다. 소문자 L입니다.