New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
템플릿에서 상대적인 언어코드 지원 #2203
Comments
좋은 제안입니다만, 서드파티 자료 이름을 찾는 것이 의외로 복잡할 수도 있습니다. 일반적인 모듈이라면 그나마 쉽지만, 스킨에 lang 폴더를 넣는 경우도 봤거든요. 일단 경로가 점으로 시작하는 것이 가장 짧긴 하지만, CSS나 jQuery에서 클래스를 뜻하는 문법과 너무 비슷해 보인다는 점이 다소 걸립니다. 처음 접하는 분들은 상당히 헷갈릴 것 같아요. 짧으면서도 "이 모듈(애드온, 위젯 등)"이라는 의미가 좀더 명확하게 전달되도록 할 수 있을까요? 예를 들면 거꾸로 생각하는 방법도 있습니다. 새로운 문법인 만큼, 템플릿 v2에서 P.S. Blade 스타일의 문법은 사실상 PHP 함수를 호출하는 것이므로, 아래와 같은 꼼수도 통하긴 할 거예요.
|
네, 아니면 선택사항으로 "템플릿에서 사용할 변수" 처럼 "템플릿에서 사용할 언어파일"을 따로 지정한 경우("컨트롤러에서 지정" 또는 "템플릿 내, 맨 위에서 사용할 언어 파일을 선언")에 한하여 지원해도 괜찮구요. 가능하다면, 앞에 "점"조차 없는 게 제일 깔끔하긴 합니다. |
템플릿 파일 이외의 장소에서 설정한 것이 템플릿 문법의 해석에 영향을 준다면 곤란합니다. 점 없이 해당 모듈의 언어코드를 우선 검색하는 방법이 끌리는군요. 안 그래도 Lang 클래스에서는 일정한 순서로 각 모듈의 언어코드를 검색하도록 되어 있으니, 특정한 상황에서 특정 모듈의 우선순위를 높이는 것은 어렵지 않습니다. 해당 모듈에서 선언하지 않은 언어코드는 정상적인 순서로 fallback하고요. 단, 이렇게 하면 어디에서 lang()을 호출했는지에 따라 서로 다른 언어코드를 로딩하게 될 수도 있다는 단점이 있습니다. |
흠... 서드파티 이름이 명시되지 않은 |
네, 점 없이 언어코드를 사용하면 어떤 자료들이 어떤 순서로 로딩되어 있는지에 따라 결과가 달라질 수 있습니다. 물론 코어의 common/lang이나 주요 모듈들이 사용하는 것으로 널리 알려진 간단한 단어를 의도적으로 덮어쓰는 것을 추천하지는 않지만요. 그렇다면 |
네, 그게 최선일 것 같습니다. |
저의 경우, 모듈 제작시
lang('msg_abc')
지양하고, 대신 모듈 이름을 명시하는lang('conory.msg_abc')
를 사용하고 있습니다. 왜냐하면 다른 서드파티와의 충돌 가능성 때문입니다. 전자의 경우, 같은 언어코드를 다른 서드파티에서도 사용하고 있다면 경우에 따라 덧씌워질 수 있습니다.즉,
lang('conory.msg_abc')
를 더 많이 사용합니다.하지만 모듈 이름이 길다면
lang('conory_long_long_long.msg_abc')
좀 불편합니다.아래와 같이 제안합니다.
템플릿에서 언어코드 맨 앞에 점이 있으면, 템플릿 경로에서 서드파티 이름을 찾고, 자동으로 붙여줍니다.
The text was updated successfully, but these errors were encountered: