2012-12-08 1 views
0

변수 $ status에는 문자열 값 'stop'또는 'go'(PHP 작업에서)가 할당됩니다.gettext translation을 방지합니다.

보기에서 "stop"이 빨간색으로 표시되고 "go"가 녹색으로 표시되는 방식으로 $ status의 값을 표시하고 싶습니다.

<span class="<?=$status?>"><?= $status?></span> 

과 정의 된 클래스 "정지/이동"내 CSS에서 :

그래서 내가 좋아하는 뭔가를 썼다. 액션의 _()에 문자열을 래핑하여 다국어로 만들기 전까지는 모든 것이 잘 작동합니다. 이제 gettext는 실제로 표시되는 문자열뿐만 아니라 클래스 이름 (내가 원하지 않는)을 변환합니다. 거기에 ungettext 같은 뭔가가 쓸 수 있도록 :

<span class="<?=ungettext($status)?>"><?= $status?></span> 

그리고 번역되지 않은 클래스 이름을 얻을?

액션에서 부울을 보내고 뷰에서 if 문을 사용하여 내가 원하는 것을 만들 수 있음을 알았습니다. 또는 (더 못생긴) 나는 CSS에 번역 된 클래스 이름을 추가 할 수있다. 그러나 더 우아한 방법이 있습니까?

답변

3

나는이 문제에 대해 과도하게 생각하고 있다고 생각합니다. $ status_stye와 같이 액션에 다른 변수를 만들어서 번역을 적용하지 않는 이유는 무엇입니까? 그렇게하면 원하는 CSS 클래스와 번역 된 버전의 텍스트가 모두 있습니다.

+1

매우. 이 코멘트가 오늘 upvote 인 것처럼 upvote에 대한 차용 증서를 고려하십시오. – Charles

+0

당신이 지금 가지고있는 느낌을 "코드 냄새"라고합니다. 시간이 지나면 기분이 나아질 것입니다. :) –