Language 클래스

Language 클래스는 국제화를 위한 언어 파일 및 텍스트 줄을 검색하는 함수를 제공합니다.

CodeIgniter system 폴더에는 english 언어에 대한 언어 파일 세트가 포함된 language 하위 디렉터리가 있습니다. 이 디렉터리의 파일 (system/language/english/)은 CodeIgniter 프레임워크의 여러 부분에 대한 일반 메시지, 오류 메시지 및 기타 일반적으로 출력되는 용어나 표현을 정의합니다.

애플리케이션별 오류 및 기타 메시지를 제공하거나 핵심 메시지를 다른 언어로 번역하기 위해 필요에 따라 자체 언어 파일을 만들거나 통합할 수 있습니다. 이러한 번역이나 추가 메시지는 각 언어(예: ‘french’ 또는 ‘german’)별로 별도의 하위 디렉터리를 사용하여 application/language/ 디렉터리에 저장됩니다.

CodeIgniter 프레임워크에는 “english” 언어에 대한 언어 파일 세트가 포함되어 있습니다. 다른 언어에 대한 추가 승인된 번역은 CodeIgniter 3 Translations 저장소에서 찾을 수 있습니다. 각 저장소는 단일 언어를 다룹니다.

CodeIgniter가 언어 파일을 로드할 때 system/language/에 있는 파일을 먼저 로드하고 application/language/ 디렉터리에서 재정의를 찾습니다.

참고

각 언어는 자체 폴더에 저장되어야 합니다. 예를 들어 영어 파일은 system/language/english에 위치합니다.

다중 언어 처리

애플리케이션에서 여러 언어를 지원하려면 각 언어에 대한 폴더를 application/language/ 디렉터리 내에 만들고 application/config/config.php에서 기본 언어를 지정합니다.

application/language/english/ 디렉터리에는 오류 메시지 등 애플리케이션에 필요한 추가 언어 파일이 포함됩니다.

다른 언어별 디렉터리에는 번역 저장소에서 가져오거나 직접 번역한 핵심 언어 파일과 애플리케이션에 필요한 추가 파일이 포함됩니다.

현재 사용 중인 언어는 세션 변수 등에 저장할 수 있습니다.

언어 파일 예시

system/
        language/
                english/
                        ...
                        email_lang.php
                        form_validation_lang.php
                        ...

application/
        language/
                english/
                        error_messages_lang.php
                french/
                        ...
                        email_lang.php
                        error_messages_lang.php
                        form_validation_lang.php
                        ...

언어 전환 예시

$idiom = $this->session->get_userdata('language');
$this->lang->load('error_messages', $idiom);
$oops = $this->lang->line('message_key');

국제화

CodeIgniter의 Language 클래스는 애플리케이션에서 여러 언어를 쉽고 가볍게 지원하는 방법을 제공하기 위한 것입니다. 일반적으로 국제화 및 현지화라고 불리는 것의 완전한 구현을 의도하지 않습니다.

“en”, “en-US”, “en-CA-x-ca”와 같은 국제 표준을 사용하는 대신 일반적인 이름으로 언어를 참조하기 위해 “idiom”이라는 용어를 사용합니다.

참고

애플리케이션에서 이러한 약어를 사용하는 것을 방해하는 것은 없습니다!

Language 클래스 사용

언어 파일 만들기

언어 파일은 파일 이름 확장자로 _lang.php를 사용해야 합니다. 예를 들어 오류 메시지가 포함된 파일을 만들고 싶다면 error_lang.php로 이름을 지정할 수 있습니다.

파일 내에서 다음 프로토타입을 사용하여 텍스트의 각 줄을 $lang이라는 배열에 할당합니다:

$lang['language_key'] = 'The actual message to be shown';

참고

다른 파일의 유사하게 명명된 항목과의 충돌을 방지하기 위해 지정된 파일의 모든 메시지에 공통 접두사를 사용하는 것이 좋습니다. 예를 들어 오류 메시지를 만드는 경우 error_를 접두사로 사용할 수 있습니다.

$lang['error_email_missing'] = 'You must submit an email address';
$lang['error_url_missing'] = 'You must submit a URL';
$lang['error_username_missing'] = 'You must submit a username';

언어 파일 로드

특정 파일에서 줄을 가져오려면 먼저 파일을 로드해야 합니다. 언어 파일 로드는 다음 코드로 수행됩니다:

$this->lang->load('filename', 'language');

여기서 filename은 로드하려는 파일의 이름(파일 확장자 없이)이고, language는 해당 파일이 포함된 언어 세트(예: english)입니다. 두 번째 매개변수가 없으면 application/config/config.php 파일에 설정된 기본 언어가 사용됩니다.

첫 번째 매개변수로 언어 파일 배열을 전달하여 여러 언어 파일을 동시에 로드할 수도 있습니다:

$this->lang->load(array('filename1', 'filename2'));

참고

language 매개변수는 문자만 포함할 수 있습니다.

텍스트 줄 가져오기

원하는 언어 파일이 로드되면 다음 함수를 사용하여 텍스트의 모든 줄에 접근할 수 있습니다:

$this->lang->line('language_key');

여기서 language_key는 표시하려는 줄에 해당하는 배열 키입니다.

줄이 존재하는지 확실하지 않은 경우 오류 로깅을 비활성화하기 위해 해당 메소드의 두 번째 인수로 선택적으로 FALSE를 전달할 수 있습니다:

$this->lang->line('misc_key', FALSE);

참고

이 메소드는 단순히 줄을 반환합니다. echo로 출력하지 않습니다.

양식 레이블로 언어 줄 사용

이 기능은 language 라이브러리에서 더 이상 사용되지 않으며 Language 헬퍼lang() 함수로 이동되었습니다.

언어 자동 로드

애플리케이션 전반에 걸쳐 특정 언어가 전역적으로 필요한 경우 시스템 초기화 중에 CodeIgniter가 자동으로 로드하도록 지시할 수 있습니다. application/config/autoload.php 파일을 열고 autoload 배열에 언어를 추가하면 됩니다.

클래스 레퍼런스

class CI_Lang
load($langfile[, $idiom = ''[, $return = FALSE[, $add_suffix = TRUE[, $alt_path = '']]]])
매개변수:
  • $langfile (mixed) – 로드할 언어 파일 또는 여러 파일이 있는 배열

  • $idiom (string) – 언어 이름 (예: ‘english’)

  • $return (bool) – 로드된 번역 배열을 반환할지 여부

  • $add_suffix (bool) – 언어 파일 이름에 ‘_lang’ 접미사를 추가할지 여부

  • $alt_path (string) – 언어 파일을 찾을 대체 경로

반환:

$return이 TRUE로 설정된 경우 언어 줄 배열, 그렇지 않으면 void

반환 형식:

mixed

언어 파일을 로드합니다.

line($line[, $log_errors = TRUE])
매개변수:
  • $line (string) – 언어 줄 키 이름

  • $log_errors (bool) – 줄을 찾지 못한 경우 오류를 기록할지 여부

반환:

언어 줄 문자열 또는 실패 시 FALSE

반환 형식:

string

줄의 이름을 기반으로 이미 로드된 언어 파일에서 단일 번역 줄을 가져옵니다.