XE가 무거운 여러 이유중에 하나인 언어팩에 대해서 구조를 좀 바꿔야 하지 않나 싶습니다.
여러 유저들의 테스트로 입증된, 다국어 부분의 lang 파일을 다이어트 하면 사이트가 빨라지는 것은 이렇게 해결하면 어떨까 싶습니다.
1. 다국어는 그대로 지원하되 common lang 파일을 국가별로 구분한다 (기능자체는 이미 지원되고 있는것 같습니다.)
2. 코어에서 페이지 로딩 시작하면 언어를 구분해서 언어에 맞는 lang 파일만 로딩합니다.
혹시 이미 잘 되어 있다거나 제가 모르는 부분이 있던 것이라 오해였다면 지적 부탁드립니다.
언어팩은 초기와 같이 언어별 개별파일로 되어야 하고, 필요할 때만 불러온다던지 해야한다고 생각합니다.(캐싱은 논외)
처음에 합쳐진게 1.7버전대였던 것 같은데 그 이유가 언어를 한 번에 입력할 때 편리하다는 것과 누락이 없는 등의 유지보수가 편리하다는 이유에서였습니다.
근데 이게 정말 답답한 게, 너무 개발 편의적인 생각이 아니였나 합니다. 물론, 처음 입력하는 사람이 여러 언어를 입력할 때는 위 방식이 편리할 수도 있습니다.
하지만, 다른 사람과 분담한다거나, 혹은 다른 사람이 추가한 언어를 자기것과 머지시킬 때 문제가 발생합니다.
예를 들어 A는 한국어와 영어, 중국어, 일본어의 lang.xml을 가지고 있습니다.
B라는 사람이 불어를 추가한 lang.xml을 배포합니다.
여기까지만 보면 문제가 없을 듯 한데
문제는 B라는 사람은 한국어, 영어, 불어만 있습니다.
이 때 A라는 사람이 불어를 추가하기 위해 해야하는 방법은 불어에 해당하는 부분을 일일이 그 위치를 찾아서 복붙하거나,
약간의 개발 지식이 있다면 필요한 부분을 별도로 merge해주는 프로그래밍하여 처리하겠죠.
문제는 XE에서 기본적으로 언어를 머지해줄 프로그래밍도 지원하지 않을 뿐더러,
새로운 언어를 추가할 때마다 해당 위치에 추가를 해줘야 하기 때문에 오히려 가독성이 떨어질 수 있습니다.
단순히 ko.xml (한국어파일)이 있다고 치면, 일본어를 추가하고자 하는 사람은 ko..xml을 en.xml로 복사한 후
파일을 열어서 한국어 부분을 보면서 번역하여 기입하면 간단하게 부담없이 언어파일을 추가할 수 있습니다.
하지만 현재 같은 방식이라면, lang.xml 파일을 열어서 각 번역 부분마다 복사를 해야하고, ko 부분을 en으로 수정해야 합니다...
즉, 한 번의 카피하고 번역만 하면되느냐와, 각각 엘레멘트마다 복붙하고, ko 부분을 en으로 수정까지 한 다음 번역하는 것과
작업의 차이는 크다고 봅니다.
그렇기 때문에 많은 프로그램들이 위와 같이 하나의 언어팩 파일이 아닌, 각각 개별의 언어파일로 지원하고 있고, 필요에 따라 손쉽게 언어를 추가할 수 있습니다.
물론 이와 같은 방식의 단점은 새로운 언어를 추가할 때의 유지보수는 불편한 부분이 분명 있습니다.
하지만, 이로 인한 불편함과 위의 불편함과의 차이는 크다고 봅니다.
또 이 경우 각각 언어파일을 비교해서 누락된 부분이 있을 시 알려주는 정도로 서비스를 제공한다면, 누락 부분도 크게 문제가 없을 거라 생각됩니다. (기본적으로 디폴트 되는 언어를 기준으로 한다면, 현재와 같이 해당 언어가 없을 시 디폴트되는 언어로 출력하게 하면 되니까요.)