2017-05-05 2 views
0

데이터베이스에서 테이블 이름과 열 이름을 가져온 다음 드롭 다운에 넣습니다. 사용자들에게 조금 좋기 때문에 나는 테이블과 컬럼 이름을 평범한 인간이 이해할 수있는 것으로 변환하려고합니다.Codeigniter에 번역 목록을 어디에 넣어야합니까?

제 문제는 제가 번역 목록을 어디에 넣어야할지 모르겠군요.

  • 다른 데이터베이스에서 (읽는 사람을 변경할 수 없기 때문에)? 그러나 그것은 단지 잘못되었다고 느낍니다.
  • 모델에? 그러나 번역 할 필요가없는 메서드를 사용할 때 많은 불필요한 데이터를로드하고 싶지 않습니다.
  • 별도의 도우미로? 그렇게하면 번역 할 때 도우미를로드 할 수 있습니다.

기타 제안 사항 (장단점이있는 경우)?

+1

아시다시피, Codeigniter에는 언어 파일의 번역과 함께 작동하는 [언어 클래스] (https://www.codeigniter.com/userguide3/libraries/language.html)가 있습니까? 하지만 번역을 넣은 곳의 선택은 모든 변형에 장단점이 있습니다. – shaggy

+0

흠 ... 언어 수업을 사용하는 것은 내가 성취하려고하는 것에 과도한 것 같습니다. 그러나 제안에 감사드립니다. –

+0

잔인한가요? 왜? 그것이 정확히 무엇을 해야하는지입니다. – shaggy

답변

1

내 의견에 쓴 것처럼,이를 달성하는 가장 좋은 방법은 Codeigniter Language class을 사용하는 것입니다.

그런 다음 tables_lang.php 파일을 언어 디렉토리에 만듭니다.

다음 당신은 언어 파일로드 :

$this->lang->load('tables', 'english'); 

또는 (당신은 기본 언어를 사용하려는 경우) :

$this->lang->load('tables'); 

해당 테이블 열 이름으로 테이블을 사용자이있는 경우 언어 란 다음과 같아야합니다.

$lang['table_users'] = 'Users table'; 
$lang['table_users_col_name'] = 'User name'; 
컨트롤러, 모델에서

또는 당신이 데이터를 이런 식으로 가져올 수 있습니다보기 :

$table = 'users'; //table name from database 
$table_name = $this->lang->line('table_'.$table); 

$column = 'name'; 
$column_name = $this->lang->line('table_'.$table.'_col_'.$column); 

당신이보기에 번역을 사용하려는 경우 언어 도우미에서 $this->lang->line() 기능 lang()에를 변경해야합니다.

관련 문제