모듈에서 기존에 하드코딩 되어있던 문자열을 분리하면서 ko.php 와 같이 만들게 되었습니다
이런식으로 lang.xml을 삭제하고 ko.php를 넣었습니다.
view.php에서나 skin에서는 $lang->msg_asdf 같이 호출해서 잘 작동하는 모습을 보여줬지만, 오늘 controller에서 작동하는 소스를 호출해보니 아예 빈칸으로 나와버리네요..
return_message는 제가 view에서 메세지를 호출하게 하는 함수를 만든거고요, $lang->guild_point_leak를 왼쪽에 '에러!' 아래 출력을 해줘야 하는데, 위와같이 아무것도 나오지 않는 모습을 볼 수 있습니다.
지금은 눈에 보이게 출력하기 위해 저런식으로 재현을 했지만, debugPrint나 기타 다른 방법을 사용해도 저 $lang->guild_point_leak 에는 빈 문자열만 들어있는것 같습니다.
controller에서는 lang을 사용할 수 없나요?
만약 사용할 수 없다면 lang을 사용할 수 있게하는 방법이 있을까요?
다른거 개발하려다가 이 오류만 3시간째 잡고 있어서 착잡하네요 ㅜㅜ
해당 함수 내에서 $lang이라는 변수를 선언하신 적이 없으니 빈 칸으로 나오는 것이 당연하지요.
$lang = Context::get('lang');
이렇게 $lang 변수를 먼저 선언해준 후에 $lang->guild_point_leak를 사용하시거나,
Context::getLang('guild_point_leak');
이렇게 특정한 lang code만 개별적으로 불러오는 방법도 있습니다.
그 밖에 $is_logged, $logged_info 등 스킨에서 흔히 사용하는 변수들도 마찬가지입니다. PHP를 비롯한 거의 모든 언어에서 함수를 만들면 그 함수 안에서 선언한 변수만 사용할 수 있습니다. (자바스크립트는 좀 특이한 예외...)